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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.