Arduino - Hjälp att räkna pulser under 36s intervaller

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
BjörnO
Inlägg: 242
Blev medlem: 3 juni 2013, 19:52:42

Re: Arduino - Hjälp att räkna pulser under 36s intervaller

Inlägg av BjörnO »

Jag byggde en varvräknare till båtmotorn, se http://elektronikforumet.com/forum/view ... 1&start=30 hur jag hanterar interrupt.
SeniorLemuren
Inlägg: 7779
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: Arduino - Hjälp att räkna pulser under 36s intervaller

Inlägg av SeniorLemuren »

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. :D

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;
    }
}
Skriv svar