Arduino - Hjälp att räkna pulser under 36s intervaller
Re: Arduino - Hjälp att räkna pulser under 36s intervaller
Jag byggde en varvräknare till båtmotorn, se http://elektronikforumet.com/forum/view ... 1&start=30 hur jag hanterar interrupt.
-
- Inlägg: 7812
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Arduino - Hjälp att räkna pulser under 36s intervaller
Ok. Jag var lite arbetslös några minuter så jag plitade ner detta och provkörde på 2 st Uno. En fick ta emot pulser och en sände pulser. Så här ser det mottagande programmet ut.. Ha överseende men ev. stav och slarvfel. Det hela gick i vinets och druvornas tecken så här på fredagskvällen. Skål.
Kod: Markera allt
#include <elapsedMillis.h>
elapsedMillis timer0;
const byte interruptPin = 2; // pin number Arduino Uno (2 or 3)
int timePeriod ; // tid som pulsmätning skall ske i ms.
volatile int antPuls = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(interruptPin), addPuls, RISING);
timePeriod = 36000 ;// mS
}
void loop() {
// put your main code here, to run repeatedly:
checkTimer();
}
void addPuls() {
antPuls++ ;
}
void checkTimer() {
if (timer0 > timePeriod) {
timer0 -= timePeriod ;
// Nollställ pulsräkningen här och skriv ut resultat.
Serial.print("Antal pulser: ");
Serial.println(antPuls);
antPuls = 0;
}
}