Официальный сайт компании Arduino по адресу arduino.cc
Тахометр на ADUINO UNO
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ср, 08/11/2017 - 21:47
Доброго времени суток уважаемые форумчане. Начну с того что в данной теме я новичок. Проблема следующая, собрал тахометр по приведенной схеме... работает... но нужно как то изменить скетч чтобы на дисплее показания оборотов увеличивались по 1 об. например (100,101,102,103...), а в данном скетче это происходит скачкообразно через 60 об. например (60,120,180...), как это сделать? Надеюсь на ваш совет и помощь.
volatile unsigned int int_tic=0; volatile unsigned long tic; #include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 3, 4, 6, 7); void setup() { lcd.begin(16, 2); TCCR1A=0; TIMSK1 = 1<<TOIE1; //прерывание по переполнению } ISR (TIMER1_OVF_vect){ int_tic++; } void loop() { pinMode (5,INPUT); // вход сигнала T1 (only для atmega328) TCCR1B = (1<<CS10)|(1<<CS11)|(1<<CS12);//тактировани от входа Т1 delay(500); TCCR1B=0; tic= ((uint32_t)int_tic<<16) | TCNT1; //сложить что натикало int_tic=0; TCNT1 = 0; lcd.setCursor(0, 0); lcd.print("RpS= "); lcd.print(tic); lcd.print(" "); int RpM = tic*60; lcd.setCursor(0, 1); lcd.print("RpM= "); lcd.print(RpM); lcd.print(" "); }
Ну, он же измеряет и выводит у Вас обороты в секунду, которые меняются как хотят (можно и на 1 - как получится). А обороты в минуту, он не измеряет, аполучает просто умножением оборотов в секунду на 60. Поэтому обороты в минуту хдесь просто не могут ментяь иначе, как через 60. Понимаете? Так что с этим скетчем Вы никак не поменяете. Если интересует точное измерение именно оборотов в минуту - нужно полностью переписывать скетч.
Понял, спасибо за пояснение. В сети нашел другой скетч на видео (на видео измеряют скорость 7ми лопастного куллера) обороты измеряются через 1 об. все как надо, но он на моей схеме почемуто не работает, на дисплее высвечиваются прямоугольники вместо цифр. Возможно ли данный скетч как то подкорректировать под мою схему? Если возможно то что нужно исправить?
Так вы сравните вторую строчку последнего скетча и четвертую строчку первого скетча. Это по экрану.
Плюс 10 строка последнего скетча там про пин 2...
Исправил пины второго скетча на пины первого скетча (8, 9, 3, 4, 6, 7), и перенес белый провод с фоторезистора с 5 пина на 2 пин. Заработало, но както странно при запуске на дисплее 0 об. подношу оптопару к эл. двигателю на вал которого приклеяна бумажка показания меняются с 0 на определенные обороты, отвожу оптопару в сторону показания на дисплее возвращаются не на 0, а уходят в минус аж до нескольких тысяч. Что я не так сделал?
Немного поэксперементировав получил следующие данные. При включении на дисплее высвечивается 0 об. подношу оптопару к эл. двигателю показания меняются с 0 об. на определенное значение (217 об.), отвожу оптопару в сторону показания меняются не на 0 об. а теперь уходят в плюс на несколько тычяч, повторно подношу оптопару к эл. двигателю показания на дисплее меняются с этих нескольких тысяч до 217 об. далее при отводе оптопары процесс повторяется. При нажатии кнопки сброс на ардуинке, на дисплее высвечивается 0 об. при поднесении оптопары к эл. двигателю наблюдается выше описаное явление. Пару раз было так что при отводе оптопары от эл. двигателя показания на дисплее не увеличивались а "зависали" на 217 об. Жду вашей помощи, уж больно необходим мне этот тахометр.
Добрый день. Добились успеха?