как считать импульсы
- Войдите на сайт для отправки комментариев
Здравствуйтем на вход ардуино подается сигнал с вкючением 10мс и отключением 200мс,теперь не могу сделать так чтобы ардуино определял на сколько милисекунд вкючается импульс сигнала
long microsold = 2;
int sw=4;//выход сигнала с ардуино
volatile unsigned long micros_sp = 0;
volatile byte sz = 0;
volatile boolean st =false;
volatile unsigned int sp =0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
attachInterrupt(0, RPM, RISING);
pinMode(sw,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(sp/1000);
if (sz!=0){sz--;} else {sp=0;};
delay(50);
digitalWrite(sw,HIGH);
delay(10);
digitalWrite(sw,LOW);
delay(200);
}
void RPM (){
if (!st){
micros_sp=micros();}
else {
sp=(1000000/micros()-micros_sp);micros_sp=micros();}
st=!st;
sz=30;
}
А зачем две темы? Вам их надо два раза считать? :))))
Во-первых, обязательно перепостите Ваш код по правилам. Иначе невозможно его обсуждать (например, номеров строк нет).
Во-вторых, объясните толком свою проблемы. Пока я,например, не понял зачем Вам вообще считать длительности импульсов, если характеристики сигнала зарнее известны (10 и 200 мс)? Чего их считать, если Вы их и так знаете?
Пример скетча нашел в интернете написана для тахометра,имплуьсы подаются с датчика коленвала или с инжекторной форсункой .Чтобы туда сюда не ходит я их выдаю с самого ардуино главное хоть какой то импульс считовал.
Пример скетча нашел в интернете написана для тахометра,имплуьсы подаются с датчика коленвала или с инжекторной форсункой .Чтобы туда сюда не ходит я их выдаю с самого ардуино главное хоть какой то импульс считовал.
1. Перевыкладывать скетч по правилам я буду? Не буду. Сделайте сами.
2. Объясните наконец внято, что нужно сделать. Нужно выдать импульсы или принять? Что нужно измерить? Вы сами понимаете, что нужно сделать? Так напишите.
создайте переменную. импульс заведите через ногу прерывания. в лупе увеличивайте переменую, можно и по таймеру, точнее будет. при импульсе смотрите сколько в переменной, сбрасывайте ее.
Здравствуйте можете подробнее обяснить как в лупе или по таймеру увеличивать переменную и как его сбросить.Как все это в программе пишется меня вот это затрудняет