Всем добрый день! Есть сигнал, прямоугольный 5в, частота его меняется со временем, необходимо измерять частоту f в данный момент и генерировать новый прямоугольный сигнал F= f*N где N = 1..1.5 Как считать нашел, но как сюда лучше всего прикрутить генерирование сигнала? Код (C++): unsigned long time = 0; //Время срабатывания датчика unsigned long time_old = 0; //Предыдущее время void setup() { attachInterrupt(0, impuls, FALLING); //Прерывание по нарастающему фронту на D2 Serial.begin(9200); Serial.println("start"); } void loop(){ Serial.println("time "+ String(time)); delay(100); } void impuls(){ time = (1000000.0/(micros()-time_old)); // измеряем частоту time_old = micros(); }
Код (C++): volatile unsigned long time = 0; //Время срабатывания датчика volatile unsigned long time_old = 0; //Предыдущее время
Для считывания частоты используйте прерывание (цифровой порт 2 или 3 для UNO), а для генерации - таймер.