
Сообщение от
knyaz2020
т.э. залить тот скэтч который в 105 посте?
а0 на колектор?
а 2-ой пин куда?
нет, не к а2, а было так
а0 подключен на д2
Коллектор, А0 и 2 пин все три вместе, вернее еще и сопротивление на +5.
Скетчь осциллографа должен при таком соединении показывать то же самое. Потом проверь скетчем длительность положиельного и отрицательного импульса.
PHP код:
#include <TimerOne.h>
#define BTNPIN 2
volatile uint16_t lengthImpuls, timerCount;
void setup()
{
Serial.begin(115200);
lengthImpuls=0;
pinMode (BTNPIN, INPUT);
Timer1.initialize(10);
Timer1.attachInterrupt(callback);
attachInterrupt(0, fireUp, RISING);
}
void loop()
{
Serial.println(lengthImpuls);
}
void callback()
{
timerCount++;
}
// Функция обработки прерывания на подъем
void fireUp()
{
timerCount=0;
detachInterrupt(0);
attachInterrupt(0, fireDown, FALLING);
}
// Функция обработки прерывания на падение
void fireDown()
{
lengthImpuls = timerCount;
detachInterrupt(0);
attachInterrupt(0, fireUp, RISING);
}
потом
PHP код:
#include <TimerOne.h>
#define BTNPIN 2
volatile uint16_t lengthImpuls, timerCount;
void setup()
{
Serial.begin(115200);
lengthImpuls=0;
pinMode (BTNPIN, INPUT);
Timer1.initialize(10);
Timer1.attachInterrupt(callback);
attachInterrupt(0, fireUp, RISING);
}
void loop()
{
Serial.println(lengthImpuls);
}
void callback()
{
timerCount++;
}
// Функция обработки прерывания на подъем
void fireUp()
{
timerCount=0;
detachInterrupt(0);
attachInterrupt(0, fireDown, RISING);
}
// Функция обработки прерывания на падение
void fireDown()
{
lengthImpuls = timerCount;
detachInterrupt(0);
attachInterrupt(0, fireUp, FALLING);
}
У нас в сети нет 50 Гц, поэтому суммарная длительность будет больше 20 мс.