Koda: |
int count = 0; int obrat = 0; void pulse() { if(digitalRead(3) == LOW) count++; else count--; } void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); //attachInterrupt(0, pulse, LOW); attachInterrupt(0, pulse, FALLING); } void loop() { // digitalWrite(ledPin, HIGH); // delay(50); // digitalWrite(ledPin, LOW); // delay(50); Serial.println(count); } |
Koda: |
volatile unsigned byte count = 0; // zadostuje 8-bitno 0 ... 255 volatile unsigned int obrat = 0; // 0 do 65535 // volatile int obrat = 0; // od -32768 do 0 in naprej do 32767 void pulse() { if(digitalRead(3) == LOW) // steje GOR { count++; if(count > 124) { count=0; obrat++; } } else // steje DOL { count--; if(count > 124) // dol grede iz 0 na 255 ... { count=124; obrat--; } } } void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); //attachInterrupt(0, pulse, LOW); attachInterrupt(0, pulse, FALLING); } void loop() { // digitalWrite(ledPin, HIGH); // delay(50); // digitalWrite(ledPin, LOW); // delay(50); Serial.println(count); } |
igo je napisal/a: |
Verjetno tudi prej ni štelo dol ...
|
Koda: |
// s tem delom kode nekaj ni vredu else // steje DOL { count--; if(count > 124) // dol grede iz 0 na 255 ... { count=124; obrat--; } } |
marko11 je napisal/a: |
Sedaj je pa drug problem.
Štetje na GOR deluje v redu, štetja na DOL pa sploh ni. |
Koda: |
void pulse() { if(digitalRead(3) == LOW) { count = count+2; if(count > 248) { count=0; obrat++; } } else { count = count - 2; if(count > 248) { count = 248; obrat--; } } } |