Vor etwas über einer Woche habe ich mir einen ATMega32 AVR Mikrocontroller bei Reichelt bestellt. Dazu kamen dann noch einige aktive und passive Elemente wie Widerstände, Z-Dioden, LEDs, etc. Außerdem habe ich bei ELV noch ein Breadboard (Steckbrett) und ein passendes Netzteil (5-24V, ~3,5A) geordert.
Mit dieser Grundausstattung wollte (und will) ich mal ein bisschen Praxis in das sonst doch eher theoretische E-Technik Studium bringen. Die Motivation dazu kam unter anderem aus diesem netten Video und der hier beschriebenen Eigenschaft einer LED, auch als Lichtsensor verwendbar zu sein.
Nachdem der AVR nach nur 2 Tagen (Sonntag bestellt, Dienstag schon da) und das Breadboard dann am Donnerstag angeommen ist, konnte ich auch recht schnell loslegen. Am Dienstag habe ich mir direkt einen einfach Programmieradapter für den Parallelport nach diesem Schaltplan zusammengelötet - zum Glück hatte ich mir vorher darüber Gedanken gemacht ;)
Als dann endlich auch das Breadboard bei mir war, konnte es richtig losgehen. Da mein Ziel ja ein LED-Sensor-Array war, habe ich damit angefangen, dieses auf dem Steckbrett aufzubauen. Ich habe dafür eine einfache Matix-Anordnung gewählt, bei der ich mit 8 Anschlüssen 16 LEDs einzeln steuern kann. Da ich erst abends mit dem Basteln angefangen hatte, habe ich an dem Tag auch nicht mehr geschafft. Aber für den Anfang war ich ganz zufrieden :)
Am nächsten Tag habe ich mich dann mal an die Programmierung des AVR gewagt: Zuerst habe ich erstmal herauszufinden versucht, wie ich einzelne Pins ansteuern kann, so dass ich die LEDs auch mit richtig gepolter Spannung versorgen kann. Dabei ist dann eine kleine Lichtshow entstanden, die das Array mit einer horizontalen und dann einer vertikalen Linie durchfährt und anschließend jede LED einzeln zum Leuchten bringt. Es sah ganz nett aus, war aber natürlich nichts besonderes. Sollte es aber auch gar nicht sein, schließlich wollte ich nur wissen, wie ich die Ausgänge ansteuern kann. Später wollte ich dann ausprobieren, wie ich Daten in den AVR hinein bekommen kann, so dass ich meinem angestrebten Ziel etwas näher käme, aber das stellte sich dann doch schwieriger heraus als ich erst dachte. Es hieß jetzt erstmal die Dokumentation zu wälzen und herauszufinden, wie man den Timer, die (digitalen) Input-Pins und dergleichen benutzt. Außerdem wollte ich die Daten ja nicht nur messen, sondern auch an den PC übermitteln. Da ich keinen RS232-Wandlerbaustein habe, schied der USART des AVR erstmal aus und ich entschied mich für I²C. Auch das wollte erstmal verstanden, entwickelt bzw. gefunden und getestet werden...
Mehr dazu schreibe ich aber erst morgen, da ich für den Moment genug geschrieben habe. Morgen folgt dann die weitere Beschreibung, (hoffentlich) ein paar Fotos, vielleicht etwas Quelltext und die aktuellen Probleme. ;)