Changeset 1173 in t29-www


Ignore:
Timestamp:
Mar 21, 2017, 8:54:16 AM (7 years ago)
Author:
heribert
Message:

Encoder-Sketch nochmals überarbeitet

Location:
physical-computing
Files:
2 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • physical-computing/encoder-mit-interrupt/encoder-mit-interrupt.ino

    r1172 r1173  
    11/*
    2  * Rotary-Encoder Sketch mit Interrupt Nr. 2
    3  * beachte: Bei schnellen Vorgaengen verlangsamt der Serielle-Monitor den Sketch!
    4  * Wenn der Button (Switch) zum Rueckstellen ins Programm eingebaut wird, muss
    5  * man den INPUT mit PULLUP versehen!
    6  *
    7  * read a rotary encoder with interrupts
    8    Encoder hooked up with common to GROUND,
    9    encoder0PinA to pin 2, encoder0PinB to pin 3
    10    it doesn't matter which encoder pin you use for A or B 
    11 
    12    uses Arduino pull-ups on A & B channel outputs
    13    turning on the pull-ups saves having to hook up resistors
    14    to the A & B channel outputs
     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!
    157*/
    168
    17 #define encoder0PinA  2
    18 #define encoder0PinB  3
     9#define encoderPinA  2       // "#define" ist eine einfache Methode, um Pins festzulegen
     10#define encoderPinB  3
    1911
    20 volatile int encoder0Pos = 0;
     12volatile int encoderPos = 0;   // "volatile" (flüchtig), siehe Aufgabenstellung
    2113
    2214void setup() {
    2315 
    24   pinMode(encoder0PinA, INPUT);
    25   pinMode(encoder0PinB, INPUT);
     16  pinMode(encoderPinA, INPUT);
     17  pinMode(encoderPinB, INPUT);
    2618 
    27   attachInterrupt(0, doEncoder, CHANGE);  // encoder pin on interrupt 0 - pin 2
     19  attachInterrupt(0, doEncoder, CHANGE);      // Interrupt Nr. 0 aktivieren, beobachtet durch Pin 2
    2820  Serial.begin (9600);
    29   Serial.println("Start des Programms");               
     21  Serial.println("Start des Programms");      // Beliebiger Text, wird einmal im SM angezeigt             
    3022}
    3123
    3224void loop(){   
     25}
    3326
    34 }
    35 }
    3627void doEncoder() {
    37   /* If pinA and pinB are both high or both low, it is spinning
    38    * forward. If they're different, it's going backward.
    39    */
    40   if (digitalRead(encoder0PinA) == digitalRead(encoder0PinB)) {
    41     encoder0Pos++;
     28 
     29  if (digitalRead(encoderPinA) == digitalRead(encoderPinB)) {
     30    encoderPos++;
    4231  } else {
    43     encoder0Pos--;
     32    encoderPos--;                 // Erklaerungen: Siehe Extra-Blatt
    4433  }
    45    Serial.print("    ");
    46   Serial.println (encoder0Pos);
     34  Serial.print("    ");
     35  Serial.println (encoderPos);
    4736}
    4837
  • physical-computing/index.php

    r1171 r1173  
    116116        <?php $zaun_aes->start(); ?>
    117117       
    118         <a href="/physical-computing/ph6.pdf"> Physical-Computing Blatt 6 (PDF)</a> &nbsp; <small>Update Version 1.5</small><br>
    119         <a href="/physical-computing/ph7.pdf"> Physical-Computing Blatt 7 (PDF)</a> &nbsp; <small>Update Version 1.1</small><br>
    120118        <a href="/physical-computing/ph8.pdf"> Physical-Computing Blatt 8 (PDF)</a> &nbsp; <small>Update Version 1.3</small><br>
    121119        <a href="/physical-computing/Analysen-3.pdf"> Analysen-3: Manuelles Einlesen in TM1638, LED & KEY</a> <br>
Note: See TracChangeset for help on using the changeset viewer.
© 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