Если в рамках ваших проектов вы часто работаете с двигателями, и вам нужно измерять обороты их валов, то вам может потребоваться тахометр. Можно, конечно, пойти в Интернет и поискать нужный цифровой тахометр, но все они, скорее всего, могут быть довольно дорогими, особенно для начальных проектов. Поэтому оптимальным вариантом будет самостоятельно сделать простой цифровой тахометр, используя ИК-датчик и Arduino.

Схема цифрового тахометра на основе Arduino и инфракрасного датчика выглядит следующим образом.

Код программы цифрового тахометра на основе Arduino и ИК-датчика следующий.
#include <Arduino.h>
#include <SPI.h>
#include <Wire.h>
unsigned long rpmtime;
float rpmfloat;
unsigned int rpm;
bool tooslow = 1;
void setup() {
Serial.begin(9600);
TCCR1A = 0;
TCCR1B = 0;
TCCR1B |= (1 << CS12); // Предделитель 256
TIMSK1 |= (1 << TOIE1); // разрешить переполнение таймера
pinMode(2, INPUT);
attachInterrupt(0, RPM, FALLING);
}
ISR(TIMER1_OVF_vect) {
tooslow = 1;
}
void loop() {
delay(1000);
if (tooslow == 1) {
Serial.println("Too Slow");
}
else {
rpmfloat = 120 / (rpmtime/ 31250.00);
rpm = round(rpmfloat);
Serial.println("RPM = ");
Serial.println(rpm);
}
}
void RPM () {
rpmtime = TCNT1;
TCNT1 = 0;
tooslow = 0;
}
© digitrode.ru