Тахометр
- Войдите на сайт для отправки комментариев
Вс, 14/07/2013 - 22:45
Привет друзья!
Нужно сделать программу которая будет узнавать сколько об\мин вращается вал.
Схема такова. Кнопка которая установлена на вал нажимается 1 раз за оборот. Кнопку прсоединяем к 5в и например 6 пин.
Информацию о оборотх в минуту хочется узнавать по сериал порту.
Буду очень благодарен за любую помощь.
Поможете?
Нашел кнопку для нажимания валом :) Помог чем смог, картошку сажайте сами. Про тахомер уже была тема там где то ниже
В правом верхнем углу наберите тахометр и нажмите Поиск.
Нашел код
#define RPMpin 2 // датчик Холла long microsold = 0; int rpm = 0; void setup() { Serial.begin(9600); digitalWrite(RPMpin, 1); attachInterrupt(0, RPM, FALLING); } void loop() { Serial.println(rpm, DEC); // об/мин } void RPM (){ rpm = (1000000.0/(micros() - microsold))*60; microsold = micros(); }Показания тахометра будут верными если кнопка прикрепленная на вало будет нажиматься один раз за оборот?
Показания тахометра будут верными если кнопка прикрепленная на вало будет нажиматься один раз за оборот?
(валяется под столом) кнопка прикрепленая на валу ............ гыыыы
извините, не смог сдержаться...
Данный пример кода рекомендуется использовать при высоких оборотах вала и когда необходимо мгновенно вычислять обороты, например для регулирования оборотов. В вашем же случае если вы хотите поставить кнопку (чего вам не рекомендую делать - почитайте про дребезг) обороты будут низкие. Поэтому вам лучше не время между замыканиями контакта вычислять, а считать количество замыканий за единицу времени.
#define RPMpin 2 // датчик Холла volatile int rpm = 0; void setup() { Serial.begin(9600); digitalWrite(RPMpin, 1); attachInterrupt(0, RPM, FALLING); } void loop() { Serial.println(rpm*60, DEC); // об/мин rpm = 0; delay(1000); } void RPM () { rpm++; }