Hallöchen
Kann man mit einem PCF8574P eine Led dimmen, wenn ja wie?
Habe noch nichts dazu gefunden!
Einschalten mache ich so:
Code:I2CTWI_transmitByte(pcf, 0b00000001);
mfG
Philip ;)
Druckbare Version
Hallöchen
Kann man mit einem PCF8574P eine Led dimmen, wenn ja wie?
Habe noch nichts dazu gefunden!
Einschalten mache ich so:
Code:I2CTWI_transmitByte(pcf, 0b00000001);
mfG
Philip ;)
Hallo,
nein, das geht leider nicht.
Der PCF8574 ist ein I/O-Expander, d.h. er kennt nur die Zustände Ein und Aus.
Du könntest allerdings einen PCF8591 verwenden, der hat einen Port, der als D/A-Wandler verwendet wird --> du kannst die Spannung einstellen
lg
Michi
Mann könnte aber auch alle 8 Pin mit Widerständen versehen und diese auf der LED Seite parallel schalten und so je nach gesetztem Pin Pin's den Gesamt R für die LED einstellen. Dazu muss man die Widerstände natürlich so berechnen das niemals der für die LED maximale Strom überschritten werden kann. Also alle 8 Ein (parallel) zusammen nur 20 mA zulassen. Je weniger parallel liegen, je dunkler wird die LED. :-)
Gruß Richard
@Richard Das ist ja dann nur Port verschwendung.... :(
@RobotMichi Gut, dass kommt noch auf meine Bestellliste :p Nur habe ich mit einem D/A Wandler noch keine erfahrung ;) Wie sehe dann z.B. so ein Code aus?
Gibs denn auch einen mit mehreren D/A-Ports ??Zitat:
der hat einen Port, der als D/A-Wandler verwendet wird
mfG
Philip
Hallo
Wenn du mehrere LEDs dimmen willst, wie wär's denn dann mit Charlieplexing?
https://www.roboternetz.de/community...l=1#post443747
https://www.roboternetz.de/community...l=1#post371657
Gruß
mic
> Gibs denn auch einen mit mehreren D/A-Ports ??
Klar gibts da welche mit mehreren Kanälen aber die Gehäuse werden Dir nicht gefallen (SMD)
z.B.
TLC59116
TLC5922
oder
MAX6965
etc.
Alternative wäre einen Mikrocontroller entsprechend zu programmieren.
MfG,
SlyD
EDIT:
Den hier: http://focus.ti.com/lit/ds/symlink/tlc5940.pdf
Gibts auch in DIP --> TLC5940NT
Der hat aber kein I2C Bus Interface sondern SPI.
Kann man aber in Software emulieren - oder an die RP6-M32 Erweiterung ranhängen.
Könnte nicht auch ein Atmega 8 die aufgabe übernehmen?
-> aber wie sage ich den atmega, die helligkeit, die die m32 bestimmt?
Hallo,
also man kann die LED auch dimmen, indem man den Pin am Portexpander schnell ein- und ausschaltet per I2C. Das müsste aber "häufig genug" (ca >25x pro Sekunde) geschehen, damit es für das menschliche Auge nicht flackert. Klarer Nachteil ist natürlich, dass bei dieser Variante dein Mikrocontroller fast nur noch damit beschäftigt ist, die Befehle über I2C zu senden. Wenn der µC noch nebenher was anderes machen soll, dann kostet das ziemlich Performance.
Hast du wirklich keinen PWM-Ausgang mehr frei am Mikrocontroller? Und wie viele LEDs möchtest du insgesamt ansteuern?Also nur eine? ;)Zitat:
Kann man mit einem PCF8574P eine Led dimmen, wenn ja wie?
Grüße, Bernhard
Alles schon belegt :(Zitat:
Hast du wirklich keinen PWM-Ausgang mehr frei am Mikrocontroller?
Ja, der µC muss noch viel im Hintergrund machen!Zitat:
Wenn der µC noch nebenher was anderes machen soll, dann kostet das ziemlich Performance.
Zwei, könnten aber mehrere im laufe der Zeit werden!Zitat:
Und wie viele LEDs möchtest du insgesamt ansteuern?
Wenn ich einen PWM-Ausgang frei mache, wie mache ich das dann?
mfG
Philip
Du kannst jeden beliebigen Pin verwenden, das Stichwort lautet "Software-PWM":
http://www.rn-wissen.de/index.php/Pwm#PWM_per_Software
http://www.mikrocontroller.net/articles/Soft-PWM