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

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

kleine Änderungen

File size: 1.1 KB
Line 
1/*
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 einbindest, musst
6 * du INPUT mit "PULLUP" versehen!
7*/
8
9#define encoderPinA  2       // "#define" ist eine einfache Methode, um Pins festzulegen
10#define encoderPinB  3
11
12volatile int encoderPos = 0;   // "volatile" (fluechtig), siehe Aufgabenstellung Blatt 8
13
14void setup() {
15 
16  pinMode(encoderPinA, INPUT);
17  pinMode(encoderPinB, INPUT);
18 
19  attachInterrupt(0, doEncoder, CHANGE);      // Interrupt Nr. 0 aktivieren, beobachtet durch Pin 2
20  Serial.begin (9600);
21  Serial.println("Start des Programms");      // Beliebiger Text, wird einmal im SM angezeigt             
22}
23
24void loop(){   
25}
26
27void doEncoder() {
28 
29  if (digitalRead(encoderPinA) == digitalRead(encoderPinB)) {
30    encoderPos++;
31  } else {
32    encoderPos--;                 // Erklaerungen: Siehe Extra-Blatt "Rotary-Encoder"
33  }
34  Serial.print("    ");
35  Serial.println (encoderPos);
36}
37
38 
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