Drehknopf mit Arduino auslesen

Gast #3338348
Lesenswert?

Hallo,

ich habe für meinen Arduino ein kleines Menü programmiert, bei dem ich 
die Zeilen mit einem Taster durchschalten kann.
Nun habe ich einen Drehknopf gefunden der beim drehen seinen Zustand 
immer zwischen 1 & 0 ändert.
Wie kann ich nun mit jedem Wechsel des Zustandes eine Variable addiern 
bzw. eine andere Funktion ausführen?

Mfg. Christoph
Gast #3339070
Lesenswert?

@ Martin Wende

> Immer diese Deppen die einen Taster an den Interrupt hängen
> wollen.
> Sowas macht man nicht!!!

Immer diese Deppen, die keinen Taster mit Interrupt
ordentlich einlesen können!  ;-)
Gast #3339077
Lesenswert?

So müsste das ganz gut gehen :
1
 
2
/* Read Quadrature Encoder
3
  * Connect Encoder to Pins encoder0PinA, encoder0PinB, and +5V.
4
  */  
5

6

7
 int val; 
8
 int encoder0PinA = 3;
9
 int encoder0PinB = 4;
10
 int encoder0Pos = 0;
11
 int encoder0PinALast = LOW;
12
 int n = LOW;
13

14
 void setup() { 
15
   pinMode (encoder0PinA,INPUT);
16
   pinMode (encoder0PinB,INPUT);
17
   Serial.begin (9600);
18
 } 
19

20
 void loop() { 
21
   n = digitalRead(encoder0PinA);
22
   if ((encoder0PinALast == LOW) && (n == HIGH)) {
23
     if (digitalRead(encoder0PinB) == LOW) {
24
       encoder0Pos--;
25
     } else {
26
       encoder0Pos++;
27
     }
28
     Serial.print (encoder0Pos);
29
     Serial.print ("/");
30
   } 
31
   encoder0PinALast = n;
32
 }

Gruß
Gast #3339080
Lesenswert?

Bernie schrieb:
> @ Martin Wende
>
>> Immer diese Deppen die einen Taster an den Interrupt hängen
>> wollen.
>> Sowas macht man nicht!!!
>
> Immer diese Deppen, die keinen Taster mit Interrupt
> ordentlich einlesen können!  ;-)

uh sehr peinlich bernie ... das sind grundlagen ;) hat schon seinen 
grund das man einen taster nicht an den externen interrupt hängt... das 
mag in deiner bastellösung funktionieren.. kann aber auch böse enden mit 
stackoverlow etc.. und das will man bestimmt nicht in einem 
kommerziellen projekt! darum taster pollen.. mit timer fertig aus!
(Firma: matzetronics) #3339164
Lesenswert?

Muss auch nochmal meinen Senf dazugeben. Ich habe Drehgeber früher auch 
immer an einen Ext. Int. gehangen, dann innerhalb der ISR gewartet 
(prellen), anderen Pin eingelesen usw.
Dann habe ich versuchsweise PeDas Drehgeber Routinen implementiert und 
bin nun geheilt - die Routinen sind idiotensicher, funktionieren auch 
mit richtig ollen Drehgebern noch zuverlässig und der Timerinterrupt 
kann zusätzlich noch für jeden möglichen anderen Krams gebraucht werden 
(Taster usw.). Ein nettes Feature ist ausserdem die problemlose 
Anpassung an die verschiedensten Geber - Kontakt auf Rastung, zwischen 
den Rastungen, 2- und 4-fach Schritte usw.
Es lohnt sich also nicht, das Rad neu zu erfinden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren