PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fließender Übergang von Kathoden mit mega8?!?!



NRG
17.07.2005, 17:04
Hallo Leute!!
Ich programmiere ja mit Mega8...
So nun hat mich mein Freund gefragt, ob ich ihm etwas proggen könnte, wo er auf nen Taster drückt, und dann Kathoden langsam von der einen Farbe (rot) in die andere Farbe (grün) wechseln..
Wir haben uns gedacht, dass man des evtl. mit nem Optocopler machen könnte, doch ich weiß den programm code net....
Also ich denk mal A/D wandler, doch den versteh ich nicht so richtig......
Vielleicht kann mir ja jemand von eich weiterhelfen!!!

MFG

NRG ](*,)

bluebrother
18.07.2005, 10:10
Kathoden langsam von der einen Farbe (rot) in die andere Farbe (grün) wechseln

was soll das genau sein? Ich kann mir da drunter nix vorstellen. Meinst du vielleicht ne Dual-LED?

NRG
18.07.2005, 10:26
ne.......... wenn man an eine kaltlichtkathode die vom pc............ weniger strom dran tut, dann werden die dunkler..............

uwegw
18.07.2005, 10:30
du könntest die LED zwischen einem normalen portpin und einem PWM-port anschließen.
dann gibt es zwei fälle:
a) grüne LED -> pin auf low, pwm regelt leuchtstärke
b) rote LED -> pin auf high, pwm mit invertiertem tastverhältnis (also 0 = volle leistung, 255 = aus)

NRG
18.07.2005, 11:00
ahja also wenn ich den port als eingang definiere, dann is er low.... und dann kann ich des mithilfe von pwm machen oder hab ich da was falsch verstanden?! *gg*

MFG

NRG O:)

uwegw
18.07.2005, 11:22
du schließt die LED zwischen zwei portpins an. wenn nun einer von ihnen auf high und der andere auf low gelegt wird, liegt zwischen ihnen eine spannung für die LED an. dabei lässt sich die polung verändern, sodass zwischen den farben umgeschaltet werden kann.

der PWM.port schaltet schnell zwischen high und low hin und her. dabei ergibt sich dann, dass er mal dasselbe potential hat wie der zweite portpin, dann ist die spannung null, mal ein unterschiedliches potential also spannung. duirch das schnelle umschalten kommt an der LED nur noch ein teil der normalen energie an, sodass sie weniger hell leuchtet...

Felix G
18.07.2005, 12:04
Ähm Leute...
er will CCFLs (http://www1.conrad.de/scripts/wgate/zcop_b2c/!?perform_special_action=Produktdetail&product_show_id=581757) dimmen und keine LEDs

NRG
18.07.2005, 13:21
ja egal ich schließ ja einfach nen optokopler an dann passt die sache..... is scho ok. mit leds
aber des von ueweg check ich irgendwie net! *gg*
also ich hab hier mal einen code gefunden, mit dem die led heller und dunkler wird wenn man an dem poti dreht........ könnt ich des evtl. umschreiben, dass es ohne poti geht, sondern automatisch???


' Poti über ADW einlesen und über PWM ausgeben
' der Ausgang ist OC1A
' Poti an Channel5 (PortC5), LED an PortB1 (OC1A)
' laut Oszi ca. 3.333kHz

$crystal = 8000000
$regfile = "m8def.dat"

Config Portb = Output
Config Adc = Single , Prescaler = Auto , Reference = Off
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
Portb = 255
Start Adc

Dim W As Word , Channel As Byte
Compare1a = 100
Channel = 5

Do
W = Getadc(channel)
Pwm1a = W
Loop
End


MFG

Nrg

uwegw
18.07.2005, 13:28
wegen den übergang von rot nach grün dachte ich an LEDs... dickes missverständnis ;)

also sind grün und rot in getrennten röhren, die einzeln angesteuert werden?
dann kommt jeden röhre an eine eigenen PWM, damit sie regelbar ist... natürlich über nen transistor plus evtl optokoppler...

NRG
18.07.2005, 15:48
ja genau ! jetzt sama beisamen! :wink:
Nur mein problem is dass ich es irgendwie nicht schaffe diese pwm steuerung zu schreiben. ich hab mir gedacht dass es evtl. so gehen könnte:


' Poti über ADW einlesen und über PWM ausgeben
' der Ausgang ist OC1A
' Poti an Channel5 (PortC5), LED an PortB1 (OC1A)
' laut Oszi ca. 3.333kHz

$crystal = 8000000
$regfile = "m8def.dat"

Config Portb = Output
Config Adc = Single , Prescaler = Auto , Reference = Off
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
Portb = 255
Start Adc

Dim W As Word , Channel As Byte
Compare1a = 100
Channel = 5

Do
for i=0 to 255 scale 10

W = i
Pwm1a = W
Loop
End



nur des funzt irgendwie nicht so recht...........

MFG

NRg :-$

michaelb
18.07.2005, 16:00
kannste mal deine Schaltung posten? Au mir ist aufgefallen dass dein Poti an Portd.5 dran ist und das Channel 4 ist da wir bei den Ports mit 0 anfangen beim zählen, stimmt doch, oder? Leuchtet deine LED überhaupt?
Gruß Michi

NRG
18.07.2005, 16:18
wiea moanst jetzt des??? was soll ich posten???????? Bzw. wie! :-b

egal: ich stell mal meine frage antwort..........
wie kann ich das programm ändern, dass die led hell wird, dann bissl wartet und dann dunkler wird?? des würde mir schon ziemlich helfen!

MFG

Nrg

michaelb
18.07.2005, 20:48
Hi NRG,
ich mein deine Schaltung posten! Du hast das Poti doch zwischen V+ und GND angeschlossen und das mittlere Bein an den Analogport des Atmega8 angeschlossen, oder? Und mit dem Channel hab mich geirrt sorry!
Ich glaub ich den Bug in deinem Programm gefunden!
Schreib mal statt:


Do
for i=0 to 255 scale 10

W = i
Pwm1a = W
Loop

diesen hier


for i=0 to 255 step 5
W = i
Pwm1a = W
next

und außerdem musst du doch den Schleifenzähler i deklarieren.
Gruß Michi

NRG
18.07.2005, 22:15
aso........ du meinst die schaltung mitm poti!!! Ja die war ja nur dazu da um mein problem zu schildern........... aba wennstes unbedingt willst.... *gg*

NRG
18.07.2005, 22:18
aber mein prob is ja dass ich des poti weglassen will und des ganze voll automatisch machen will!!! =P~
Also dass es bei knopfdruck automatisch langsam runterdimmt bis se aus is die led...........
Im anhang ist die schaltung die ich mir vorgestellt habe für diese CCFL Röhren. An 8 und 7 kommt dann die Röhre dran....
vielleicht weiß jemand wie ich das programm ohne das poti schreiben könnte?!?! :-b
weil so wie von michaelb geschrieben:


dim i as word
for i=1 to 255 step 5
w=i
pwm1a=w
next i

funktioniert es nicht da bleibt die led so wie se war............

MFG

Nrg

michaelb
19.07.2005, 14:38
Hi NRG,
bei deiner Schaltung seh ich gerade dass du deine LED Falsch rum angeschlossen hast! Der Kathodenstrich der LED muss an GND! Das kann der Grund sein dass deine LED überhaupt nicht leuchtet!
Gruß Michi

NRG
19.07.2005, 20:00
Aso! *gg* sry des hab ich im schaltplan nur so gemacht........... :-b

MFG

NRG ](*,)

michaelb
20.07.2005, 14:50
Hi,
wenn das der Fehler gewesen wäre wäre es ja zu leicht gewesen!
Gruß Michi

NRG
20.07.2005, 16:52
hehe! schon! aber ich hab glaube ich einen code gefunden, mit dem es funzen könnte:


Dim I As byte
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1

Do
For I = 0 To 255 step 1
Compare1a = I
Compare1b = I
Waitms 200
Next I
Loop



MFG

NRG