Die "Hello World"-Ampel

In diesem kurzen Tutorial werden wir uns damit beschäftigen, eine kleine Ampelanlage auf Basis eines Mikrocontrollers zu basteln und zu programmieren. Für das Tutorial benötigen wir an Software folgendes:

  • Editor mit C-Syntaxhighlighting o.ä.
  • avr-gcc oder gleichwertiger Compiler + avr-objcopy
  • libc-avr
  • avrdude

Ich werde an dieser Stelle nicht beschreiben, wie die Software eingerichtet wird. Ich gehe davon aus, dass sie bereits eingerichtet wurde. Wie man das anstellt findet man sicherlich auch alleine heraus ;) Eine kleine Anmerkung: Unter Linux (Ubuntu/Debian) ist die Einrichtung natürlich besonders einfach … (entsprechende Pakete installieren)

Natürlich wird auch etwas Hardware benötigt. Hier eine komplette Liste:

  • ATTINY13 (oder vergleichbarer Mikrocontroller, DIP/PDIP Packung!)
  • ISP Programmieradapter (via serielle, parallele oder die USB-Schnittstelle)
  • Steckbrett o.ä. um die Schaltung aufbauen zu können
  • 9V Block als Stromquelle
  • 1 x Linearregler 7805 (ein paar mehr zur Sicherheit schadet selten)
  • 2 x Kondensator mit 100nF und mind. 25V Spannungsfestigkeit (am besten Keramik-Vielschicht: VSKo)
  • 1 x Diode (genaue Bezeichnung ist mir leider unbekannt)
  • 3 x LED (rot, grün und gelb ist für eine Ampel empfehlenswert; keine ultrahellen/low current)
  • 3 x Widerstand (ca 470 Ohm, genauer Wert nicht so entscheidend, nur als Vorschaltwiderstände für die LEDs)
  • Allerlei Drähte, z.B. auch ganz nützlich ist ein Anschlusskabel für den 9V Block

Diese Teile bekommt man im Elektrogeschäft oder am besten online.

Zum Programmieradapter: Ich selbst verwende mySmartUSB light, weil's relativ billig ist und auch gleichzeitig sehr einfach zu bedienen ist. Jeder andere ISP Adapter funktioniert natürlich auch. Einen Adapter für den seriellen oder parallelen Anschluss kann man sich auch sehr einfach (und vor allem sehr billig) selbst löten.

Wenn ein Steckbrett verwendet wird sollte darauf geachtet werden, dass alle Teile auch auf das Steckbrett passen! Sie sollten also ein Rastermaß haben, dass ein Vielfaches von 2,54 mm ist.

Von SMD Bauteilen sei grundsätzlich abgeraten. Wer in der Lage ist, SMD Bauteile zu verarbeiten, der weiß mit Sicherheit auch schon alles, was in diesem Tutorial steht.

Los geht's

Das Ergebnis

Ist das Programm nun auf den Controller überspielt und die Schaltung fertig aufgebaut, dann ist die Ampel bereit für ihren Einsatz. Um das System „alleine“ laufen zu lassen, sollte man den Programmieradapter (zumindest die vom Programm genutzten PINS, in diesem Fall MOSI, sowie Ground) von der Schaltung trennen (im Bild rot umkreist).

Die Ampel durchläuft - ganz nach Vorschrift - folgende Phasen (in einer Endlosschleife):

Auf dieser Basis kann man nun weiterarbeiten und z.B. weitere Ampeln hinzufügen. Eine nette Idee wäre es wohl auch, wenn Fußgänger gefahrlos die Straße überqueren könnten, oder? Ich hoffe, dass Tutorial war soweit verständlich und gut aufgebaut. Über Lob/Kritik/Anregungen würden wir von proggen.org uns freuen.