Считаю частоту выдачи сигнала датчиком холла (готовлюсь к замерам датчика скорости).
Подключил эл. двигатель через реле, на двигатель насажена железка, которая вращаясь перекрывает датчик холла.
При выводе через "Serial Monitor" - Serial.println(delta), показываются значения в милисекундах от включенного состояния датчика до выключенного. Все бы ничего, но проскакивают какие-то случайные значения (от наводок что-ли)...
Как быть?
Вот код:
Код:
int RelayPin = 14; // Connect Relay to input pin 2
int HallPin = 3; // Connect Hall to input pin 3
void setup()
{
Serial.begin(9600);
pinMode(RelayPin, OUTPUT); // declare Relay as output
pinMode(HallPin, INPUT); // датчик холла
digitalWrite(HallPin, HIGH); //внутренняя подтяжка
attachInterrupt(1, int_on, FALLING); // настроить прерывание interrupt 1 на pin 3
}
void int_on()
{
delta = millis() - miliss;
miliss = millis();
Serial.println(delta);
}
void loop()
{
RelayOn=HIGH;
digitalWrite(RelayPin, RelayOn); // реле включить
}