Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- byte n = 1; // число лопастей
- int L = 757; // okruznost wala w mm
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x27, 16, 2);
- float r_speed, rev_time;
- volatile unsigned long lastflash, flash, lastshow, czas;
- float RPM;
- //String spaces = "";
- void setup()
- {
- //Serial.begin(9600); // открыть порт
- attachInterrupt(PB9, sens, FALLING); // подключить прерывание на 2 пин при ponizenii сигнала
- lcd.begin(); // инициализация дисплея
- lcd.backlight(); // включить подсветку
- lcd.setCursor(0, 0); // курсор слева 1 строчка
- lcd.print("rpm "); // слово Обороты
- lcd.setCursor(0, 1); // курсор слева 2 строчка
- lcd.print("speed "); // слово Скорость
- }
- void sens()
- {
- flash = micros() - lastflash; // вычислить время между оборотами
- lastflash = micros(); // запомнить время последнего оборота
- }
- void loop()
- {
- czas = millis() / 1000 / 60;
- if (micros() - lastflash > 5000000) // если сигнала нет больше N - секунд
- {
- RPM = 0; // считаем, что всё стоит и не крутится
- r_speed = 0;
- }
- else
- {
- rev_time = (double) flash / 1000000 ; // время одного оборота в секундах
- RPM = (double) 60 / rev_time; // обороты в минуту
- r_speed = (double) L * RPM / 1000; // скорость точки на радиусе, m/min
- }
- if (millis() - lastshow > 500) { // каждые 1000 миллисекунд
- lcd.clear();
- lcd.setCursor(0, 0); // курсор слева 1 строчка
- lcd.print("rpm "); // слово RPM
- lcd.setCursor(6, 0); // курсор 6 слева 1 строчка
- lcd.print(RPM, 2); // выводим RPM
- lcd.setCursor(0, 1); // курсор слева 2 строчка
- lcd.print("speed "); // слово Скорость
- lcd.setCursor(6, 1); // курсор 10 слева 2 строчка
- lcd.print(r_speed, 2); // выводим скорость
- // lcd.setCursor(12, 0); // курсор 12 слева 1 строка
- // lcd.print("min"); // выводим /min
- lcd.setCursor(13, 1); // курсор 14 слева 2 строка
- lcd.print(czas); // выводим czas działania
- lastshow = millis(); // сброс таймера
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement