kramann.info
© Guido Kramann

Login: Passwort:










Mikrocontroller
1 Einfuehrung
..1.1 Entwicklungsgeschichtliches
..1.2 Maschinensprache
..1.3 Assemblerbeispiel
..1.4 Sprachwahl
..1.5 Praxis
....1.5.1 Digital_IO
....1.5.2 Byteoperationen
....1.5.3 AVR_Studio
....1.5.4 Testboard
....1.5.5 Aufgaben
....1.5.6 Do_it_yourself
......1.5.6.1 Ampel
......1.5.6.2 Programmierer
..1.6 Literatur
..1.7 Programmierer
....1.7.1 Bauverlauf
....1.7.2 KurzreferenzLow
....1.7.2 Kurzreferenz_16PU
..1.8 Uebung1
..1.9 BoardAtHome
....1.9.1 Software
....1.9.2 Hardware
....1.9.3 Knoppix
....1.9.4 Aufbau
....1.9.5 LED
2 Oszillator
..2.1 Assembler
..2.2 Interner_RC
..2.3 Quarz
..2.4 Taktgenerator
3 DigitalIO
..3.1 Elektrische_Eigenschaften
..3.2 Pullup_Widerstaende
..3.3 Bitmasken_Eingang
..3.4 Bitmasken_Ausgang
..3.5 Tic_Tac_Toe
....3.5.1 DuoLEDs
....3.5.2 Schaltplan
....3.5.3 Spielfeld
....3.5.4 Anwahl
....3.5.5 Kontrolle
..3.6 Laboruebung2
..3.7 Laboruebung2_alt
4 PWM
..4.1 Prinzip
..4.2 Nutzen
..4.3 Generierung
..4.4 Programmierung
..4.5 Servos
..4.7 Laboruebung3
..4.8 LoesungUE3
..4.9 Uebung6
5 LichtKlangKugeln
..5.1 LED
..5.2 RGB
..5.3 Sensoren
..5.4 lautsprecher
..5.5 tonerzeugung
6 UART
..6.1 Bussysteme
..6.2 UART
..6.3 RS232
..6.4 Hardware
..6.5 Senden
..6.6 Hyperterminal
..6.7 Empfangen
..6.8 Broadcast
..6.9 Uebung4
7 Infrarot
..7.1 schalten
..7.2 seriell
..7.3 Uebung
8 OOP
..8.1 Probleme
..8.2 Konzept
..8.3 Statisch
..8.4 Datentypen
..8.5 RS232
....8.5.1 Prozedural
....8.5.2 Analyse
....8.5.3 Umsetzung
....8.5.4 Vererbung
....8.5.5 Statisch
....8.5.6 Performance
..8.6 Fahrzeug
9 ADW
..9.1 ADW
..9.2 Zaehler
10 Peripherie
..10.1 RS232Menue
..10.2 ASCIIDisplay
..10.3 Tastenmatrix
..10.4 Schrittmotor
..10.5 Zaehler
..10.6 Uebung7
11 SPI
..11.1 Testanordnung
..11.2 Register
..11.3 Test1
..11.4 Test2_Interrupt
..11.5 Test3_2Slaves
..11.6 Laboruebung
12 EEPROM
13 I2C
..13.1 MasterSendByte
..13.2 MasterSend2Bytes
..13.3 MasterReceiveByte
..13.4 MasterReceive2Bytes
14 Anwendungen
..14.1 Mechatroniklabor
....14.1.1 Biegelinie
....14.1.2 Ausbruchsicherung
....14.1.3 Einachser
....14.1.4 AV
....14.1.5 Vierradlenkung
....14.1.6 Kommunikation
..14.2 Sinuserzeugung
....14.2.1 Variante1
....14.2.2 Variante2
....14.2.3 Variante3
....14.2.4 Variante4
..14.3 Laboruebung8
..14.4 Loesung_Ue8
..14.5 SPI_Nachtrag
20 Xubuntu

3.5.1 Vorversuch zu Tic Tac Toe: Verwendung von Duo-LEDs

  • Es gibt zweipolige DUO-LEDs, die je nach Richtung der angelegten Spannung z.B. rot oder grün leuchten.
  • Das folgende Programm wechselt bei einem DUO-LED zyklisch zwischen ZUstand 0 = aus, Zustand 1=grün, Zustand 2=rot.
  • Die Nummer des Zustands wird zur Anzeige an PORTC geschickt.
  • Üblicherweise ist der längere Draht bei einer LED der Anschluß für die Anode (Pluspol).
  • Desweiteren weist das Gehäuse meistens eine Abflachung am unteren Rand auf der Seite der Kathode auf (Minuspol).
  • LEDs werden immer mit Vorwiderstand betrieben (220&Ohm; bis 1000&Ohm;)!
  • Im darauf folgenden Bild ist zunächst das typische LED-Schaltbild einer gewöhnlichen LED deren Aufbau gegenüber gestellt:
#include<avr/io.h>
int main()
{
   unsigned long pause;
   unsigned char zustand = 0;
   DDRA = 0b00000011;
   DDRC = 0b11111111;
   //Zweipolige DUO-LED, Kathode an PA0, Anode an PA1
    while(1)
    {
        PORTC = zustand;
        if(zustand==0) //LED aus
        {
            PORTA &= 0b11111100;
        }
        else if(zustand==1) //LED grün
        {
            PORTA &= 0b11111100;
            PORTA |= 0b00000001;            
        }
        else //LED rot
        {
            PORTA &= 0b11111100;
            PORTA |= 0b00000010;
        }
        for(pause=0;pause<1000000;pause++);            
        zustand++;
        zustand%=3;
    }
    return 0;
}
 

Code 3.5.1-1: WEchsler zwischen den Zuständen aus, grün und rot.

Projekt Download duoled.zip
Gewöhnliche LED

Bild 3.5.1-1: Gewöhnliche LED

  • Die hier verwendete DUO-LED leuchtet rot, wenn man sie in der üblichen Weise anschließt, d.h. abgeflachte Seite nach Masse, längeren Draht nach Plus.
  • Polt man sie um, leuchtet sie grün.
  • Schließt man sie mit der Kathode an PA0 und mit der Anode an PA1 an, so kann mit diesen digitalen Ausgängen der jeweilige Zustand wie folgt erzeugt werden:
PA1    PA0    DUO-LED
 0      0       aus
 0      1       grün
 1      0       rot
 1      1       aus
 

Code 3.5.1-1: Zuordnung von Leuchtfarbe und Zustand der digitalen Aisgänge PA0 und PA1

DUO LED

Bild 3.5.1-2: Schaltplan zum Versuch mit DUO-LED

DUO LED

Bild 3.5.1-2: Aufbau zum Versuch mit DUO-LED