Grandfiesto

Members
  • Content count

    4
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Grandfiesto

  • Rank
    Новенький

Электроника

  • Стаж в электронике
    Менее года
  1. К сожалению было задано разработать именно программу и алгоритм. Сейчас мне главное реализовать это виртуально, вместо геркона можно подключить генератор импульсов.
  2. Начиная от выбора самого Микроконтроллера и до разработки самой программы. Я в этом деле новичок и пока еще трудно ориентироваться. Мои попытки на Atmega volatile byte rpmVse; volatile byte rpmcount; unsigned int rpm; // сохраняем обороты unsigned long timeold; // сохраняем время старое int mMin; #include <LiquidCrystal.h> // библиотека экрана // initialize the library with the numbers of the interface pins LiquidCrystal lcd(7, 8, 9, 10, 11, 12); void setup() { Serial.begin(9600); lcd.begin(16, 2); // инициализируем дисплей //Interrupt 0 is digital pin 2, so that is where the IR detector is connected //Triggers on FALLING (change from HIGH to LOW) attachInterrupt(0, rpm_fun, FALLING);// функция прерывания только при смене значения с 1 на 0 rpmVse = 0; rpmcount = 0; rpm = 0; timeold = 0; } void loop() { //Обновляем значения каждую секунду delay(1000); //Don't detachInterrupt(0); // порт //Если прерывание будет происходить один раз за оборот тогда 60*1000/(millis() - timeold)*rpmcount //если количество пребываний больше, то просто делим количество секунд в минуте на количество //прерываний за один оборот. rpm = 20*1000/(millis() - timeold)*rpmcount; timeold = millis(); rpmcount = 0; //Выводим результат на дисплей lcd.clear(); lcd.print("RPM="); lcd.print(rpm); //rpm = mMin; mMin = rpm*3/100; // метры в минуту если на 60 Serial.print(mMin);Serial.print("M/m"); //Перезапустить процесс прерывания attachInterrupt(0, rpm_fun, FALLING); } void rpm_fun() { //обновляем счетчик rpmcount++;// прибавляем единицу к полученому }
  3. Поступило задание разработать цифровой тахометр с такими параметрами: 1. Диапазон измерений - 0-12000 об.мин. 2. Тип датчика - Герконовый. 3. Разрядность АЦП - 12 разрядов. 4. Напряжение АЦП и микроконтроллера - 5 В. 5. Скорость серийного порта 9600 бит/с. 6. Кол-во импульсов датчика за один оборот - 3. Разработка программы в среде IDE, желательно на C. Разработать алгоритм. Задание завело в тупик. Очень нужна помощь!