Всех приветствую!
И прошу помощи. Задача собрать намоточный станок, который бы считал длину намотанного провода (в мм). За отсчет длины отвечает щелевой оптический датчик (куплен на известном китайском ресурсе) на компараторе LM393 (фото ниже). В скетче счетчик срабатывает по прерыванию "RISING" ноги D2 (кусок скетча привожу). Довольно часто наблюдаются ложные срабатывания, а именно - по 2 раза бывает срабатывает (привожу скрин счетчика из монитора порта, на котором по таймингам видны по 2 срабатывания в одно и то же время).
Вопрос: как это побороть?
И прошу помощи. Задача собрать намоточный станок, который бы считал длину намотанного провода (в мм). За отсчет длины отвечает щелевой оптический датчик (куплен на известном китайском ресурсе) на компараторе LM393 (фото ниже). В скетче счетчик срабатывает по прерыванию "RISING" ноги D2 (кусок скетча привожу). Довольно часто наблюдаются ложные срабатывания, а именно - по 2 раза бывает срабатывает (привожу скрин счетчика из монитора порта, на котором по таймингам видны по 2 срабатывания в одно и то же время).
Вопрос: как это побороть?
C++:
#define Piece 1// 31,5*PI/24 //минимальный кусок контролируемой длины (наматываемая длина при при обороте между двумя отверстиями счетчика), мм
//расчет: d*PI/n - d-диаметр колесика счетчика, n - количество щелей в колесике счетчика
#define encoder 2 //пин счетчика оборотов
volatile int LenghtBuff = 0; //буфер длины намотки для обратного отсчета
void setup()
{
Serial.begin (9600);
pinMode(encoder, INPUT);
attachInterrupt(0, counter, FALLING);
}
void counter() {
LenghtBuff -= Piece;
Serial.println(LenghtBuff);
}
Вложения
-
2023-02-13 13-33-13 ИК инфракрасный шлицевый оптический датчик скорости, датчик оптрона, модул...png351.6 KB Просмотры: 18
-
10.4 KB Просмотры: 21