4.4.4   Tastendruck unterscheiden am ASURO  - welche Taste wurde gedrückt?
    
Problembeschreibung
Schriftliche Problemlösung
Technische Aspekte zur Problemlösung                           <= zurück zur
Technische Informatik
Grafische Problemlösung                                                
Ausblicke                                                        <= zurück zum vorherigen Projekt    Reagieren auf beliebige Taste am ASURO  
Informationen zum Thema                               
Schülerprojektdokumentationen                        weiter zum nächsten Projekt =>    Geradeaus fahren mit dem ASURO

 
an den
 Anfang
Problembeschreibung

 
Wie schon im vorherigen Projekt soll das Drücken der Taster eine Reaktion an der FrontLED
 hervorrufen. Jetzt soll jedoch nach kurzzeitigen Drücken des Tasters K1 die FrontLED einmal
 kurz blinken (Taster losgelassen, eine Sekunde warten, FrontLED leuchtet für eine Sekunde,
 warten auf weitere Tastenbetätigungen).
 Bei Betätigen des Tasters K2 soll die FrontLED mit gleicher Frequenz wie zuvor zweimal
 blinken, bei Taster K3 dreimal und so weiter.

 
 
 
an den
 Anfang
Schriftliche Problemlösung


 Beispiel zum Einsatz des AD-Wandlers (Automatisierungstechniker AT06)
 ATmega8-Frequenz 3,686411 MHz

 
 (.pdf) zum Öffnen auf die Grafik klicken
 Quelle: Daniel K.  AT06

 
    ADCSRA = 0b11000110;                   // AD-Wandler aktiviert; Single Conversion eingestellt und
                                           // und Teilungsfaktor 64  (62,5 KHz )
    ADMUX = 1;                             // Aufruf ADC1 an PORTC 1
    while (bit_is_set(ADCSR,6));           // Warten bis Umwandlung von PINC1 erfolgt ist.
    {
       ;                                   // Tue nichts
    } 
    x = ADCW;                              // WERT der AD-Wandlung wird in x geschrieben


 

Mikrocontroller ATmega8 bei unserem ASURO mit Taktfrequenz 8 MHz

Spannung AD-Wandler-
Eingang

  Dezimalzahl AD-
  Wandler
  Ausgang

Binärzahl AD-Wandler-
Ausgang

   

 0,0   V  auf Masse gelegt

0

0000000000    

 0,015 V  (Taster K1)

3

0000000011    

 0,026 V  (Taster K2)

5

0000000101    

 0,047 V  (Taster K3)

9

0000001001    

 0,087 V  (Taster K4)

17

0000010001    

 0,168 V  (Taster K5)

33

0000100001    

 0,33 V   (Taster K6)

65 0001000001    

 4,74 V   kein Taster

933 1110100101    

 5,2  V   VCC angelegt

1023 1111111111    


ASURO's "Gehirn" hat sechs ADC-Eingänge die einzeln mit einem Multiplexer auf einen AD-Wandler mit 10 Bit Auflösung geschaltet werden können.

Was macht so ein ADC eigentlich?
Er wandelt ein analoges Eingangssignal (Spannung) in einen digitalen Zahlenwert um. Hierzu benötigt man eine Referenzspannung, welche gleich der maximal zu messende Spannung ist. Diese wird nun in 1024 (entsprechend 10 Bit Auflösung) Stufen aufgeteilt. Eine an den entsprechenden ADC-Eingangspin angelegte Spannung wird mit diesen gestuften Spannungen verglichen und bekommt den Wert zugewiesen, welcher am nächsten liegt.

Hierzu eine kleines Beispiel:
Die Referenzspannung betrage 5.2V. Die zu messende Spannung 4,74V.:




(nicht 933,4154! Der ADC liefert nur Stufen, also ganze Zahlen!)

Der analoge Spannungswert 4,74V wird vom ADC in den digitalen Wert 933 abgebildet.


 

 

 
an den
 Anfang
Technische Aspekte zur Problemlösung



zum Vergrößern auf die Abbildung klicken

Simulation mit PSPICE



PSPICE-Projektordner (.zip)

 
  
an den
 Anfang
Grafische Problemlösung mit ASURO-Funktionen  - der Programmablaufplan


siehe auch PAPs der 04LI, nur das wir hier mit dem
Dia für Windows arbeiten wollen.

                                                                                                 
 

   
an den
 Anfang
Umsetzung in den Quelltext mit ASURO-Funktionen

 
 
                                 

   

 
 

 
    

an den
 Anfang
Grafische Problemlösung "ganz dicht am Mikrocontroller"

 

                                                                                                 
 

   

 

 

an den
 Anfang
Umsetzung in den Quelltext "ganz dicht am Mikrocontroller"





 

   
an den
 Anfang

Informationen zum Thema





   

Abgeschlossene Schülerprojekte:





Stand:
27.11.2007

 <= zurück zur Technische Informatik