Тахометр с помощью оптопары

Gavr
Offline
Зарегистрирован: 03.05.2018

Добрый день уважаемые знатоки, есть небольшая проблемка с которой я столкнулся, прошу вашей помощи, так я просмотрел форум и ничего подобного не нашел.

Есть такой вот датчик из оптопары

 

Я его подключил, нашел код и он заработал и вроде считает правильно обороты

#define PIN_D2 2 // Установка контакта используемого в Arduino
volatile unsigned int pulses;
float rpm;
unsigned long timeOld;
#define HOLES_DISC 1
 
void counter()
{
 pulses++;
}
 
void setup()
{
 Serial.begin(9600);
 pinMode(PIN_D2, INPUT);
 pulses = 0;
 timeOld = 0;
 attachInterrupt(digitalPinToInterrupt(PIN_D2), counter, FALLING);
}
 
void loop()
{
 if (millis() - timeOld >= 1000)
 {
 detachInterrupt(digitalPinToInterrupt(PIN_D2));
 rpm = (pulses * 60) / (HOLES_DISC);
 Serial.println(rpm);
 
 timeOld = millis();
 pulses = 0;
 attachInterrupt(digitalPinToInterrupt(PIN_D2), counter, FALLING);
 }
}

Но тут я наше вот такую оптопару 

Подключил ее, но ничего не проиходит

Подскажите пожалуйста в чем проблема

 

 

nevkon
Offline
Зарегистрирован: 20.01.2015

А где схема подключения той оптопары? Даташит на нее нашли?

nik182
Offline
Зарегистрирован: 04.05.2015

Проблема в отсутствии усилителя.

Gavr
Offline
Зарегистрирован: 03.05.2018

Вот схема подключения, когда я заливаю простой скетч, у меня получается считать с него 0 и 1, но когда я беру скетч для измерения скорости - он молчит.

ToRcH2565
Offline
Зарегистрирован: 16.05.2015

Странно что у вас вообще что то работает при таком подключении питания на макетку.

Gavr
Offline
Зарегистрирован: 03.05.2018

А как правильно дожно быть подключено?

просто посмотрев даташит и методом "научного тыка", изменение сигнала проиходит только при таком подключении

ToRcH2565
Offline
Зарегистрирован: 16.05.2015

Вы внимательно картинку посмотрите, красный и черный провод от друины к макетке - оба к земле подключены.

Gavr
Offline
Зарегистрирован: 03.05.2018

Действитель, видимо уже пора завязывать с ардуино или не проснулся еще