PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega32 LED Steuerung



kufikugel
01.04.2010, 00:08
Hallo zusammen,

ich bin gerade dabei eine LED Lampe mit mehreren KSQ's zu bauen die über PWM angesteuert werden sollen.

Nun ich kann zwar Programmieren (mein Beruf) und habe Nachrichtentechnik studiert....jedoch mit der Materie der programmierung von Microcontrollern habe ich bis dato kaum zutun gehabt. Das wird sich nun ändern, hoffentlich mit eurer Hilfe.

Nun meine Vorstellung wo es am ende hin soll:

Ich brauche 2xPWM (einmal um weiße LED's zu dimmen und einmal blaue). Da direkt die Frage......die PWM Ausgänge sind denke ich nicht so belastbar das man mal eben so 12 KSQ's dranhängen kann oder?? Wie macht man das dann am elegantesten?

Dann einen Timer würde ich gerne nutzen für eingebaute Uhr mit DCF77 am besten.

Ebenfalls soll ein 4x20 Zeichen Display angeschlossen werden worauf man einige Daten sehen kann und mittels 4 Tastern einige Einstellungen vornehmen kann.

Diese wären dann: Einschaltzeit blau, Einschaltzeit weiß, Ausschaltzeit weiß, Ausschaltzeit blau, Dimmzeitlänge weiß, Dimmzeitlänge blau (dies wird dann von den ein und ausschaltzeiten an aus gerechnet) und Dimmverhalten in % (also von wo bis wo)

Evtl. noch DCF77 an und aus und Zeiteinstellung manuell.


Das wäre im Grunde alles was ich mir wünsche. Evtl läßt sich später noch eine Zufallsgewittersimulation erstellen....dies ist aber noch absolut nicht in meinem Kopf.

Mein ihr ein Atmega32-16 würde dafür schon reichen? Wie würdet ihr mir empfehlen überhaupt daran zu gehen....außer lesen lesen und lesen....das mache ich schon seit geraumer Zeit und will langsam in die Praxis.


Anfangen will ich gerne mit dem Pollin Board.

Danke und Grüße,

Lars

wkrug
01.04.2010, 09:20
Zuerst mal eine Frage, was sind KSQ's ?

Dann zum Thema.
Der ATMEGA 32 dürfte für diese Aufgabe ausreichend sein.
Er hat 3 Hardware PWM's 2x16 Bit Auflösung im Timer 1. Einen mit 8Bit Auflösung im Timer 2.

Ich würde nacheinander die einzelnen Komponenten entwickeln. Und zwar in der Reihenfolge, wie die einzelen Komponenten voneinander abhängig sind.

Das Erste dürfte das Display sein, weil man das auch gleich als Ausgabeeinheit beim debuggen nutzen kann. Fast jeder C-Compiler hat eine .lib für die Ausgabe von 4x20 Zeichen Displays an Bord. Somit sollte das kein Problem sein.

Mein nächster Schritt wäre die Implementation des DCF77 Signals, weil damit auch gleich die Programmierung der internen freilaufenden Uhr einher geht.
Dann würde ich mich auf die PWM Ausgabe stürzen und zum Schluß die Tastenabfrage und Auswerteroutine schreiben.

Für die Gewittersimulation brauchst Du einen Zufallsgenerator, das ist aber mit einem ATMEGA 32 gar nicht so einfach eine geeignete Zufallsquelle zu finden, da hier fast alles vom Taktgenerator abgeleitet wird. Gerade zum Thema Uhr gibt es im Internet unzählige Beiträge mit kommentiertem Quellcode, so das Du hier auch mal spicken kannst.

Die Programmierung der PWM's ist im Datenblatt des ATMEGA32 sehr gut beschrieben. Wegen der vielen Optionen braucht man dann schon eine Weile bis man da komplett durchsteigt. Dafür läuft dann aber auch alles in Hardware und belastet den Prozessorkern so gut wie überhaupt nicht.

Das Pollin Board ist soweit schon OK, allerdings kommst Du an die Controllerports nur über einen Wannenstecker ran, somit musst Du die Peripherie über ein externes Board / Steckbrett aufbauen.
Ein Lochrasterfeld hat das Pollin Board nicht.
Der Programmer ist bei Pollin Board schon mit drauf, allerdings braucht dabei dein Rechner eine serielle Schnittstelle.
Controller auf dem Pollin Board progge ich mit PonyProg, das harmoniert sehr gut.

Als Treiber für deine LED's kannst Du FET's verwenden, die lassen sich relatv problemlos mit einem Controller ansteuern.
Der MEGA 32 kann 10mA von der +Seite aus und ca. 20mA nach Masse hin schalten.
Insgesamt dürfen es aber nicht mehr als 200mA werden.
Wenn Du den A/D Wandler, oder auch PWM's mit Spannungen bis an die 0V Grenze haben willst, solltest Du aber weit unter diesen Grenzen bleiben, das beeinflusst sich nämlich.

kufikugel
01.04.2010, 11:40
Hi,

ich antworte mal zwischen den Zeilen:


Zuerst mal eine Frage, was sind KSQ's ?

KSQ=KonstantStromQuelle, die LED's werden ja wesentlich optimaler im Arbeitbereich gehalten dadurch. Bei mir wird das gelöst über einen ZXLD1366 von Diodes. Der hat kaum Umbeschaltung und einen PWM eingang. Siehe auch diesen Link hier:

http://www.diodes.com/datasheets/ZXLD1366.pdf


Dann zum Thema.
Der ATMEGA 32 dürfte für diese Aufgabe ausreichend sein.
Er hat 3 Hardware PWM's 2x16 Bit Auflösung im Timer 1. Einen mit 8Bit Auflösung im Timer 2.

Ah das ist schonmal sehr gut.

Ich würde nacheinander die einzelnen Komponenten entwickeln. Und zwar in der Reihenfolge, wie die einzelen Komponenten voneinander abhängig sind.

Das Erste dürfte das Display sein, weil man das auch gleich als Ausgabeeinheit beim debuggen nutzen kann. Fast jeder C-Compiler hat eine .lib für die Ausgabe von 4x20 Zeichen Displays an Bord. Somit sollte das kein Problem sein.


Das ist wirklich sinnvoll. Werde ich auch so machen. Werde aber mit Sicherheit noch viele viele Fragen haben dazu. Apropo.....welchen c-compiler empfiehlst du dafür?

Mein nächster Schritt wäre die Implementation des DCF77 Signals, weil damit auch gleich die Programmierung der internen freilaufenden Uhr einher geht.
Dann würde ich mich auf die PWM Ausgabe stürzen und zum Schluß die Tastenabfrage und Auswerteroutine schreiben.

Für die Gewittersimulation brauchst Du einen Zufallsgenerator, das ist aber mit einem ATMEGA 32 gar nicht so einfach eine geeignete Zufallsquelle zu finden, da hier fast alles vom Taktgenerator abgeleitet wird. Gerade zum Thema Uhr gibt es im Internet unzählige Beiträge mit kommentiertem Quellcode, so das Du hier auch mal spicken kannst.

Wie gesagt da weiß ich garnicht ob überhaupt....wenn dann später irgendwann als gimick

Die Programmierung der PWM's ist im Datenblatt des ATMEGA32 sehr gut beschrieben. Wegen der vielen Optionen braucht man dann schon eine Weile bis man da komplett durchsteigt. Dafür läuft dann aber auch alles in Hardware und belastet den Prozessorkern so gut wie überhaupt nicht.

Das ist sehr gut....obwohl es bei der Anwendung denke ich kaum auf die Kernauslastung ankommt da es ansich ja nicht viel ist was er machen soll

Das Pollin Board ist soweit schon OK, allerdings kommst Du an die Controllerports nur über einen Wannenstecker ran, somit musst Du die Peripherie über ein externes Board / Steckbrett aufbauen.
Ein Lochrasterfeld hat das Pollin Board nicht.

Ja ist mir bewußt und kein Problem....das Display und DCF muss ich ja nur rausholen. Taster sind ja mit auf dem Board und LED's zum testen auch

Der Programmer ist bei Pollin Board schon mit drauf, allerdings braucht dabei dein Rechner eine serielle Schnittstelle.
Controller auf dem Pollin Board progge ich mit PonyProg, das harmoniert sehr gut.

Habe hier noch einen Rechner mit RS232 rumfliegen. PonyProg ist auch schon drauf. Sollte funktionieren.

Als Treiber für deine LED's kannst Du FET's verwenden, die lassen sich relatv problemlos mit einem Controller ansteuern.
Der MEGA 32 kann 10mA von der +Seite aus und ca. 20mA nach Masse hin schalten.
Insgesamt dürfen es aber nicht mehr als 200mA werden.
Wenn Du den A/D Wandler, oder auch PWM's mit Spannungen bis an die 0V Grenze haben willst, solltest Du aber weit unter diesen Grenzen bleiben, das beeinflusst sich nämlich.

Gut muss ich mich nochmal genauer damit auseinandersetzen, bzw auch ein wenig testen. Letztendlich könnte ich doch einfach auch einen npn vor den Einganz des KSQ's PWM setzen und den ansteuern, oder? Sollte doch die einfachste Methode sein.



Die bestellten Teile inkl. dem Atmel Board sollten die Tage kommen....dann werde ich euch hier Löcher in den Bauch fragen :)

Danke und Grüße,

Lars

wkrug
01.04.2010, 17:31
welchen c-compiler empfiehlst du dafür?
Die meisten hier im Forum verwenden den AVR-GCC weil kostenlos.
ATMEL hat im AVR Studio 4 auch eine Schnittstelle zu diesem Compiler integriert.
Ich persönlich verwende CodeVision AVR, aber den haben nur ein paar Leute hier im Forum, weil der was kostet.
Die meisten Codeschnipsel im Internet sind aber für AVR GCC.


DCF 77 Uhr...Wie gesagt da weiß ich garnicht ob überhaupt....wenn dann später irgendwann als gimick
Wenn Du eine Uhr bauen willst gibt es nichts besseres, als gleich einen DCF 77 Empfänger einzubauen.
Das DCF Signal synchronisiert dabei nur die interne Software Uhr im Controller. Fällt das DCF Signal aus, läuft die Uhr trotzdem weiter.
Um Sommer und Winterzeit brauchst Du Dir auch keine Gedanken zu machen - Besser gehts nicht. Als Empfänger würde ich die DCF Platine von Conrad für "C-Control" verwenden.
Ich hab mal eine DCF 77 Stoppuhr gebaut. Läuft vorwärts und Rückwärts, Hat eine Stoppuhrfunktion und Auto Reset - Wenn Du den Quellcode magst...


Letztendlich könnte ich doch einfach auch einen npn vor den Einganz des KSQ's PWM setzen
Ein Digitaleingang zieht so wenig Strom, das Du Dir das getrost sparen kannst. Es können wirklich nur Probleme auftreten, wenn man LED's direkt ansteuert.

kufikugel
01.04.2010, 18:27
Hi,

ich meinte nicht das DCF77 sondern die Gewittersimulation ist ein gimick. Das DCF reinkommt steht 100% fest :) Quellcode....komme ich gerne darauf zurück sobald ich ein wenig durchblick habe.....sonst mache ich mich verrückt. Ich kenne mich *gg*

Gut mit den Eingängen zu wissen.

Könnte es denn Probleme geben zwischen uC und KSQ wenn der eine längere Zuleitung bekommt? Dürfte dann nich mehr so sauber sein....deswegen bin ich schon doch in richtung vorsichtshalber vor den ZXLD1366 nocht nen Mosfet zu bauen damit das sauberer läuft. Habe schon oft gelesen das der ZXLD1366 doch etwas empfindlich ist.

Danke dir un Grüße,

Lars

wkrug
01.04.2010, 20:09
Könnte es denn Probleme geben zwischen uC und KSQ wenn der eine längere Zuleitung bekommt?
Die Probleme von denen ich spreche beziehen sich auf leichte Spannungsanhebungen innerhalb des Controllers, das bei höheren Strömen auftritt.
Dann schaltet zum Beispiel die PWM nicht mehr ganz nach 0V sondern bleibt im Aus Zustand auf 0,1V.
Das ist für die meisten Anwendungen nicht relavant.
Schließt man aber ein Messgerät an kann es dabei zu Verfälschungen kommen.
Das gleiche gilt für den A/D Wandler, bei dem es durch solche Restspannungserscheinungen zu Messfehlern kommen kann.


Probleme mit PWM's und LED Ansteuerungen hatte ich bisher eher auf der Leistungsseite, also zu den LED's hin.
Sind hier die Leitungen zu lang, kann es zu unangenehmen Abstrahlungen kommen.
Die Erfahrung hab ich allerdings mit High Poer LED's gemacht, bei denen immerhin 0,7A pro LED fließen.
Es kommt natürlich auch auf die gewünschte PWM Frequenz an.
7 bis 8 kHz sind mit den ATMEGAs ohne weiteres drin.
Sinnvoll sind so hohe PWM Frequenzen aber nicht.
Sinnvoll wären Frequenzen zwischen 200 und 500Hz.
Da flackert dann garantiert nichts mehr und man hat trotzdem keine HF Abstrahlungen.

kufikugel
02.04.2010, 09:12
Hi,

ah ok. Wenn es geht soll die Frequenz auch nicht zu hoch sein. Aber schonmal gut zu wissen. Danke!!

Die LED's sind übrigens HighPower LED's die mit 800mA betrieben werden sollen. Nur mal so als Info. Ingesamt werden es 216 Stück verteilt auf 18 KSQ's.


Grüße,

Lars

wkrug
02.04.2010, 09:44
WOW, das ist ja dann schon eher ein Großprojekt.
Ich hab für meine LED Scheinwerfer mit 3W Luxeon LED's, den LM3404 verwendet.
Ich steuere aber hier mit 3 Bausteinen bescheidene 6 LED's an.

kufikugel
02.04.2010, 09:54
Hi,

ja das stimmt wohl. Brauche das als Beleuchtung für mein 2000l Meerwasseraquarium. Sind echt viele Sachen worauf ich achten muss. z.B. laufen da schlappe 16A über das Zuleitungskabel zu Lampe. Da erstmal geeignete Steckerverbindungen (soll ja auch flexibel sein) die dazu noch ip67 sind als privatmann finden. Alles nicht so einfach.

Aber es wird :) Werde wenn ich mal alle Teile zusammen habe das auch hier mal fototechnisch Dokumentieren.

Grüße,

Lars