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
1.5.6.1 Beispiel: Fußgängerampel
  • Eine Fußgängerampel schaltet auf Knopfdruck für eine Weile von ROT auf GRÜN.
  • Diese Funktion soll mit Hilfe eines ATmega8-Mikrocontrollers realisiert werden.
Fertig aufgebaute Ampelschaltung

Bild 1.5.6.1-1: Fertig aufgebaute Ampelschaltung

Schaltplan der Ampelschaltung

Bild 1.5.6.1-2: Schaltplan der Ampelschaltung

LED Anschlüsse

Bild 1.5.6.1-3: LED Anschlüsse

#include <avr/io.h>

int main(void)
{
    unsigned char akku;
    int i,k;

	//PORT B als Eingang, um Testschalter zu realisieren:
	DDRB = 0x00;

	//PORT C als Ausgang:
	DDRC = 0xff;



    while(1)
    {
        akku  = PINB; 
		
	if( (akku & 0b00000001) > 0 )
	{
  	    PORTC = 0b00000001; //gruen

	    for(i=0;i<1000;i++)  //Pause
	    {
	       for(k=0;k<100;k++)
	       {
	       }
	    }
	}
	else
	{
  	        PORTC = 0b00000010; //rot

	}
    }
}
 

Code 1.5.6.1-1: Ampelprogramm

Programm-Dokumentation

Bild 1.5.6.1-4: Programm Dokumentation

Variationsideen

Im Workshop wird das Ampelbeispiel erläutert und als Steckbrett-Schaltung zur Verfügung gestellt. Um es wirklich zu verstehen, bietet es sich an, Varianten zu programmieren und zu bauen und diese zu testen:

  • Zeitverzögerung vor Grün-Schaltung
  • Fußgängerampel mit Pieper für Blinde
  • Gelbphase
  • Blinkende Ampel
  • Lauflicht

Fußgängerampel als AVR-Studio-Projekt