Arcade Stick mit nem Attiny 2313 leben einhauchen
Moderator: T.Hoffmann
Das geht. Man sollte es halt nicht übertreiben. Also 1/3 duty mit 60mA (wäre ja in etwa das gleiche wie 1/1 duty mit 20mA) würde ich mich nicht trauen, das geht dann doch schnell zu Lasten der Lebensdauer, aber bei 1/3 duty mit 30mA hätte ich keine Bedenken. Ist zwar immer noch nur grob die Hälfte des max. möglichen Lichts, aber immerhin. Wieso Taktrate erhöhen?Ui, ql, sowas geht?
Ich würde/werde wohl einen Timer-IRQ verwenden mit 1000Hz (also 1x pro Millisekunde). Also ist jede Farbe (wenn sie grade aktiv sein soll) eine Millisekunde an und 2 Millisekunden aus. Entspricht prinzipiell einer PWM mit 1/3 duty und rund 300Hz.
Für einen Test hab ich mal ein Standard 5mm LED mit über 700mA (allerdings sehr kurzem duty) betrieben. Hat nur ein bisschen gelitten
Die Zeichnung geht in die richtige Richtung.
Nur die R/G/B Leitungen an den Kollektor des entsprechenden Transistors und Emitter an Masse. Als Basis-Vorwiderstand würde ich 330Ohm verwenden. Bei einer minimalen 'High'-Spannung von 4.2V vom ATMega würden (abzüglich BE Spannung von 0.7V) also 3.5V an diesem Widerstand abfallen, das macht rund 10mA; bei einer Stromverstärkung von 100 (minimal Wert eines BC337 oder 338) könnten also theoretisch 1A über Kollektor Emitter fließen
Im Moment hätte ich folgende Beschaltung des ATMega8 vorgeschlagen:
PortB: Inputs von den 8 Tasten (mit aktiven Pull-Ups)
PortC0-PortC2 (3 Pins): Outputs für die Transistoren
PortC3 und PortC4: Output für die zwei LEDs im Stick
PortC5: Input vom NAND (ohne Pull-Up)
PortD: Outputs für die 8 RGB LEDs (direkt an deren gemeinsame Anode oder über PNP Treiber-Transistoren)
[EDIT]
Nachträglich editieren ist kein Problem: Rechts oben beim Post 'Optionen - Ändern'
Na, da sind die Begehrlichkeiten natürlich geweckt. Wenn man hier noch justieren könnte um die Farben zu mischen, wäre das natürlich toll! Wäre sowas mit solch einer Schaltung möglich?Ich würde/werde wohl einen Timer-IRQ verwenden mit 1000Hz (also 1x pro Millisekunde). Also ist jede Farbe (wenn sie grade aktiv sein soll) eine Millisekunde an und 2 Millisekunden aus. Entspricht prinzipiell einer PWM mit 1/3 duty und rund 300Hz.
Das ist ja der HammerFür einen Test hab ich mal ein Standard 5mm LED mit über 700mA (allerdings sehr kurzem duty) betrieben. Hat nur ein bisschen gelitten
Auch für RGB LEDs mit einer gemeinsamen Kathode? Die habe ich nemlich noch hier rumamliegen.Nur die R/G/B Leitungen an den Kollektor des entsprechenden Transistors und Emitter an Masse.
Und schon wieder etwas gelerntAls Basis-Vorwiderstand würde ich 330Ohm verwenden. Bei einer minimalen 'High'-Spannung von 4.2V vom ATMega würden (abzüglich BE Spannung von 0.7V) also 3.5V an diesem Widerstand abfallen, das macht rund 10mA; bei einer Stromverstärkung von 100 (minimal Wert eines BC337 oder 338) könnten also theoretisch 1A über Kollektor Emitter fließ
Vereinfacht auf jeden Fall nachher die Programmierung. Ich würde das Setup aber dahin gehend ändern wollen, dass eine RGB Led im Balltop verwendet wird. Das heisst man bräuchte nur eine zusätzlich Leitung. Die andere könnte als Input des Sticks dienen...Im Moment hätte ich folgende Beschaltung des ATMega8 vorgeschlagen:
PortB: Inputs von den 8 Tasten (mit aktiven Pull-Ups)
PortC0-PortC2 (3 Pins): Outputs für die Transistoren
PortC3 und PortC4: Output für die zwei LEDs im Stick
PortC5: Input vom NAND (ohne Pull-Up)
PortD: Outputs für die 8 RGB LEDs (direkt an deren gemeinsame Anode oder über PNP Treiber-Transistoren)
Grüße,
Was genau schwebt Dir da vor? Die IRQ-Frequenz auf 10kHz zu erhöhen ist noch recht problemlos möglich, da bleiben (bei 8MHz Takt) immerhin noch 800 Takte in jedem Interrupt um Code auszuführen. Damit kann man noch sinnvoll arbeiten. So könnte man pro Farbe 10 Helligkeitsstufen darstellen. Für noch mehr Helligkeitsstufen wäre eine noch höhere IRQ-Frequenz erforderlich, dann muss man aber schon sehr aufpassen, was man macht, weil sehr viele Befehle können dann nicht mehr in der IRQ Routine bearbeitet werden. Kommt halt sehr drauf an, was da genau passieren soll.Begehrlichkeiten: Wenn man hier noch justieren könnte um die Farben zu mischen, wäre das natürlich toll!
Für RGB LEDs mit einer gemeinsamen Kathode würde ich die ganze Schaltung 'umdrehen'. Also +5V über PNP Transistoren (z.B. BC327/BC328) an die R/G/B Leitungen und gemeinsame Kathode an je einen AVR Pin (oder falls 'Überbestromung' erwünscht gemeinsame Kathode über je einen NPN Transistor an Masse).
Wegen neuer Zeichnung... Gemeinsame Vorwiderstände gehen nicht, da ja die LEDs quasi parallel geschaltet sind und je nachdem wie viele an sind, unterschiedliche Vorwiderstände erforderlich wären. NPN-Transistoren für die RGB LEDs mit einer gemeinsamen Kathode verwenden (wie in Deiner Zeichnung) geht hier wohl auch, so große Ströme brauchen wir ja nicht.
Ich würde gerne die Farben der RGB mischen können. Dazu wären 10 Helligkeitsstufen schon richtig gut. Dimmeffekte dürften sich damit auch erzielen lassen. Mir schwebt adhoc zum Beispiel für den InitMode folgendes Szenario vor.
Die Leds leuchten langsam beim Einstecken des Sticks auf. Danach kommt ein kurzes Lauflicht oder ähnliches. Das Abblenden und Aufleuchten könnte man auch prima im Attract Mode verwenden.
Bisher haben wir noch einen Pin frei
Den könnte man für einen Programm-Modus verwenden. Sobald der auf Masse liegt ist der Programm Modus an.
Wenn Button1 gedrückt wird, dann sind alle Buttons default rot.
Weiterer Druck auf Button1, dann sind alle Buttons blau usw..
oder auch
Wenn Button2 gedrückt wird, dann ButtonLed1 = rot, ButtonLed2 = blau, ButtonLed3 = grün usw.
Das wäre schon echt der Hammer
)
Hier die neue Version.:
- Dedizierte Widerstände sind jetzt wieder drin
- NPN Transistor Array ULN2803 für gemeinsame Kathoden eingebaut (Stickled hat leider keinen mehr abbekommen)
- BC328 als PNP Transistor für RGB Leitungen
- Werte für Widerstände hinzugefügt.
Die Leds leuchten langsam beim Einstecken des Sticks auf. Danach kommt ein kurzes Lauflicht oder ähnliches. Das Abblenden und Aufleuchten könnte man auch prima im Attract Mode verwenden.
Bisher haben wir noch einen Pin frei
Wenn Button1 gedrückt wird, dann sind alle Buttons default rot.
Weiterer Druck auf Button1, dann sind alle Buttons blau usw..
oder auch
Wenn Button2 gedrückt wird, dann ButtonLed1 = rot, ButtonLed2 = blau, ButtonLed3 = grün usw.
Das wäre schon echt der Hammer
Hier die neue Version.:
- Dedizierte Widerstände sind jetzt wieder drin
- NPN Transistor Array ULN2803 für gemeinsame Kathoden eingebaut (Stickled hat leider keinen mehr abbekommen)
- BC328 als PNP Transistor für RGB Leitungen
- Werte für Widerstände hinzugefügt.
@bencao74
Schaltplan sieht gut aus!
Hier ist mal ein (völlig ungetesteter) Code für FuddelCHIEF (ohne verschiedene Helligkeitsstufen - mit 1ms IRQ).
Anschluss wie oben angegeben:
PortB: Inputs von den 8 Tasten (mit aktiven Pull-Ups)
PortC0-PortC2 (3 Pins): Outputs für die Transistoren
PortC3 und PortC4: Output für die zwei LEDs im Stick
PortC5: Input vom NAND (ohne Pull-Up)
PortD: Outputs für die 8 RGB LEDs (direkt an deren gemeinsame Anode)
Keine 'Überbestromung'. LED Vorwiderstände also bitte so, dass max. 20mA (besser nur 15) fließen. Von der langen Attract-Liste ist bisher nur Sequenz 1 'drin'. Wenn's funktioniert, kannst Du aber die anderen auch selbst erstellen.
Schaltplan sieht gut aus!
Hier ist mal ein (völlig ungetesteter) Code für FuddelCHIEF (ohne verschiedene Helligkeitsstufen - mit 1ms IRQ).
Anschluss wie oben angegeben:
PortB: Inputs von den 8 Tasten (mit aktiven Pull-Ups)
PortC0-PortC2 (3 Pins): Outputs für die Transistoren
PortC3 und PortC4: Output für die zwei LEDs im Stick
PortC5: Input vom NAND (ohne Pull-Up)
PortD: Outputs für die 8 RGB LEDs (direkt an deren gemeinsame Anode)
Keine 'Überbestromung'. LED Vorwiderstände also bitte so, dass max. 20mA (besser nur 15) fließen. Von der langen Attract-Liste ist bisher nur Sequenz 1 'drin'. Wenn's funktioniert, kannst Du aber die anderen auch selbst erstellen.
- Dateianhänge
-
- Mega8_Led_Attract_Test3.zip
- (1.65 KiB) 209-mal heruntergeladen
-
FuddelCHIEF
- User

- Beiträge: 28
- Registriert: Di, 10.02.09, 02:34
da bin ich mal nen Tag weg und hier steht schon alles???? Mann, Männers, DAS IST DER REINSTE IRRSINN!!!!!!!!!
VIELEN DANK AN EUCH BEIDE!!!!!!!!!
Ich kann mich nur wieder und wieder bedanken, für diese echt unglaubliche Leistung in solch kurzer Zeit!!
Mir fehlen die Worte!!!
Der Fuddel
-
FuddelCHIEF
- User

- Beiträge: 28
- Registriert: Di, 10.02.09, 02:34
Hey..
Ich weiß ja, ich bin anstrengend, aber leider hier auch wieder eine schnelle Frage zum Schaltplan... ist der dort angegebene UL2803 mit nem 74hc 20 vergleichbar?? desweiteren, der 74LS20N ( 7400N ) finde ich bei reichelt leider keinen, besteht hier auch die möglichkeit eine vergleichbare Shottky-Diode zu verwenden, die in die schaltung passt??
Danke...
Lieben Gruss
der Fuddel
Ich weiß ja, ich bin anstrengend, aber leider hier auch wieder eine schnelle Frage zum Schaltplan... ist der dort angegebene UL2803 mit nem 74hc 20 vergleichbar?? desweiteren, der 74LS20N ( 7400N ) finde ich bei reichelt leider keinen, besteht hier auch die möglichkeit eine vergleichbare Shottky-Diode zu verwenden, die in die schaltung passt??
Danke...
Lieben Gruss
der Fuddel
Neee,
- der ULN2803 ist ein das NPN Transistor für meine RGB LEDs mit einer gemeinsamen Kathode. Als NPN Transistoren kannst du auch die BC317/BC318 nehmen.
- Das 7400N ist das 4-Fach NAND Gatter
Die bisherigen Schaltbilder sind für RGB LEDs mit einer gemeinsamen Kathode. Das müsste entsprechend für RGB LEDs mit einer gemeinsamen Anode angepasst werden. Guck ich mal...
Grüße,
Jochen
- der ULN2803 ist ein das NPN Transistor für meine RGB LEDs mit einer gemeinsamen Kathode. Als NPN Transistoren kannst du auch die BC317/BC318 nehmen.
- Das 7400N ist das 4-Fach NAND Gatter
Die bisherigen Schaltbilder sind für RGB LEDs mit einer gemeinsamen Kathode. Das müsste entsprechend für RGB LEDs mit einer gemeinsamen Anode angepasst werden. Guck ich mal...
Grüße,
Jochen
Bei Reichelt:
ULN 2803: http://www.reichelt.de/?;ACTION=3;LA=44 ... ICLE=22085 (ist eigentlich praktisch; dann brauch es keine einzelnen NPN Transistoren. Und wenn Du sowieso was beim R bestellen willst/musst...)
7400: http://www.reichelt.de/?;ACTION=3;LA=2; ... ICLE=10584
74LS20: http://www.reichelt.de/?;ACTION=3;LA=3; ... ICLE=10654
(Der ist etwas einfacher beim Anschließen weil da schon das 4xNAND 'drin' ist, beim 7400 muss man 3 zweifach NAND zu einem 4xNAND zusammenschalten)
@bencao74
Machst Du einen Schaltplan für FuddelCHIEF?
ULN 2803: http://www.reichelt.de/?;ACTION=3;LA=44 ... ICLE=22085 (ist eigentlich praktisch; dann brauch es keine einzelnen NPN Transistoren. Und wenn Du sowieso was beim R bestellen willst/musst...)
7400: http://www.reichelt.de/?;ACTION=3;LA=2; ... ICLE=10584
74LS20: http://www.reichelt.de/?;ACTION=3;LA=3; ... ICLE=10654
(Der ist etwas einfacher beim Anschließen weil da schon das 4xNAND 'drin' ist, beim 7400 muss man 3 zweifach NAND zu einem 4xNAND zusammenschalten)
@bencao74
Machst Du einen Schaltplan für FuddelCHIEF?
Ok. Dann kümmere ich mich da nicht weiter drum 
Brauchst Du noch ein Beispiel Code für die Soft-PWM, oder schaffst Du das alleine?
Ich würde vmtl. 16 Helligkeitsstufen vorsehen - ist besser zum Speichern (ein Nibble=halbes Byte) und mit einem 100µS Timer-IRQ ergibt das immer noch eine PWM Frequenz von rund 200Hz (1,6mS pro Farbe; bei 3 Farben=>4.8mS Wiederholfrequenz). Das sollte eigentlich nicht flimmern.
Brauchst Du noch ein Beispiel Code für die Soft-PWM, oder schaffst Du das alleine?
Ich würde vmtl. 16 Helligkeitsstufen vorsehen - ist besser zum Speichern (ein Nibble=halbes Byte) und mit einem 100µS Timer-IRQ ergibt das immer noch eine PWM Frequenz von rund 200Hz (1,6mS pro Farbe; bei 3 Farben=>4.8mS Wiederholfrequenz). Das sollte eigentlich nicht flimmern.
Hi,
----- Source
ich mach mich erstmal mit den vorhandenen Code vertraut. Leider habe ich in BASCOM noch keinerlei Erfahrung, aber geht ja grob ums gleiche
Ich versteh das mit dem Muster noch nicht ganz. Der erste Wert ist &B00001000, will heissen PD3 ist active high, damit LED4 an. Farbe 0 ist rot, Farbe 1 ist grün und Farbe 3 ist blau.
hm, ganz steig ich da noch nicht durch. Kannst du mal erklären, was du da machst? Bis zum Attract ist alles klar...
Ja, mensch, ein kleines Beispiel für die Soft PWM wäre nicht schlecht...
----- Schaltung commong anode
Ich habe die NPN Transistoren für die gemeinsame Anode rausgelassen. Ist das ok? Ich konnte auf die Schnelle keinen NPN Transistor Array finden?
Ansonsten habe ich die Schaltung auf die Belegung im SRC für Fuddelchief angepasst. Sollte auch bei PC3, PC4 so passen, oder?
Grüße
----- Source
ich mach mich erstmal mit den vorhandenen Code vertraut. Leider habe ich in BASCOM noch keinerlei Erfahrung, aber geht ja grob ums gleiche
Ich versteh das mit dem Muster noch nicht ganz. Der erste Wert ist &B00001000, will heissen PD3 ist active high, damit LED4 an. Farbe 0 ist rot, Farbe 1 ist grün und Farbe 3 ist blau.
hm, ganz steig ich da noch nicht durch. Kannst du mal erklären, was du da machst? Bis zum Attract ist alles klar...
Ja, mensch, ein kleines Beispiel für die Soft PWM wäre nicht schlecht...
----- Schaltung commong anode
Ich habe die NPN Transistoren für die gemeinsame Anode rausgelassen. Ist das ok? Ich konnte auf die Schnelle keinen NPN Transistor Array finden?
Ansonsten habe ich die Schaltung auf die Belegung im SRC für Fuddelchief angepasst. Sollte auch bei PC3, PC4 so passen, oder?
Grüße
----- Source
Erklär ich Dir morgen...
Schaltplan:
Ich denke mal, dass auch 15mA pro LED reichen. Soll ja keine 'Spielerbeleuchtung' sein oder?
Aber das müsst Ihr wissen.
ABER:
Die R/G/B Leitungen an den Kollektor des entsprechenden BC338 und Emitter an Masse. Ansonsten sollte das IMHO passen.
Erklär ich Dir morgen...
Schaltplan:
Du meinst PNP... Es gibt solche Arrays, sind aber wesentlich teurer als die Standard NPN-Type (ULN 2803): http://www.reichelt.de/?;ACTION=3;LA=44 ... ICLE=22008;Ich habe die NPN Transistoren für die gemeinsame Anode rausgelassen. Ist das ok? Ich konnte auf die Schnelle keinen NPN Transistor Array finden?
Ich denke mal, dass auch 15mA pro LED reichen. Soll ja keine 'Spielerbeleuchtung' sein oder?
Aber das müsst Ihr wissen.
ABER:
Die R/G/B Leitungen an den Kollektor des entsprechenden BC338 und Emitter an Masse. Ansonsten sollte das IMHO passen.
Ok. Wegen Code...
Das Prinzip ist vom Led-Cube übernommen. Nur dass die 'Zeitschleife' nicht über Waitms x sondern über den Timer-Interrupt gesteuert wird. Welche LEDs an oder aus sind wird in dem Byte-Array 'Muster' festgelegt. Das hat den Vorteil, dass man nicht für jede Art von 'Sequenz' (Lauflicht, Blinken, Farben durchwechseln...) eine eigene Schleife schreiben muss, sondern nur eine und eine Logik die in dieser Schleife die LEDs an oder ausschaltet, je nachdem wo in der 'Gesamtsequenz' sich das Programm befindet (wird über die Variable Offset festgelegt) und welche Bits im Byte-Array gesetzt sind.
Im Attract Mode läuft folgendes:
Im ersten Schritt wird nur die aktuell anzuzeigende Farbe ausgewählt (gilt auch wenn Attract Mode=aus).
Der Stagecounter läuft von 0 bis 250; nach 250 Millisekunden wird der Offset im Byte-Array auf die nächsten 3 Bytes gesetzt.
Je nach aktueller Farbe wird das erste, zweite oder dritte Byte aus dem Byte-Array an PORTD ausgegeben und damit die entsprechenden LEDs aktiviert. Die bleiben dann eine Millisekunde lang an, dann wird die nächste Farbe (mit dem nächsten Byte aus dem Byte-Array) gesetzt, und die vorige Farbe ausgeschaltet.
Der 'FuddelCHIEF' Code hat etwa 1.2Kb. Damit also noch mehr als 6kB 'Platz' für die Muster. Ein Muster braucht 3 Bytes (1 Byte pro Farbe bei 8 LEDs), also sind mehr als 2000 Muster möglich. Jedes Muster wird 250 Millisekunden lang angezeigt. => Wenn man sich die Mühe macht, könnte man den Attract-Mode so gestalten, dass er sich erst nach etwa 8 Minuten(!) wiederholt.
@FuddelCHIEF
Der Code ist für eine Taktfrequenz von 8MHz! Also entsprechende Fusebits per Ponyprog setzen:
Erst Security Bits lesen!
Dann das Häkchen bei CKSEL2 entfernen und bei CKSEL0 setzen. Sonst nichts ändern!
Dann 'Write'.
Ich hab den Code noch ein wenig geändert, PORTD muss schließlich invers zu PINB gesetzt werden (wenn Taste auf Masse also 0 ist Taste gedrückt und entsprechendes Bit auf PORTD zu setzen...)
Das Prinzip ist vom Led-Cube übernommen. Nur dass die 'Zeitschleife' nicht über Waitms x sondern über den Timer-Interrupt gesteuert wird. Welche LEDs an oder aus sind wird in dem Byte-Array 'Muster' festgelegt. Das hat den Vorteil, dass man nicht für jede Art von 'Sequenz' (Lauflicht, Blinken, Farben durchwechseln...) eine eigene Schleife schreiben muss, sondern nur eine und eine Logik die in dieser Schleife die LEDs an oder ausschaltet, je nachdem wo in der 'Gesamtsequenz' sich das Programm befindet (wird über die Variable Offset festgelegt) und welche Bits im Byte-Array gesetzt sind.
Im Attract Mode läuft folgendes:
Im ersten Schritt wird nur die aktuell anzuzeigende Farbe ausgewählt (gilt auch wenn Attract Mode=aus).
Der Stagecounter läuft von 0 bis 250; nach 250 Millisekunden wird der Offset im Byte-Array auf die nächsten 3 Bytes gesetzt.
Je nach aktueller Farbe wird das erste, zweite oder dritte Byte aus dem Byte-Array an PORTD ausgegeben und damit die entsprechenden LEDs aktiviert. Die bleiben dann eine Millisekunde lang an, dann wird die nächste Farbe (mit dem nächsten Byte aus dem Byte-Array) gesetzt, und die vorige Farbe ausgeschaltet.
Der 'FuddelCHIEF' Code hat etwa 1.2Kb. Damit also noch mehr als 6kB 'Platz' für die Muster. Ein Muster braucht 3 Bytes (1 Byte pro Farbe bei 8 LEDs), also sind mehr als 2000 Muster möglich. Jedes Muster wird 250 Millisekunden lang angezeigt. => Wenn man sich die Mühe macht, könnte man den Attract-Mode so gestalten, dass er sich erst nach etwa 8 Minuten(!) wiederholt.
@FuddelCHIEF
Der Code ist für eine Taktfrequenz von 8MHz! Also entsprechende Fusebits per Ponyprog setzen:
Erst Security Bits lesen!
Dann das Häkchen bei CKSEL2 entfernen und bei CKSEL0 setzen. Sonst nichts ändern!
Dann 'Write'.
Ich hab den Code noch ein wenig geändert, PORTD muss schließlich invers zu PINB gesetzt werden (wenn Taste auf Masse also 0 ist Taste gedrückt und entsprechendes Bit auf PORTD zu setzen...)
- Dateianhänge
-
- Mega8_Led_Attract_Test4.zip
- (1.77 KiB) 200-mal heruntergeladen
Sooo, ich bin mal kurz mit dem Source angefangen.
Also zuerst wird immer alles auf rot gesetzt. Es wurde vorher in Byte A gespeichert, welche Buttons gedrückt worden sind. Diese werden zusätzlich mit Grün und Blau beleuchtet -> das ergibt dann weiss. Ist Weiss so einfach zu mischen?
Wenn ich zum Beispiel folgendes Muster haben möchte: Normal Rot, Buttondruck Blau
so zum beispiel, oder?
Code: Alles auswählen
If Farbe = 0 Then
Set Portc.0 'Rot An
Reset Portc.1 'Grün Aus
Reset Portc.2 'Blau Aus
Portd = &B11111111 'Alle LEDs an (nur Rot)
End If
If Farbe = 1 Then
Reset Portc.0 'Rot Aus
Set Portc.1 'Grün An
Reset Portc.2 'Blau Aus
Portd = A 'LEDs an für gedrückte Tasten
End If
If Farbe = 2 Then
Reset Portc.0 'Rot Aus
Reset Portc.1 'Grün Aus
Set Portc.2 'Blau An
Portd = A 'LEDs an für gedrückte Tasten
End IfWenn ich zum Beispiel folgendes Muster haben möchte: Normal Rot, Buttondruck Blau
Code: Alles auswählen
If Farbe = 0 Then
Set Portc.0 'Rot An
Reset Portc.1 'Grün Aus
Reset Portc.2 'Blau Aus
Portd = Not A
End If
If Farbe = 1 Then
Reset Portc.0 'Rot Aus
Set Portc.1 'Grün An
Reset Portc.2 'Blau Aus
' Portd = A 'LEDs auskommentiert
End If
If Farbe = 2 Then
Reset Portc.0 'Rot Aus
Reset Portc.1 'Grün Aus
Set Portc.2 'Blau An
Portd = A 'LEDs an für gedrückte Tasten
End IfNaja, ein 'schönes' Weiß wird es nicht...Ist Weiss so einfach zu mischen?
Es ist meist ein wenig 'violettstichig', weil rot und blau zu stark sind. Aber bei den FuddelCHIEF Bildern sah es ja nicht schlecht aus...
Code...Wenn ich zum Beispiel folgendes Muster haben möchte: Normal Rot, Buttondruck Blau
Ja, passt (fast). Allerdings solltest Du während der 'Grün' Phase die LEDs explizit ausschalten, sonst leuchten diejenigen, die bei rot schon an waren auch bei grün (die LEDs würden also gelb wirken).
Code: Alles auswählen
If Farbe = 1 Then
Reset Portc.0 'Rot Aus
Set Portc.1 'Grün An
Reset Portc.2 'Blau Aus
Portd = 0 'LEDs immer aus
End If
Code: Alles auswählen
If Farbe = 1 Then
Reset Portc.0 'Rot Aus
Reset Portc.1 'Grün Aus
Reset Portc.2 'Blau Aus
' Portd = A 'LEDs auskommentiert - spielt keine Rolle wenn Portc.1=0
End If
-
FuddelCHIEF
- User

- Beiträge: 28
- Registriert: Di, 10.02.09, 02:34
So .. ich wollte mich dann doch noch einmal schnell melden, damit ich nicht als verschollen gelte..
Habe im Moment leider nur Super wenig Zeit, da ich am 18. Heiraten werde, deswegen meine lange abwesenheit!
Ich bin sowas von Beeindruckt, was Ihr geleistet habt in den letzten Tagen, das mir jegliche Worte Fehlen!
Vielen Dank für die Hilfe, Mühe und Arbeit, die Ihr euch hier ge/macht habt, auch dank für das starke Interesse an diesem Projekt an Dich Borax!
Ich werde mich für die kommende Woche dann mal abmelden, um mich dann nächste Woche mit dem Test des Codes/Schaltung zu widmen ( FREU ) !!!
Vielen Dank nocheinmal!!!
Lieben Gruss
Der Fuddel
Habe im Moment leider nur Super wenig Zeit, da ich am 18. Heiraten werde, deswegen meine lange abwesenheit!
Ich bin sowas von Beeindruckt, was Ihr geleistet habt in den letzten Tagen, das mir jegliche Worte Fehlen!
Vielen Dank für die Hilfe, Mühe und Arbeit, die Ihr euch hier ge/macht habt, auch dank für das starke Interesse an diesem Projekt an Dich Borax!
Ich werde mich für die kommende Woche dann mal abmelden, um mich dann nächste Woche mit dem Test des Codes/Schaltung zu widmen ( FREU ) !!!
Vielen Dank nocheinmal!!!
Lieben Gruss
Der Fuddel
@Fuddel :
mach was draus 
@Borax
Zum Auflockern hier ein Bild meines aktuellen Arcade Sticks
Mann wird das ein Fest mit ordentlicher Beleuchtung 

http://bencao74.***link_aufgrund_spamverdacht_nicht_erlaubt***/2009/12/hi ... stmas.html
@Borax
Vielen Dank für deine Hilfe!! Jetzt muss ich meinerseits erstmal "Hausaufgaben" machen und einen Prototypen zusammenkabeln.Ich würde aber die erste Möglichkeit vorziehen, da bei solchen 'Konstrukten' möglicht der Code bei allen Farben 'gleich lang' sein sollte. Hier (Timer 1mS) macht es wohl keinen Unterschied, wenn Du aber PWM Farbmischung haben willst (Timer bei 0.1mS), sollte bei jeder Farbe derselbe code ausgeführt werden, damit alles immer schön gleich lang bleibt.
Zum Auflockern hier ein Bild meines aktuellen Arcade Sticks
http://bencao74.***link_aufgrund_spamverdacht_nicht_erlaubt***/2009/12/hi ... stmas.html
@Fuddel
Von mir auch die besten Wünsche!
@bencao74
Ich hab Dir hier mal ein Beispiel zusammengestellt um 16 Helligkeitsstufen abzubilden. Die Helligkeitsstufen beziehen sich allerdings grundsätzlich auf alle prinzipiell 'eingeschalteten' LEDs einer Farbe. LED1 rot 50% Helligkeit und LED2 rot 20% Helligkeit geht so also nicht. LED1+LED3 50% rot, LED2+LED4 10% grün und LED5-LED8 100% blau geht aber problemlos. Mischfarben (R mit x% + G mit y% + B mit z%) gehen aber immer nur für alle 'eingeschalteten' LEDs gleichzeitig. Die Helligkeitsstufen sind als Nibbles (=4Bit=halbes Byte) in zwei weiteren Bytes des Byte-Arrays 'Muster' (zusammen mit den RGB ein/aus Werten für den Stick) abgelegt. Das Prinzip ist eigentlich das gleiche wie schon im 'Fuddelcode' beschrieben, nur dass eben noch ein Helligkeitscounter dazukommt, der in Abhängigkeit von der gerade aktiven Helligkeitsstufe die entsprechende Farbe länger oder kürzer einschaltet. Der 'Platz' reicht so immer noch für ca. 2 Minuten 'Attract-Programm' mit Dimmen/Überblenden/Lauflicht...
Falls noch was unklar ist, einfach fragen...
Von mir auch die besten Wünsche!
@bencao74
Ich hab Dir hier mal ein Beispiel zusammengestellt um 16 Helligkeitsstufen abzubilden. Die Helligkeitsstufen beziehen sich allerdings grundsätzlich auf alle prinzipiell 'eingeschalteten' LEDs einer Farbe. LED1 rot 50% Helligkeit und LED2 rot 20% Helligkeit geht so also nicht. LED1+LED3 50% rot, LED2+LED4 10% grün und LED5-LED8 100% blau geht aber problemlos. Mischfarben (R mit x% + G mit y% + B mit z%) gehen aber immer nur für alle 'eingeschalteten' LEDs gleichzeitig. Die Helligkeitsstufen sind als Nibbles (=4Bit=halbes Byte) in zwei weiteren Bytes des Byte-Arrays 'Muster' (zusammen mit den RGB ein/aus Werten für den Stick) abgelegt. Das Prinzip ist eigentlich das gleiche wie schon im 'Fuddelcode' beschrieben, nur dass eben noch ein Helligkeitscounter dazukommt, der in Abhängigkeit von der gerade aktiven Helligkeitsstufe die entsprechende Farbe länger oder kürzer einschaltet. Der 'Platz' reicht so immer noch für ca. 2 Minuten 'Attract-Programm' mit Dimmen/Überblenden/Lauflicht...
Falls noch was unklar ist, einfach fragen...
- Dateianhänge
-
- Mega8_Led_Attract_Test_PWM_1.zip
- (2.56 KiB) 209-mal heruntergeladen

