Aquariumbeleuchtung im Selbstbau
Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese
- KampfKeks_MRZ
- Beiträge: 382
- Registriert: So 11. Aug 2013, 17:52
- Wohnort: 52399 Merzenich
- Kontaktdaten:
Aquariumbeleuchtung im Selbstbau
Hallo zusammen,
ich bin derzeit dabei, eine Aquariumbeleuchtungssteuerung zu bauen (vlt. später auch noch mehr rund ums Aquarium), und möchte diese mit einem ATMega32 realisieren...
Stand ist derzeit folgender:
LEDs -> Bestellt
LED-Aluschienen -> Hm, der Höker kriegt erst wieder im Januar die richtigen rein...
LED-KSQ -> Bestellt, PWM-fähig. Preis mit 7,99 unschlagbar - da lohnt wirklich kein Selbstbau - zumindest nicht auf die Gefahr hin, sich die teuren LEDs zu zerschießen...
Hühnerfutter, Platinen etc -> vorhanden.
Nachdem ich früher mit BASCOM programmiert habe, bin ich nun auf C im AVR-Studio umgestiegen... Also C-Neuling, aber es ist mir bereits jetzt sympatischer.
Jetzt kommt das Problem: Ich benötige 3 PWMs, die ich unabhängig voneinander einstellen kann. Weiterhin brauche ich einen Timer, den brauche ich wirklich zwingend frei. Nun blicke ich nicht mehr durch... Atmel schreibt im Datenblatt http://www.atmel.com/Images/doc2503.pdf, dass der Mega32 4PWMs hat. Bei 3 Timern?!?? Logische Schlussfolgerung: Ein Timer muss 2 PWMs gleichzeitig können?!???
Irgendwie hat sich das bei mir mit den Timern in C noch nicht ins Hirn gefressen... Hat einer eine Hilfestellung diesbezüglich für mich? Ich habe beim Gockel leider nicht wirklich etwas gefunden, was mir da weiterhilft...
Gruß Rainer
PS: Selbstverständlich werde ich bei Erfolg des Projektes alle zugehörigen Daten veröffentlichen
ich bin derzeit dabei, eine Aquariumbeleuchtungssteuerung zu bauen (vlt. später auch noch mehr rund ums Aquarium), und möchte diese mit einem ATMega32 realisieren...
Stand ist derzeit folgender:
LEDs -> Bestellt
LED-Aluschienen -> Hm, der Höker kriegt erst wieder im Januar die richtigen rein...
LED-KSQ -> Bestellt, PWM-fähig. Preis mit 7,99 unschlagbar - da lohnt wirklich kein Selbstbau - zumindest nicht auf die Gefahr hin, sich die teuren LEDs zu zerschießen...
Hühnerfutter, Platinen etc -> vorhanden.
Nachdem ich früher mit BASCOM programmiert habe, bin ich nun auf C im AVR-Studio umgestiegen... Also C-Neuling, aber es ist mir bereits jetzt sympatischer.
Jetzt kommt das Problem: Ich benötige 3 PWMs, die ich unabhängig voneinander einstellen kann. Weiterhin brauche ich einen Timer, den brauche ich wirklich zwingend frei. Nun blicke ich nicht mehr durch... Atmel schreibt im Datenblatt http://www.atmel.com/Images/doc2503.pdf, dass der Mega32 4PWMs hat. Bei 3 Timern?!?? Logische Schlussfolgerung: Ein Timer muss 2 PWMs gleichzeitig können?!???
Irgendwie hat sich das bei mir mit den Timern in C noch nicht ins Hirn gefressen... Hat einer eine Hilfestellung diesbezüglich für mich? Ich habe beim Gockel leider nicht wirklich etwas gefunden, was mir da weiterhilft...
Gruß Rainer
PS: Selbstverständlich werde ich bei Erfolg des Projektes alle zugehörigen Daten veröffentlichen
Re: Aquariumbeleuchtung im Selbstbau
Das ist korrekt.
Ein Timer hat 2 voneinander Compare-Werte die dann auch unterschiedliche PINs steuern.
PWM läuft so ab:
PIN wird auf high gesetzt und wenn der Timer den Compare-Wert erreicht wieder auf 0. Nach dem Overflow des Timers geht das ganze wieder von vorne los (mehr oder weniger, muss nicht unbedingt ein Overflow sein, aber egal ).
Ein Timer hat 2 voneinander Compare-Werte die dann auch unterschiedliche PINs steuern.
PWM läuft so ab:
PIN wird auf high gesetzt und wenn der Timer den Compare-Wert erreicht wieder auf 0. Nach dem Overflow des Timers geht das ganze wieder von vorne los (mehr oder weniger, muss nicht unbedingt ein Overflow sein, aber egal ).
Re: Aquariumbeleuchtung im Selbstbau
Naja zum Dimmen kann man ja auch einfach einen Software PWM machen.
ZählerTimer0 von 0-255
Dann Pin 1=1 wenn Zähler > 128 entspricht 50% PWM
ZählerTimer0 von 0-255
Dann Pin 1=1 wenn Zähler > 128 entspricht 50% PWM
- KampfKeks_MRZ
- Beiträge: 382
- Registriert: So 11. Aug 2013, 17:52
- Wohnort: 52399 Merzenich
- Kontaktdaten:
Re: Aquariumbeleuchtung im Selbstbau
Okay, in etwa so habe ich mir das gedacht... Aber wie konfiguriere ich das in C? Das will mir irgendwie im Moment gar nicht in die Birne...Marodeur hat geschrieben:Das ist korrekt.
Ein Timer hat 2 voneinander Compare-Werte die dann auch unterschiedliche PINs steuern.
PWM läuft so ab:
PIN wird auf high gesetzt und wenn der Timer den Compare-Wert erreicht wieder auf 0. Nach dem Overflow des Timers geht das ganze wieder von vorne los (mehr oder weniger, muss nicht unbedingt ein Overflow sein, aber egal ).
@Hightech:
Wenn ich aber 3 unabhängige PWMS brauche, ist das dann nicht etwas unpraktikabel? Vor allem sehe ich da dann auch irgendwie ein Timing-Problem, da ja noch mehr im Programm läuft, bspw. das LCD, ne RTC usw...
Gruß Rainer
- zauberkopf
- Beiträge: 9529
- Registriert: So 11. Aug 2013, 15:33
- Wohnort: gefährliches Halbwissen
Re: Aquariumbeleuchtung im Selbstbau
Du.. ich bin in einer ähnlichen verfassung .
Aber meine Timerproblem habe ich mit hilfe von Zabex gelöst bekommen.
Danke nochmal.
hier mein Codeauschnitt :
Bei mir ist das einfach : Ich will einfach nur eine 25khz referenz aus 10MHZ generieren.
Aber meine Timerproblem habe ich mit hilfe von Zabex gelöst bekommen.
Danke nochmal.
hier mein Codeauschnitt :
Code: Alles auswählen
TCCR1A=(1<<COM1A1) | (1<<WGM11);
TCCR1B= (1<<WGM13) | (1<<WGM12) | (1<<CS10);
// ICR1 = 799;
// OCR1A=400; //irgendwas von einschließlich 0..639
ICR1 = 400; //25 khz bei 10MHZ
OCR1A=200; //50:50
- KampfKeks_MRZ
- Beiträge: 382
- Registriert: So 11. Aug 2013, 17:52
- Wohnort: 52399 Merzenich
- Kontaktdaten:
Re: Aquariumbeleuchtung im Selbstbau
Danke Zauberkopf...
Ich glaube, ich muss mein Wochenende noch einmal zwischen Datenblättern und C-Doku verbringen...
Ich glaube, ich muss mein Wochenende noch einmal zwischen Datenblättern und C-Doku verbringen...
- zauberkopf
- Beiträge: 9529
- Registriert: So 11. Aug 2013, 15:33
- Wohnort: gefährliches Halbwissen
Re: Aquariumbeleuchtung im Selbstbau
Ich muss sagen..mein APRS PLL Sender Projekt, ist mein ersters C-Projekt nach über 10 Jahren. und das macht so langsam aber sicher Spass !
Zwar bin ich das Bit-Popeln gar nicht gewöhnt.. und muss mir das auch erst mal wieder aneignen, aber das ein gut Formatierter C-Code lesbarer ist, als Basccom... das kann ich nachvollziehen !
Es ist aber auch schon erstaunlich, welche saudoofen fehler man machen kann.. z.B. bin u.A. am Timer und PWM gescheitert, weil ich DEPP dauernd am falschen Pin gemessen habe !!!
Eben habe ich noch was bemerkt : meine PLL wollte nicht einrasten.
Jetzt war ich mir aber nicht 100% sicher ob ich zu doof zum programmieren bin, oder aber zu doof für Analogtechnik.
Datenblattlesen rulez. Muxout von PLL Lock detect auf R-Counter eingestellt : Schwups habe ich auf dem Pin ein 25khz Signal.
d.H. Programmierung funktioniert.
jetzt den Muxout auf N-Counter eingestellt : NIX Signal. AHA ! PLL kriegt also keine frequenz zu vergleichen.
Folge : Etwas mehr pegel gegönnt(da war ich wohl zu geizig... ).. und schwups war der lock da ! *jubel*
Auf die Idee der Fehlersuche kam ich aber erst nach dem ich ne N8 darüber geschlafen hatte.
Zwar bin ich das Bit-Popeln gar nicht gewöhnt.. und muss mir das auch erst mal wieder aneignen, aber das ein gut Formatierter C-Code lesbarer ist, als Basccom... das kann ich nachvollziehen !
Es ist aber auch schon erstaunlich, welche saudoofen fehler man machen kann.. z.B. bin u.A. am Timer und PWM gescheitert, weil ich DEPP dauernd am falschen Pin gemessen habe !!!
Eben habe ich noch was bemerkt : meine PLL wollte nicht einrasten.
Jetzt war ich mir aber nicht 100% sicher ob ich zu doof zum programmieren bin, oder aber zu doof für Analogtechnik.
Datenblattlesen rulez. Muxout von PLL Lock detect auf R-Counter eingestellt : Schwups habe ich auf dem Pin ein 25khz Signal.
d.H. Programmierung funktioniert.
jetzt den Muxout auf N-Counter eingestellt : NIX Signal. AHA ! PLL kriegt also keine frequenz zu vergleichen.
Folge : Etwas mehr pegel gegönnt(da war ich wohl zu geizig... ).. und schwups war der lock da ! *jubel*
Auf die Idee der Fehlersuche kam ich aber erst nach dem ich ne N8 darüber geschlafen hatte.
- Weisskeinen
- Beiträge: 3950
- Registriert: Di 27. Aug 2013, 16:19
Re: Aquariumbeleuchtung im Selbstbau
Im Datenblatt steht drin, welche Register wie eingestellt werden müssen, damit etwas bestimmtes passiert. In den zum Controller passenden Header-Dateien sind diese Register unter den gleichen Namen definiert und lassen sich wie ganz normale Variablen verwenden.KampfKeks_MRZ hat geschrieben:Danke Zauberkopf...
Ich glaube, ich muss mein Wochenende noch einmal zwischen Datenblättern und C-Doku verbringen...
- KampfKeks_MRZ
- Beiträge: 382
- Registriert: So 11. Aug 2013, 17:52
- Wohnort: 52399 Merzenich
- Kontaktdaten:
Re: Aquariumbeleuchtung im Selbstbau
Soo, es geht weiter. Endlich habe ich mich dazu durchringen können, eine Platine zu entwerfen, die hoffentlich alle Aspekte die ich benötige beinhaltet.
Es sind verbaut:
2x Meanwell LDD 350mA KSQ (je eine PWM)
2x Meanwell LDD 700mA KSQ (die dritte PWM)
gesteuert von einem Mega32
Zeitpuffer per DS1307
1x Relais für CO2-Anlage...
Und ein Display ohne Beleuchtung, da ich ja Energiesparen möchte...
Hat jemand Lust, mal einen Blick darauf zu werfen? Möchte die Platine machen lassen, da ich doppelseitig nicht sauber hinbekomme... Wäre aber blöd, wenn dann noch ein Fehler drin ist...
Sobald es die entgültige Version gibt, stelle ich sowohl Board, Schaltplan als auch Software gerne ins Forum...
Gruß Rainer
[EDITH sagt]
Sind die PWM-Ausgänge richtig?!???
Es sind verbaut:
2x Meanwell LDD 350mA KSQ (je eine PWM)
2x Meanwell LDD 700mA KSQ (die dritte PWM)
gesteuert von einem Mega32
Zeitpuffer per DS1307
1x Relais für CO2-Anlage...
Und ein Display ohne Beleuchtung, da ich ja Energiesparen möchte...
Hat jemand Lust, mal einen Blick darauf zu werfen? Möchte die Platine machen lassen, da ich doppelseitig nicht sauber hinbekomme... Wäre aber blöd, wenn dann noch ein Fehler drin ist...
Sobald es die entgültige Version gibt, stelle ich sowohl Board, Schaltplan als auch Software gerne ins Forum...
Gruß Rainer
[EDITH sagt]
Sind die PWM-Ausgänge richtig?!???