source: t29-www/physical-computing/encoder-mit-interrupt/encoder-mit-interrupt.ino @ 1173

Last change on this file since 1173 was 1173, checked in by heribert, 7 years ago

Encoder-Sketch nochmals überarbeitet

File size: 1.1 KB
RevLine 
[1171]1/*
[1173]2 * Rotary-Encoder Sketch mit Interrupt
3 * beachte: Bei schnellem Drehen verlangsamt der Serielle-Monitor den Sketch!
4 * Wenn die 7-Segment-Anzeige eingebaut ist, solltest du den SM deaktivieren.
5 * Wenn du den Button (Switch) zum Rueckstellen ins Programm eingebaust, musst
6 * du den INPUT mit "PULLUP" versehen!
[1171]7*/
8
[1173]9#define encoderPinA  2       // "#define" ist eine einfache Methode, um Pins festzulegen
10#define encoderPinB  3
[1171]11
[1173]12volatile int encoderPos = 0;   // "volatile" (flüchtig), siehe Aufgabenstellung
[1171]13
14void setup() {
15 
[1173]16  pinMode(encoderPinA, INPUT);
17  pinMode(encoderPinB, INPUT);
[1172]18 
[1173]19  attachInterrupt(0, doEncoder, CHANGE);      // Interrupt Nr. 0 aktivieren, beobachtet durch Pin 2
[1171]20  Serial.begin (9600);
[1173]21  Serial.println("Start des Programms");      // Beliebiger Text, wird einmal im SM angezeigt             
[1171]22}
23
24void loop(){   
[1173]25}
[1171]26
27void doEncoder() {
[1173]28 
29  if (digitalRead(encoderPinA) == digitalRead(encoderPinB)) {
30    encoderPos++;
[1172]31  } else {
[1173]32    encoderPos--;                 // Erklaerungen: Siehe Extra-Blatt
[1171]33  }
[1173]34  Serial.print("    ");
35  Serial.println (encoderPos);
[1171]36}
37
[1172]38 
[1171]39
Note: See TracBrowser for help on using the repository browser.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License