Hi, ich beschäftige mich aktuell mit einem kleinen LED-Projekt. Ich habe mir eine 3-Kanal Treiberstufe mit integriertem Trafonetzteil gebaut. Die Treiberstufe verfügt über 3 Konstantstromquellen (LM317). Die Helligkeit der LED's möchte ich dann über das Tastverhältnis mittels PWM regeln, hierzu schließt ein Transistor einfach die LED-Strecke kurz. Es mag eleganter gehen aber es funktioniert soweit. Die PWM möchte ich über einen ATTiny13A realisieren. damit ich alle 3 Kanäle mittels PWM regeln kann, habe ich eine 8-Bit Software-PWM mit einem Timer programmiert. Das funktioniert soweit auch ganz gut. Der Gedanke ist, dass ich 3 analoge Potis zur Einstellung der PWM verwende, hierzu will ich 3 der 4 ADC-Kanäle des Tiny verwenden. Und somit kommen wir auch schon zu meinem Problem. Die PWM etc. das läuft alles. Ich kann ein Byte vorgeben und die PWM funktioniert so, wie sie soll. (Mit dem Oszi geprüft). Allerdings kommen von der ADC-Wandlung keine wirklich sinnvollen Werte zurück. Ich verwende den ADC mit Interrupt, die Bits sind linksorientiert. Allerdings scheinen - unabhängig von der Potistellung - nur Einsen aus der ADC-Wandlung zu kommen. Zumindestens schaltet die PWM die LED's komplett aus (das ist nur bei 0xFF der Fall, habs getestet). Das Programm selbst scheint aber normal zu laufen, zumindestens kann ich durch extra Variablen einen Blink-Takt auf einem anderen PWM-Kanal realisieren. Aktuell komme ich nicht wirklich weiter und hoffe daher auf ein bisschen Unterstützung. Ich hoffe, meine Beschreibung ist soweit vollständig, so dass keine Glaskugel benutzt werden muss. Viele Grüße Nils
Ist das (Bild) die Beschaltung der Potis, die du an den ADC angeschlossen hast? Die passt nicht. Die Potis werden so
1 | + ------+---- |
2 | | |
3 | +-+ |
4 | <| | |
5 | \ | |
6 | |\| |
7 | | --------- zum ADC Eingang |
8 | | | |
9 | +-+ |
10 | | |
11 | GND -----+---- |
angeschlossen. Die 'äusseren Enden' des POtis kommen an +5V bzw. Masse und mit dem Schleifer kann man dann eine einstellbare Spannung zwischen +5V und 0V abgreifen. Aus deiner Beschaltung werd ich nicht wirklich schlau, was da jetzt die Idee sein soll. Das ist IMHO einfach nur ein einstellbarer Widerstand, der vor dem ADC Eingang sitzt. Aber eine variable Spannung kann man damit nicht einstellen.
:
Bearbeitet durch User
Karl Heinz schrieb: > Ist das (Bild) die Beschaltung der Potis, die du an den ADC > angeschlossen hast? Das sind seine Konstantstromquellen für die LEDs. Der Potianschluss ist auf 02.png.
Route 66 schrieb: > Karl Heinz schrieb: >> Ist das (Bild) die Beschaltung der Potis, die du an den ADC >> angeschlossen hast? > > Das sind seine Konstantstromquellen für die LEDs. Der Potianschluss ist > auf 02.png. J2, J3, J4? ok, die hab ich nicht weiter beachtet, weil da keine Potis eingezeichnet sind.
Ja Karl Heinz, vielen Dank für den Hinweis, das habe ich nicht erklärt. Die Potis werden über WAGO-Klemmen an die Platine geklemmt, damit diese abgesetzt werden können. J2, J3, J4 sind für die Potis (02.png). Die LED's werden zwischen J5 und J6 geklemmt (J6 3x GND, J5 3x SW-PWM) U2, U3, U4 sind LM317 Konstantstromquellen, die Potis dienen zum Einstellen des Stroms.
Manchmal sieht man den Wald vor lauter Bäumen nicht. Ich habe den Fehler gefunden! Der ADC war wohl doch nicht schuld, ich habe das Ergebnis nur falsch gelesen. Der eigentliche Fehler war in der Funktion "write_pwm". Dort beschreibe ich die PWM-Arrays neu. Ich muss, bevor ich neue einsen hineinsetze natürlich das Array erst einmal komplett auf null zurücksetzen. Das habe ich nicht gemacht. Trotzdem Danke für die Anteilnahme. Ich habe den korrigierten Quellcode noch einmal angehängt, falls jemand Interesse hat. Gruß Nils
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.