Der ATMega32 und das LED-Sensor-Array (Teil 2)

So, ist zwar mehr als ein Tag geworden, aber jetzt folgt doch noch der nächste Teil ;)

Also wie ich im letzten Beitrag schon geschrieben habe, benutze ich für die Kommunikation zwischen dem PC und dem AVR I²C. Dazu habe ich eine Schaltung benutzt, die ich auf dieser Seite gefunden habe. Sie besteht nur aus 2 Z-Dioden und 2 4,7k Widerständen und ist somit recht leicht aufzubauen. Auf der Seite gab es auch direkt den Quellcode, der benötigt wird, um I²C mit dem AVR zu sprechen. Leider stellte sich heraus, dass I²C ein recht langsames Protokoll ist. Aber damit musste ich erstmal leben, da ich noch immer keinen MAX232 oder einen ähnlichen Wandlerbaustein besitze.

Ich habe dann also angefangen, das LED-Array zum Messen der Helligkeit zu nutzen. Dazu ist es nötig, die LED entgegen der Durchlassrichtung "aufzuladen" (sie verhält sich dann ähnlich wie ein Kondensator), den Pin mit hohem Potential auf Input zu schalten und die Zeit zu messen, bis man eine logische 1 misst. Diese sollte sich proportional zum einfallenden Licht ändern. Und damit wäre es dann leicht möglich, das LED-Array als Sensor-Array zu nutzen, indem man die LEDs schnell zwischen Licht emittieren und Licht messen umschaltet.

Soviel zur Theorie. In der Praxis sieht es derzeit bei mir leider so aus, dass die Messwerte von einer LED zur nächsten, aber auch von einer Messung zur nächsten bei der gleichen LED so stark schwanken, dass keine sinnvolle Auswertung möglich ist. Dabei spielt es keine Rolle, ob es gerade hell oder dunkel ist. Die Helligkeitsverältnisse haben zwar einen Einfluss auf die Messwerte insgesamt, aber die Fluktutation ist dennoch zu groß um eine sinnvolle Auswertung der Messwerte vorzunehmen.

Im Moment versuche ich mich daran, doch über den USART des AVR über RS232 mit dem PC zu sprechen, um eine größere Bandbreite zur Verfügung zu haben. Ich vermute nämlich, dadurch, dass ich nur eine Messung pro Sekunde vornehme, die LEDs sich irgendwie doch noch anders aufladen oder von der Helligkeit der Nachbar-LEDs zu stark beeinflusst werden. Ich hoffe, dass in einer kontinuierlicheren Messung diese Schwankungen entweder deutlicher als überlagertes Signal zu erkennen sind, das man ausfiltern kann oder sogar von alleine verschwinden.

Um die Kommunikation über RS232 zu ermöglichen, habe ich hier eine Schaltung gefunden, die auch ohne Wandlerbaustein funktionieren soll. Ich bin mal gespannt...

Falls jemand zufällig weiß, woran mein oben beschriebenes Problem liegen könnte, darf gerne einen Kommentar hinterlassen ;)

Ach ja: Die versprochenen Bilder kann ich derzeit nicht liefern, da meine Handykamera nur ziemlich unscharfe Bilder produziert und ich die andere derzeit nicht finde.