Lauflicht mit Attiny13



Ab drei LEDs kann man den Effekt eines laufenden Lichtes erzeugen.

Gleichzeitig soll unser kleines Projekt ein Beispiel für eine sogenannte Ablaufsteuerung sein. Schließlich könnte man statt LEDs auch andere Verbraucher nehmen, wie z. B. Motoren. Damit kannst Du dann eine Eierbratmaschine steuern: Ei a) aufschlagen b) braten c) servieren.

Wir werden später mit dem Atmega8 eine Ablaufsteuerung bauen, die bis zu 23 Vorgänge nacheinander oder beliebig gleichzeitig steuern kann.

Ach so: natürlich kann man keinen großen Motor an unsere Mikrocontroller hängen, dafür würde die Strombelastbarkeit eines Mikrocontrollerausganges nicht ausreichen. Du könntest aber z. B. einen Transistor und ein Relais damit ansteuern und damit schon relativ große Spannungen und Ströme schalten.



Hier das C Programm:


#include <avr/io.h>
#define F_CPU 1200000UL  // 1,2 MHz
#include <util/delay.h>

int main(void)
{
  DDRB = 7;  // PB0, PB1, PB2 sind Ausgänge
  int leuchtzeit =200;   
      
   while (1) {
      
    PORTB &= ~_BV(PB0); _delay_ms(leuchtzeit); PORTB |= _BV(PB0);
    PORTB &= ~_BV(PB1); _delay_ms(leuchtzeit); PORTB |= _BV(PB1);
    PORTB &= ~_BV(PB2); _delay_ms(leuchtzeit); PORTB |= _BV(PB2);
   
   }
 
   return(0);
}

Hier der gepackte Ordner lauflicht_code.zip zum schnellen Programmieren.


Aufgaben:

Du solltest einwenig mit der Schaltung und dem Programm herumexperimentieren.
Du könntest z.B.
- die Laufgeschwindigkeit verändern
- die Richtung verändern
- mehrere verschiedene Laufeffekte nacheinander abspielen lassen
- eine vierte LED hinzufügen

Beim Experimentieren könntest Du auf folgende Fragen stoßen:
- Warum kann ich nicht einfach noch PB5 benutzen?
- Wie kann ich es verhindern, daß die Helligkeit der LEDs geringer wird, wenn mehr als eine leuchtet?