Forum: Mikrocontroller und Digitale Elektronik RGB Tastenfeld in 5x4 Sonderform


von Chris S. (nos05)


Angehängte Dateien:

Lesenswert?

Hallo

Ich bin absoluter Neuling in diesem Bereich und mir fällt es sehr 
schwer, den Anfang zu finden.
Ich benötige eigentlich nur eine Buttonbox, dessen Form jedoch 
vorgegeben ist. Nun möchte ich dort im Grunde exakt wie im Anhang 
ersichtlich, Taster mit RGB unterbringen. Jede Taste muss farblich 
anpassbar sein. Die Tasten sind am Ende nichts anderes als Macrotasten 
für den PC. Ansteuerung denke ich mal über Arduino.
Eine einfache Matrixschaltung habe ich hinbekommen. Am löten scheiterte 
es dann aufgrund Unkenntnis.

Tja, ich müsste hier programmieren, eine Schaltung aufbauen, wohl ein 
PCB erstellen, löten und das ganze noch verstehen lernen. Wie lange 
brauche ich um diese Kenntnisse realistisch zu erlangen? Gibt es 
eventuell die Möglichkeit, sowas auch in Auftrag zu geben oder teile 
davon abzutreten?
Irgendwie baut alles aufeinander auf. Das überfordert/erschlägt mich.

Es soll nicht mein Lebensprojekt werden und ich habe große Bedenken, 
hier das technische Verständnis so aufbauen zu können, das es am Ende 
funktioniert wie es soll.

Meine andere Idee war, in das fertige Gehäuse eine weitere Ebene zu 
drucken, dort wie bei Buttonboxes üblich, von hinten die Taster 
miteinander zu verlöten, löten lassen. Auch hier fehlen dann jedoch die 
RGBs und die Schaltung und Programmierung.

Vielleicht hat hier der ein oder andere noch Vorschläge für mich?
Vielleicht aber auch eine Reihenfolge in der ich das Projekt voran 
treiben sollte?

von Achim M. (minifloat)


Lesenswert?

Chris S. schrieb:
> eine Buttonbox, dessen Form jedoch vorgegeben ist

Wie sieht'n das aus?

Chris S. schrieb:
> Vielleicht aber auch eine Reihenfolge in der ich das Projekt voran
> treiben sollte?

Löten lernen. Ich habe die Vermutung, dass du 'kann nicht löten' als 
Vorwand und Blockadepunkt siehst.

Als erstes schaust du, dass du mit dem Arduino eine Matrixtastatur 
ausgelesen bekommst. Das geht auch auf dem Steckbrett zum Ausprobieren.

Als zweites schaust du, dass du die RGB-LEDs angesteuert bekommst. Das 
geht auch auf Steckbrett. Hier fehlt noch die Info, wie die Farbe einer 
Taste gesteuert werden soll. Von extern einstellbar? Womit? Software am 
Rechner? Dann über welche Schnittstelle?

Parallel zu diesen Schritten schnapp dir alte Elektronik um das Entlöten 
zu üben und mach andere kleine Lötübungen. LED-Wechselblinker mit zwei 
Transistoren (Multivibrator) scheint mir eine gute 
Lochraster-Übungsaufgabe zu sein.

Dann muss dein Tasten-Matrixauslesen und die LED-Ansteuerung auf eine 
Platine und diese Platine dann ins Gehäuse integriert werden. Frage, 
Lochraster im Gehäuse oder eigene Platine? Kannst du Platinen entwerfen 
und irgendwo günstig fertigen oder reicht dir Lochraster aus?

Chris S. schrieb:
> Auch hier fehlen dann jedoch die RGBs und die Schaltung und
> Programmierung.

Es fehlt also an allem? Vielleicht wird es doch eine Kauflösung?

Chris S. schrieb:
> Tja, ich müsste hier programmieren, eine Schaltung aufbauen, wohl ein
> PCB erstellen, löten und das ganze noch verstehen lernen. Wie lange
> brauche ich um diese Kenntnisse realistisch zu erlangen?

Verstehst du etwas von Elektronik im Allgemeinen? Kannst du Coden? 
Realistisch würde ich sagen von Null auf vielleicht halbes Jahr für das 
Hardwareverständnis und Embedded Programmierung. Kommt drauf an wie 
schnell du lernst, wieviel Zeit du hast, ob du noch andere Hobbies oder 
Profession hast, die nötige Fähigkeiten bereits beinhalten...

Chris S. schrieb:
> Gibt es eventuell die Möglichkeit, sowas auch in Auftrag zu geben oder
> teile davon abzutreten?

Das willst du dann auch bezahlen? Da ist die Kauflösung eindeutig 
billiger.

mfg mf

: Bearbeitet durch User
von Chris S. (nos05)


Lesenswert?

Achim M. schrieb:
> Wie sieht'n das aus?
Ich weiß nicht ob ich das einfach so posten darf. Aber eigentlich ist es 
nur ein Nachbau von einer original Kontrollerbox aus dem Rennsport für 
meine privaten Zwecke um Makros am PC in einem Simulator zu erstellen.

Optisch könnte man aber meinen, sie ähnelt dem Bild was ich gepostet 
habe. Nur das Raster ist etwas weiter auseinander und beträgt 4x5.

Beim Entwurf des Gehäuses habe ich schon große Hilfe bekommen was mich 
jetzt hier hin getrieben hat.

Fusion360 und der 3D Druck nehmen eigentlich schon genug Zeit in 
Anspruch um im Hobby Fortschritte machen zu können. Wie eben passende 
Tastenaussparungen oder Rahmenteile zu entwerfen. Die Box ist nur ein 
kleiner Teil davon, aber der komplizierteste.

> Löten lernen. Ich habe die Vermutung, dass du 'kann nicht löten' als
> Vorwand und Blockadepunkt siehst.

Mir hat das Spaß gemacht. Spätestens bei Knotenpunkten wo viele Kabel 
zueinander finden, hört der Spaß wieder auf.

> Als erstes schaust du, dass du mit dem Arduino eine Matrixtastatur
> ausgelesen bekommst. Das geht auch auf dem Steckbrett zum Ausprobieren.

Ich hatte für meine erste und bisher einzige Steuerung Simhub als 
Programm verwendet. Plus und Minus der integrierten Tasterbeleuchtung 
war das kleinste Problem.
Die Kabel aber so löten das es am Ende auch alles da rein passt… 
schrecklich.

> Frage, Lochraster im Gehäuse oder eigene Platine? Kannst du Platinen
> entwerfen und irgendwo günstig fertigen oder reicht dir Lochraster aus?

Nach unten habe ich ausreichend Platz. Das Teil hat eigentlich keinen 
festgeschrieben Gehäuseboden. Einbautiefe daher individuell. Lochraster 
kenne ich erst ein paar Tage. Wäre eine gute Idee und möglich.
Platinen kann ich eben nicht entwerfen. Das wäre ein Problem.

> Es fehlt also an allem? Vielleicht wird es doch eine Kauflösung?

Eigentlich an allem von Schaltung bis Anschluss der Elektronik. Die Idee 
ist im
Kopf, die Umsetzung schwieriger als gedacht. Eine fertige Lösung kommt 
nicht in Frage. Die liegt preislich bei 1600€ und wäre völlig überzogen, 
da es dem tatsächlichen Anwendungsbereich nicht gerecht wird.

Ich habe Macropads, Custom Keyboard PCB, RGB Taster und vieles vieles 
mehr gesucht. Gibt nicht einmal fertige RGB Taster abgesehen von denen 
hier:

https://www.rasppishop.de/RGB-LED-Button-Bricklet

Man sucht halt nach fertigen Lösungen wenn man selbst so eingeschränkt 
ist.
Das würde die Kosten in die Höhe treiben. Allein die Tasten 250€ ohne 
Rest. Und ob das dann einfacher funktioniert?
Nüchtern betrachtet vielleicht die beste und einfachste Lösung, wenn man 
das gescheit eingestellt bekommt und sonst so gar keine Ahnung hat?


Die Taster soll man drücken und sie sollen beim betätigen die Farbe nach 
Konfiguration ändern.
Größe vom Tastenfeld 13x11,5cm

Also zB: weiß auf grün auf weiß und als Makrotaste mit PC verknüpft 
sein. Mehr ist das in der Theorie eigentlich nicht. Ha ha!


[Mod: mit > am Zeilenanfang wird zitiert. Oder eben einfach einen Text 
markieren und auf den Link "Markierten Text zitieren" drücken]

: Bearbeitet durch Moderator
von Achim M. (minifloat)


Lesenswert?

Chris S. schrieb:
> nach Konfiguration

Da wäre auch die Frage, wie das konfigurierbar sein soll.

Kleines Tool wo man das einstellen kann?

mfg mf

von Chris S. (nos05)


Lesenswert?

Im Spielmenü einfach unter Tastenbelegung. Das bekomme sogar ich hin :)

von Achim M. (minifloat)


Lesenswert?

Das heißt, der Tastatur-Anteil ließe sich durch eine billige 
ausgeschlachtete USB-Tastatur ersetzen.

Und wie werden die Farben der Tasten konfiguriert?

mfg mf

von Chris S. (nos05)


Lesenswert?

Das ist eine gute Frage!
Sollte mit Arduino aber programmierbar sein. Weiß noch nicht wie. Wenn 
es das einzige Problem bleibt, kann ich damit leben mich da rein zu 
hängen um es zu lernen.

Kann man nicht einfach eine RGB Tastatur nehmen und einen 4x5 PCB 
Bereich sauber heraus trennen und für mein Vorhaben nutzen?
Hier hat es auch einer geschafft sich selbst was zu bauen.
https://yager.io/keyboard/keyboard.html

von Peter D. (peda)


Lesenswert?

Das sind ne Menge verschiedener Baustellen, für den Anfänger nicht 
geeignet.
Man muß eine Schaltung entwickeln, ein Layout erstellen, alles löten, 
die Firmware für den AVR erstellen, ein Protokoll zum PC überlegen, das 
PC-Programm entsprechend kommunizieren lassen und das Modul auslesen und 
ansteuern. Dann noch die Konstruktion. In der Firma wären dafür 
mindestens 6 verschiedene Mitarbeiter nötig.

von gierig (Gast)


Lesenswert?

Chris S. schrieb:
> Im Spielmenü einfach unter Tastenbelegung. Das bekomme sogar ich hin :)

Tata...

du kennst also das Spiel, die Schnittstelle zu Controller Box und
das Protokoll das von dem Spiel benutzt wird um die Box anzusteuern ?
Weil wenn es eh  über das Spiel gesteuert must du ja genauso
reagieren können auf die soganale wie ein Orginal Zubehör teil.


Butter bei die Fische. Lass mal ein paar Namen springen
und um was genau es sich handelt.
Und warum kaufst du nicht einfach die „Original“ box wenn es sie
denn gibt ?

von Chris S. (nos05)


Lesenswert?

Peter D. schrieb:
> Das sind ne Menge verschiedener Baustellen, für den Anfänger nicht
> geeignet.

Das habe ich befürchtet. Ich hoffe nach wie vor, das einer vielleicht 
teilweise Fertiglösungen oder Bausteine kennt, mit denen ich das 
umsetzen kann.
Es gibt nicht einmal fertig zu kaufende RGB Taster außer das was ich 
hier gepostet habe.
Kann das wahr sein oder gucke ich nicht richtig?

gierig schrieb:
> Chris S. schrieb:
>> Im Spielmenü einfach unter Tastenbelegung. Das bekomme sogar ich hin :)
>
> Tata...
>
> du kennst also das Spiel, die Schnittstelle zu Controller Box und
> das Protokoll das von dem Spiel benutzt wird um die Box anzusteuern ?
> Weil wenn es eh  über das Spiel gesteuert must du ja genauso
> reagieren können auf die soganale wie ein Orginal Zubehör teil.
>
>
> Butter bei die Fische. Lass mal ein paar Namen springen
> und um was genau es sich handelt.
> Und warum kaufst du nicht einfach die „Original“ box wenn es sie
> denn gibt ?

Die Signale wie im Original eher nicht. Es soll sich nur optisch so 
verhalten.
Es handelt sich konkret um dieses Teil:
https://www.cosworth.com/products/rsp-rubber-switch-panel/?cat=switches
Die Box habe ich dank einem lieben Kollegen praktisch schon fertig hier 
liegen. Ich habe sie ausgedruckt. Sieht 1:1 gleich aus. Hat exakt die 
selben Dimensionen. Angepasst wird nur noch die Aufnahme für die Tasten, 
da diese noch nicht fest stehen. Es müssen ansteuerbare RGB Tasten sein.
Die Knöpfe, bzw. Die Taster-Kappen werde ich mit TPU in passender Größe 
drucken.
Es fehlt entweder eine Platine wie die von einer Tastatur im selben 
Raster oder Tasten die auf Lochplatte mit RGB irgendwie verkabelt werden 
können.
Für beides fehlt mir das technische Verständnis - das richtige dafür zu 
finden.
Das Programmieren bekomme ich bestimmt hin, wenn die Lösung sauber ist.
Warum ich die Box nicht fertig kaufe steht weiter oben. 1600€ für das 
Teil sind mir nur um es an einem PC als Tastenmakro zu nutzen zu teuer. 
Mal davon abgesehen. Das Original gehört in einen Rennwagen.

von MaWin (Gast)


Lesenswert?

Chris S. schrieb:
> Das Programmieren bekomme ich bestimmt hin,

Wann sollen denn die Tasten ihre Farben bekommen ?

Nur ein Mal beim Einschalten, oder je nach dem was bisher gedrückt 
wurde, oder je nach Zustand des Programms auf dem PC ?

Danach richtet sich, was als Controller taugt, und wir viel Software man 
schreiben muss.

Vergiss es, Tastenmechanik selbst bauen zu wollen, das wird hakelig und 
funktioniert nicht betrieblicher bzw. das Tastengefühl wird doof. Nimm 
fertige Tasten, z.B. von dem rPi Keyboard. Dann muss dein neues Gehäuse 
nur die Anordnung (Platzierung) bestimmen. Die alte Platine wird 
zersägt.

https://www.ebay.de/itm/363491903553

von Chris S. (nos05)


Angehängte Dateien:

Lesenswert?

MaWin schrieb:
> Chris S. schrieb:
>> Das Programmieren bekomme ich bestimmt hin,
>
> Wann sollen denn die Tasten ihre Farben bekommen ?
>
> Nur ein Mal beim Einschalten, oder je nach dem was bisher gedrückt
> wurde, oder je nach Zustand des Programms auf dem PC ?
>
> Danach richtet sich, was als Controller taugt, und wir viel Software man
> schreiben muss.
>
> Vergiss es, Tastenmechanik selbst bauen zu wollen, das wird hakelig und
> funktioniert nicht betrieblicher bzw. das Tastengefühl wird doof. Nimm
> fertige Tasten, z.B. von dem rPi Keyboard. Dann muss dein neues Gehäuse
> nur die Anordnung (Platzierung) bestimmen. Die alte Platine wird
> zersägt.
>
> https://www.ebay.de/itm/363491903553

Ich stelle mir das so vor, das sie beim einschalten den Zustand 
behalten, den ich vorher eingegeben habe.
Also das sie beim Neustart nicht wieder alle weiß leuchten.
Da es ein Simulator ist, soll es dem Original entsprechen und da sind 
die Farben vorgegeben. Siehe Anhang. Streng genommen kann man die 
Tastenfarbe im Original einstellen wie man möchte.
Mir persönlich würde es reichen, das ich definieren kann, wie sie 
dauerhaft leuchten. Nach Möglichkeit je weniger Aufriss, desto besser.

Du hast dort ein Keypad verlinkt. Das Raster passt von den Tasten her 
nicht zu der Box. Es wird unabdingbar sein, hier einzelne Tasten in eine 
eigene Halterung zu setzen. Der Druckaufwand bzw. das mit dem Gehäuse 
und der Haptik ist wirklich das kleinste Problem.
Ich brauche Taster und RGB die man zusammenschalten kann ohne das es 
blöd aussieht.

von Ich (Gast)


Lesenswert?

Mal ganz blöd, falls der Weg nicht das Ziel ist: Einfach eine frei 
programmierbare Tastatur kaufen?
https://www.elgato.com/en/stream-deck wäre jetzt mein erster Gedanke ... 
kann man auch gut zweckentfremden, geht auch unter Linux (falls das von 
Interesse ist), hat ein Display pro Taste :-D

https://www.idealo.de/preisvergleich/OffersOfProduct/5802627_-stream-deck-elgato.html 
klar kostet Geld, aber eigenes PCB in mehreren Revisionen halt auch ;-)

von Chris S. (nos05)


Angehängte Dateien:

Lesenswert?

Ich schrieb:
> Mal ganz blöd, falls der Weg nicht das Ziel ist: Einfach eine frei
> programmierbare Tastatur kaufen?
> https://www.elgato.com/en/stream-deck wäre jetzt mein erster Gedanke ...
> kann man auch gut zweckentfremden, geht auch unter Linux (falls das von
> Interesse ist), hat ein Display pro Taste :-D
>
> 
https://www.idealo.de/preisvergleich/OffersOfProduct/5802627_-stream-deck-elgato.html
> klar kostet Geld, aber eigenes PCB in mehreren Revisionen halt auch ;-)

Danke für den Tipp! Habe ich aber schon in einer anderen Box verbaut ;)
Darf nie fehlen.

Der Unterschied zwischen den beiden ist einfach erklärt. Das eine kann 
gestaltet werden wie man mag, das andere hat eine vorgegebene Größe weil 
ich es dem Original nachempfinden möchte. Das ist ein Wunsch von mir. Es 
fehlt als einzige Komponente. Der Schlüsselstein sozusagen :)
Ich kann mir auch vorstellen das jemanden machen zu lassen. Ich 
befürchte nur, das es dann so kostspielig wird, das es keinen Sinn mehr 
macht.
Was soll ich jetzt tun?
PCB Board anfertigen lassen ohne zu wissen wie man das anstellt oder 
einfach Taster nehmen und irgendwie RGBs dazwischen stecken?
Mein wissen ist halt so begrenzt. Ich hatte gehofft hier noch Anregungen 
zu bekommen die mich vielleicht von meiner starren Linie weg treiben.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Chris S. schrieb:
> Du hast dort ein Keypad verlinkt. Das Raster passt von den Tasten her
> nicht zu der Box. Es wird unabdingbar sein, hier einzelne Tasten in eine
> eigene Halterung zu setzen

Ja  nun, das überfordert dich ?

Du musst mit der gezeigten Tastatur:

nichts mehr programmieren, alles fertig, musst nur noch auf Farben und 
Shortcuts konfiguriert werden

keine Platine entwerfen, nur noch die Platine einbauen und die Tasten an 
Drähten an deine bevorzugte Anordnung bringen.

von Chris S. (nos05)


Lesenswert?

MaWin schrieb:
> Chris S. schrieb:
>> Du hast dort ein Keypad verlinkt. Das Raster passt von den Tasten her
>> nicht zu der Box. Es wird unabdingbar sein, hier einzelne Tasten in eine
>> eigene Halterung zu setzen
>
> Ja  nun, das überfordert dich ?
>
> Du musst mit der gezeigten Tastatur:
>
> nichts mehr programmieren, alles fertig, musst nur noch auf Farben und
> Shortcuts konfiguriert werden
>
> keine Platine entwerfen, nur noch die Platine einbauen und die Tasten an
> Drähten an deine bevorzugte Anordnung bringen.

Ach jetzt verstehe ich das vielleicht erst? Du meinst das Teil 
auseinander nehmen, die Tasten gegebenenfalls entölten und auf das 
Raster anpassen, einbauen, fertig?

Edit:

Die RGBs sind doch auf dem PCB. Wie soll ich das denn anpassen oder 
ändern?

Die Breite könnte tatsächlich passen. Die Tiefe aber nicht.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Chris S. schrieb:
> Wie soll ich das denn anpassen

Drähte statt Leiterbahnen.

von Chris S. (nos05)


Lesenswert?

MaWin schrieb:
> Chris S. schrieb:
>> Wie soll ich das denn anpassen
>
> Drähte statt Leiterbahnen.

Ok und was ist mit den RGB? Die sitzen auf der Leiterplatte oder in den 
Tasten?
Kann ich das ohne weiteres alles ablöten?
Vermutlich wäre das für mich eher zu bewerkstelligen als etwas von Grund 
auf neu zu planen, bevor das was ich mache, ein Oldtimer wird :D
Vom Prinzip verstehe ich was du meinst. Ob sich das umsetzen lässt ist 
jetzt die andere Geschichte.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Chris S. schrieb:
> Vermutlich wäre das für mich eher zu bewerkstelligen als etwas von Grund
> auf neu zu planen,

Eben.

von Schlaumaier (Gast)


Lesenswert?

Das einzige was ich an deinen Projekt als schwer betrachte und  wo ich 
aktuell Schwierigkeiten sehe sind die Beleuchteten Taster. Und damit 
meine ich den nackten Taster.

Der Rest in Kinderkram. Den lernt man in jeden Arduino-Lernbaukasten.

Hier findest du den Schaltplan für die Matrix.  Das sind nur ein paar 
lausige Drähte die du an die Pins löten musst. Bei einer 5x4 Matrix 
genau 20 ;)

https://arduino-projekte.webnode.at/meine-libraries/16er-tastatur/

Die ansteuerung der LED's . Hm da würde ich WS2812B nehmen. Ansteuerung 
ist auch mit der richtigen Libs sehr einfach. Und du hast Farben ohne 
Ende.

Das einzige Problem ist wie schon gesagt die Taster selbst. Also die 
Frage : Wie bekomme ich die LED unter die Taste so das sie schön DURCH 
leuchtet.

Und da wüsste ich aktuell keine Lösung die Kostengünstig ist.

von Chris S. (nos05)


Angehängte Dateien:

Lesenswert?

Schlaumaier schrieb:
> Das einzige was ich an deinen Projekt als schwer betrachte und  wo ich
> aktuell Schwierigkeiten sehe sind die Beleuchteten Taster. Und damit
> meine ich den nackten Taster.
>
> Der Rest in Kinderkram. Den lernt man in jeden Arduino-Lernbaukasten.
>
> Hier findest du den Schaltplan für die Matrix.  Das sind nur ein paar
> lausige Drähte die du an die Pins löten musst. Bei einer 5x4 Matrix
> genau 20 ;)
>
> https://arduino-projekte.webnode.at/meine-libraries/16er-tastatur/
>
> Die ansteuerung der LED's . Hm da würde ich WS2812B nehmen. Ansteuerung
> ist auch mit der richtigen Libs sehr einfach. Und du hast Farben ohne
> Ende.
>
> Das einzige Problem ist wie schon gesagt die Taster selbst. Also die
> Frage : Wie bekomme ich die LED unter die Taste so das sie schön *DURCH*
> leuchtet.
>
> Und da wüsste ich aktuell keine Lösung die Kostengünstig ist.

Ja genau. Ich brauche die Tasten und die rgb bevor ich überhaupt weiß 
welche Schaltung ich vornehmen kann.
Es gibt einfach keine rgb Taster auf dem Markt. Rgb Taster im Sinne von 
Taster mit integrierter RGB wo man beides zusammen an eine Platine löten 
kann. Gibt es nicht.
Vom Hersteller der mir vorschwebenden Box sieht die Taste so aus. Siehe 
Anhang.
Was ist das?

Edit:

Würde sowas nicht reichen?
https://m.german.alibaba.com/p-detail/Full-Color-RGB-LED-Illuminated-Momentary-60686876625.html?language=german&redirect=1

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

Chris S. schrieb:
> Es gibt einfach keine rgb Taster auf dem Markt. Rgb Taster im Sinne von
> Taster mit integrierter RGB wo man beides zusammen an eine Platine löten
> kann. Gibt es nicht.

Doch gibt es.

Bloß dann bekommst du ein Schock.  Erst setzen, tief Luft holen dann den 
Link anklicken. ;)

https://www.bastelgarage.ch/22mm-drucktaster-mit-rgb-beleuchtung-5v-edelstahl

Jedenfalls das einzige was ich auf die Schnelle gefunden habe. ;)

Die einzige Alternative wäre die Taste mit einen 3D Drucker selbst zu 
erstellen. Ist in meinen Augen nicht sehr schwer.

Man braucht eine Runde Kappe mit Klaren Deckel. Darunter auf ein 2 Teil 
eine WS2812 und die verdrahten nach Unten. Unten an den Teil ein Pin der 
ein Mikroschalter auslöst auf der Platine.  Ist ne ziemliche Fummelei 
aber machbar.

von Chris S. (nos05)


Lesenswert?

Schlaumaier schrieb:
> Chris S. schrieb:
>> Es gibt einfach keine rgb Taster auf dem Markt. Rgb Taster im Sinne von
>> Taster mit integrierter RGB wo man beides zusammen an eine Platine löten
>> kann. Gibt es nicht.
>
> Doch gibt es.
>
> Bloß dann bekommst du ein Schock.  Erst setzen, tief Luft holen dann den
> Link anklicken. ;)
>
> https://www.bastelgarage.ch/22mm-drucktaster-mit-rgb-beleuchtung-5v-edelstahl
>
> Jedenfalls das einzige was ich auf die Schnelle gefunden habe. ;)
>
> Die einzige Alternative wäre die Taste mit einen 3D Drucker selbst zu
> erstellen. Ist in meinen Augen nicht sehr schwer.
>
> Man braucht eine Runde Kappe mit Klaren Deckel. Darunter auf ein 2 Teil
> eine WS2812 und die verdrahten nach Unten. Unten an den Teil ein Pin der
> ein Mikroschalter auslöst auf der Platine.  Ist ne ziemliche Fummelei
> aber machbar.

Ja hast du recht. Der ist allerdings rund, mit 22mm recht groß und er 
hat einen Druckpunkt der voraussetzt, das man ihn ins Gehäuse drückt. 
Das lässt sich ohne weiteres auch nicht in so ein Gehäuse integrieren.
Die Tasten selbst zu drucken ist mir nicht in den Sinn gekommen. Ich 
werde mal darüber nachdenken heute Nacht.

Was ist mit den Chinesen? Der Link von gerade sieht erst mal ganz 
vielversprechend aus.
Ich klammere mich nur an jeden Strohhalm
;)

Bis hier hin wirklich vielen vielen Dank für all diese konstruktiven und 
vor allem kreativen Vorschläge!!
Euch noch einen schönen Abend.

von Schlaumaier (Gast)


Lesenswert?

Chris S. schrieb:
> Was ist mit den Chinesen? Der Link von gerade sieht erst mal ganz
> vielversprechend aus.
> Ich klammere mich nur an jeden Strohhalm

Finde ich auch, das das gut Aussieht. Aber 250 Euro würden mir auch quer 
vor der Nase liegen.  (2.40 $ * 100 Stk. Mindestbestellmenge) + VK + 
ZOLL + MWST = ca. 300-320 Euro.  AUA.

von Chris S. (nos05)


Lesenswert?

Na vielleicht könnte man Testmuster ordern. So 20-30 Stück? :D

von De M. (de_m)


Lesenswert?

Ein Streamdeck ist keine Option?
Zwar keine RGB Tasten aber LCD Tasten. (kann man RGB mit machen) .. Ist 
frei Programmierbar und universell Einsetzbar... In div Versionen 
erhältlich und gibt's um den dicken Daumen für 130€-230€...

von Spess53 (Gast)


Lesenswert?

Hi

Da gibt es auch ganz schnuckelige Taster mit LC-Displays 65x32 bzw 36x24 
Pixel von NKK Switches, z.B. bei Mouser.

MfG Spess

von Chris S. (nos05)


Lesenswert?

De M. schrieb:
> Ein Streamdeck ist keine Option?
> Zwar keine RGB Tasten aber LCD Tasten. (kann man RGB mit machen) .. Ist
> frei Programmierbar und universell Einsetzbar... In div Versionen
> erhältlich und gibt's um den dicken Daumen für 130€-230€...

Weiter oben hatte ich geschrieben das ich dieses bereits besitze. Für 
die Box jedoch ungeeignet.

LC Display Tasten kenne ich so auch nicht. Interessant. Auch diese sind 
leider ungeeignet.

Vielen Dank.

Warte noch auf Rückmeldung aus China.

von Chris S. (nos05)



Lesenswert?

Habe was gefunden. Keine Ahnung wieso ich die übersehen habe. Es wurden 
mir immer nur einzelne Farben angezeigt.
Aber vielleicht könnte es mit denen funktionieren. Keine zusätzliche 
Bastelei und ich kann die Menge bestellen die ich benötige. Keine großen 
Stückzahlen. Paar mehr falls was schief geht schaden trotzdem nicht.

von Ralf M. M. (ramime)


Lesenswert?

Vielleicht hilft dir ja sowas weiter:
https://learn.adafruit.com/adafruit-neokey-5x6-ortho-snap-apart
Da sind die RGB LEDs schon auf der Platine und Du kannst beliebige MX 
Taster benutzen.

Das kann "am Stück" benutzt werden, aber auch "zerlegt" und mit wenigen 
Drähten verbunden. Es gibt auch Guides dazu und hat Arduino und 
CircuitPython Libs und z.B. mit einem PiPico problemlos als HID 
benutzbar.

von Chris S. (nos05)


Lesenswert?

Wow das sieht richtig gut aus. Sehr kompakt. Zudem kann ich mir die 
Tasten selber aussuchen (haptik) und vielleicht sogar passende Keycaps 
finden.
Da brauche ich also nur die Grundplatte, Tasten+Caps und ein Arduino?

Die hier kann ich auch verwenden. Richtig?
https://www.cherrymx.de/cherry-mx/mx-low-profile/mx-low-profile-speed.html

: Bearbeitet durch User
von Ralf M. M. (ramime)


Lesenswert?

Chris S. schrieb:
> Da brauche ich also nur die Grundplatte, Tasten+Caps und ein Arduino?
Ja, allerdings würde ich keinen Arduino (Hardware also Uno; Nano etc) 
benutzen, da der keine Vor- sondern nur Nachteile bietet, da er nicht 
nativ USB kann.
Besser bietet sich hier ein Board mit dem RP2040 (z.B. PiPico von 
Raspberry oder anderen) an.
Der wird inzwischen gut von der Arduino IDE (Software!) unterstützt.

Allerding, wenn ich dich richtig verstanden habe geht es dir nicht 
vordergründig drum C bzw. C++ zu lernen, sondern das gesamte Projekt 
fertig zu bekommen, dann würde ich eher zu Circuit Python raten, da 
kommst Du schneller voran. Da gibt es auch fertige HID Libs und 
Beispiele.
https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython

>
> Die hier kann ich auch verwenden. Richtig?
> https://www.cherrymx.de/cherry-mx/mx-low-profile/mx-low-profile-speed.html
Ich denke ja, es gibt da glaube ich nur einen anderen nicht passenden 
"Footprint" und das sind die von Kailh, deren Low-Profile Serie, die 
passen nicht. Also besser nochmal prüfen.

von Chris S. (nos05)


Lesenswert?

Ralf M. M. schrieb:
> Chris S. schrieb:
>> Da brauche ich also nur die Grundplatte, Tasten+Caps und ein Arduino?
> Ja, allerdings würde ich keinen Arduino (Hardware also Uno; Nano etc)
> benutzen, da der keine Vor- sondern nur Nachteile bietet, da er nicht
> nativ USB kann.
> Besser bietet sich hier ein Board mit dem RP2040 (z.B. PiPico von
> Raspberry oder anderen) an.
> Der wird inzwischen gut von der Arduino IDE (Software!) unterstützt.
>
> Allerding, wenn ich dich richtig verstanden habe geht es dir nicht
> vordergründig drum C bzw. C++ zu lernen, sondern das gesamte Projekt
> fertig zu bekommen, dann würde ich eher zu Circuit Python raten, da
> kommst Du schneller voran. Da gibt es auch fertige HID Libs und
> Beispiele.
> 
https://learn.adafruit.com/diy-pico-mechanical-keyboard-with-fritzing-circuitpython
>
>>
>> Die hier kann ich auch verwenden. Richtig?
>> https://www.cherrymx.de/cherry-mx/mx-low-profile/mx-low-profile-speed.html
> Ich denke ja, es gibt da glaube ich nur einen anderen nicht passenden
> "Footprint" und das sind die von Kailh, deren Low-Profile Serie, die
> passen nicht. Also besser nochmal prüfen.


Vielen Dank. Ich erstelle gerade eine Grundplatte auf der ich die 
einzelnen Platinenstücke einsetzen kann. Sozusagen um das Raster an mein 
benötigtes anzupassen.

Arduino wäre meine erste Wahl gewesen weil ich dort in meinem Programm 
ga z einfach eine Matrixschaltung einstellen kann. Jedoch wüsste ich 
dann nicht, wie ich die RGbs eingestellt bekomme. Da wird der Weg den du 
vorgeschlagen hast bestimmt besser sein.

von Chris S. (nos05)


Lesenswert?

> da der keine Vor- sondern nur Nachteile bietet, da er nicht nativ USB kann.

Darf ich mal fragen wozu nativ USB wichtig ist?

von Ralf M. M. (ramime)


Lesenswert?

Chris S. schrieb:
>> da der keine Vor- sondern nur Nachteile bietet, da er nicht nativ USB kann.
>
> Darf ich mal fragen wozu nativ USB wichtig ist?


Aus deinem Eröffnungspost:

Chris S. schrieb:
> Die Tasten sind am Ende nichts anderes als Macrotasten
> für den PC.

Wie sonst, als über USB, bekommst Du die Tasten in den PC?

Chris S. schrieb:
> Arduino wäre meine erste Wahl gewesen weil ich dort in meinem Programm
> ga z einfach eine Matrixschaltung einstellen kann. Jedoch wüsste ich
> dann nicht, wie ich die RGbs eingestellt bekomme.

Das sind ganz normale WS2812, dafür gibt's auch für den Arduino Libs, 
aber wie gesagt, mir ist nicht klar, wie Du die Tasten an den PC 
"übermitteln" willst.

von Chris S. (nos05)


Lesenswert?

> Das sind ganz normale WS2812, dafür gibt's auch für den Arduino Libs,
> aber wie gesagt, mir ist nicht klar, wie Du die Tasten an den PC
> "übermitteln" willst.

Der hat doch Micro usb Anschluss.

von Ralf M. M. (ramime)


Lesenswert?

Chris S. schrieb:
>> Das sind ganz normale WS2812, dafür gibt's auch für den Arduino Libs,
>> aber wie gesagt, mir ist nicht klar, wie Du die Tasten an den PC
>> "übermitteln" willst.
>
> Der hat doch Micro usb Anschluss.

Aber darüber ist nicht der Arduino sprich der ATMega328 verbunden 
sondern nur der USB to Serial Wandler, d.h. für den PC stellt sich der 
Arduino als Serielle Schnittstelle dar und nicht als HID (Human Input 
Device) wie z.B. Keyboard oder Gamepad.

von Chris S. (nos05)


Lesenswert?

Ralf M. M. schrieb:
> Chris S. schrieb:
>>> Das sind ganz normale WS2812, dafür gibt's auch für den Arduino Libs,
>>> aber wie gesagt, mir ist nicht klar, wie Du die Tasten an den PC
>>> "übermitteln" willst.
>>
>> Der hat doch Micro usb Anschluss.
>
> Aber darüber ist nicht der Arduino sprich der ATMega328 verbunden
> sondern nur der USB to Serial Wandler, d.h. für den PC stellt sich der
> Arduino als Serielle Schnittstelle dar und nicht als HID (Human Input
> Device) wie z.B. Keyboard oder Gamepad.

Das wusste ich auch nicht!
Danke sehr! Also soll ich am besten einen PiPico und als Software diese 
Circuit Python nutzen? Hoffe das habe ich so richtig verstanden.
Was die ganzen Tutorials und Hilfen zum programmieren etc. angehen, 
damit muss ich mich beschäftigen, wenn es soweit ist. Das alles hier hat 
schon einen enormen Input und es ist bemerkenswert was hier an 
Schwarmwissen existiert :)
Ich sage nur: böhmische Dörfer

von Chris S. (nos05)


Angehängte Dateien:

Lesenswert?

Morgen, spätestens übermorgen wird das Material eintreffen.
Ich werde hier weiter berichten.
Es wäre doch schön, wenn eure Hilfe sogar Früchte trägt und am Ende 
sogar die Idee verwirklicht werden kann.


Inzwischen habe ich die Platinenhalterung als Testmuster gedruckt. Ich 
darf gespannt sein, ob die Adafruit PCBs da rein gehen. 3D Drucker haben 
so ihre Toleranzen :)

von Chris S. (nos05)



Lesenswert?

Ich habe heute die Platine erhalten und testweise in das Gehäuse 
gesetzt.
Da ich jetzt einige übrig habe, wollte ich mich mit der Schaltung 
vertraut machen.
Ich hoffe, ich kann es einfach von der Anleitung auf das PiPico 
übertragen und entsprechend die Leiterbezeichnung anpassen.
Da setze ich mich gleich einmal dran.

von Chris S. (nos05)


Angehängte Dateien:

Lesenswert?

Guten Abend

Ich habe mich daran versucht die 5x4 Matrix zu programmieren.
Ich hatte gehofft, aus der Anleitung von Adafruit einfach alles 
übernehmen zu können. So war es aber nicht.
Es leuchtet nur die erste RGB.
Zudem nennen sich die Anschlüsse auf dem Board anders. Diese 
entsprechend nur zu übernehmen, brachte auch nichts.

Was mache ich denn falsch?

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Chris S. schrieb:

> Was mache ich denn falsch?

Zeig' deinen Schaltplan und dein Programm, dann können wir dir das sehr 
wahrscheinlich sagen.

Ohne das beides können wir das nicht.

von Wolfgang (Gast)


Lesenswert?

Ralf M. M. schrieb:
> Aber darüber ist nicht der Arduino sprich der ATMega328 verbunden
> sondern nur der USB to Serial Wandler, d.h. für den PC stellt sich der
> Arduino als Serielle Schnittstelle dar und nicht als HID (Human Input
> Device) wie z.B. Keyboard oder Gamepad.

Dann ist ein Arduino mit einem ATmega328 vielleicht die falsche Wahl.
Ein Arduino Pro Micro ist da z.B. eher für prädestiniert.

von c-hater (Gast)


Lesenswert?

Wolfgang schrieb:

> Dann ist ein Arduino mit einem ATmega328 vielleicht die falsche Wahl.
> Ein Arduino Pro Micro ist da z.B. eher für prädestiniert.

Er benutzt mittlerweile einen Raspi Pico. Der ist zu weit mehr in der 
Lage als dem, was der TO damit tun will.

Sprich: das µC-Modul ist sicher nicht das Problem.

von Chris S. (nos05)


Angehängte Dateien:

Lesenswert?

1
import board
2
import keypad
3
import neopixel
4
5
COLUMNS = 5
6
ROWS = 4
7
8
pixels = neopixel.NeoPixel(board.GP5, 20, brightness=0.3)
9
10
keys = keypad.KeyMatrix(
11
    row_pins=(board.GP0, board.GP1, board.GP2, board.GP3),
12
    column_pins=(board.GP13, board.GP12, board.GP11, board.GP10, board.GP9),
13
    columns_to_anodes=False,
14
)
15
16
17
def key_to_pixel_map(key_number):
18
    row = key_number // COLUMNS
19
    column = (key_number % COLUMNS)
20
    if row % 2 == 1:
21
        column = COLUMNS - column - 1
22
    return row * COLUMNS + column
23
24
25
pixels.fill((0, 0, 0))  # Begin with pixels off.
26
while True:
27
    key_event = keys.events.get()
28
    if key_event:
29
        print(key_event)
30
        if key_event.pressed:
31
            pixels[key_to_pixel_map(key_event.key_number)] = (255, 0, 0)
32
        else:
33
            pixels.fill((0, 0, 0))

habe ich das so richtig eingefügt?

Ja, ein PiPico und ich hatte nur diesen Code von der Adafruit Webseite 
umgeändert. Es leuchtet immer nur die erste RGB. Mal weiß, mal grün. 
Kann nicht sagen warum und wieso.
Programm nutze ich sonst keins.
Ich habe es mit Mu probiert aber dort wird mir immer wenn ich auf 
Seriell klicke angezeigt:
"Kann nicht zu Gerät verbinden auf Port COM11.
Mit Putty hat auch nicht funktioniert die Konsole zu öffnen wie in einem 
Tutorial gezeigt.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Chris S. schrieb:

> Ja, ein PiPico und ich hatte nur diesen Code von der Adafruit Webseite
> umgeändert.

Das ist das Problem. Niemand kann das nachvollziehen ohne den 
beteiligten Code von Adafruit.

Auch der "Plan" ist absolut nicht nachvollziehbar, weil man darauf weder 
erkennen kann, wie die Leiterzüge laufen, noch wo genau nun die LEDs 
angeschlossen werden.

Ein richtiger Schaltplan sieht anders aus.

Was man aber auf jeden Fall sagen kann:

Wenn du die in diesem Posting von dir

Beitrag "Re: RGB Tastenfeld in 5x4 Sonderform"

gezeigten Teile verwendest, dann stimmt am Programm definitiv etwas 
nicht. Das sind ganz einfache RGB-LEDs. Bei 4x5 Tastern sind also 
insgesamt 60 LEDs anzusteuern. 60 LEDs kann man aber nicht in einer 
5x4-Matrix betreiben.

Vermutlich ist diese Neopixel-Sache soweiso eigentlich für 
"intelligente" RGB-LEDs gedacht, wie etwa die WS2812B. Die passt dann 
für solche einfachen RGB-LEDs mal absolut garnicht. Völlig anderes 
Prinzip der Ansteuerung.

von Chris S. (nos05)


Lesenswert?

Ich verstehe das Problem nicht ganz. Die Schaltung habe ich so gemacht 
wie dort auf dem Bild. Der Rest ist von dieser PCB doch vorgegeben.
Auch die RGBs sind schon auf den Platinen fest verbaut.
Ich habe dort nicht diese Chinatasten drauf gebaut, sondern einfach 
Keyboard Tasten drauf gesteckt. Dafür sind schon Halterungen vorhanden.
Die Schaltung oben muss halt einer Matrix entsprechen. Ich dachte, das 
wäre so korrekt.

Das Programm von Adafruit? Keine Ahnung ich habe 2 Files in die Library 
kopiert. Diese benötigt man um Neokeya ansteuern zu können.
Der von mir gepostete Code soll die dann aktivieren, dachte ich.
Verzeihung, aber ich habe kaum Ahnung von sowas und aus diesem Grund 
wurde mir das auch empfohlen. Es sollte einfacher zu verstehen sein.
Und ich verwende von dieser Platine nur eine 5x4 Matrix. Also 20 Tasten 
mit 20 RGbs. Das ist aber alles auf den einzelnen PCB Kacheln schon 
fertig montiert.

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

Überprüf mal die Verkabelung.

https://learn.adafruit.com/assets/103574

Ist zwar ein Arduino aber das ist egal.

Kleiner Tipp dazu. Man klemmt immer (wie auf deiner Zeichnung richtig) 
die Y und die Y Leitung der Matrix nebeneinander an.

Was ich aber sehe ist das deine LED's nicht richtig angeklemmt sind.

Das solltest du überprüfen. Ebenso wie die Leitungsanschlüsse der Matrix 
!!! an der Platine. Das kommt mir komisch vor.

https://learn.adafruit.com/adafruit-neokey-5x6-ortho-snap-apart/arduino

Deine Matrix ist zwar anders aber das ist fast irrelevant da du nur an 
einigen Stellen im Programm das anpassen musst.

Da findest du ergo alle Infos die du brauchst. Auch Downloads u.co.

Bei Problemen : https://translate.google.com/?hl=de  ;)


Hinweis : Da du ein Pico benutzt, musst du die IDE entsprechend anpassen 
(Treiber für Pico einstellen).

von Chris S. (nos05)


Lesenswert?

Danke für den Schubser in die richtige Richtung.

Wäre toll wenn du mir noch etwas genauer erklärst worauf du hinaus 
möchtest.

> Was ich aber sehe ist das deine LED's nicht richtig angeklemmt sind.

Woran siehst du das? :)

> Das solltest du überprüfen. Ebenso wie die Leitungsanschlüsse der Matrix !!! an 
der Platine. Das kommt mir komisch vor.

was genau ist komisch?

> Hinweis : Da du ein Pico benutzt, musst du die IDE entsprechend anpassen 
(Treiber für Pico einstellen).

IDE entsprechend anpassen? Treiber?

Ich habe es wie nach Anleitung auf der Seite gemacht. Also erst das Pico 
Geflasht mit 7.0 dann die lib für die neokeys sowie den Code File 
angepasst für den Test.

von Schlaumaier (Gast)


Lesenswert?

Chris S. schrieb:
> "Kann nicht zu Gerät verbinden auf Port COM11.
> Mit Putty hat auch nicht funktioniert die Konsole zu öffnen wie in einem
> Tutorial gezeigt.

Das lässt darauf schliessen das die IDE mit den Board nicht zurecht 
kommt.

Ich kenne den Pico nicht, deshalb kann ich dir da nicht helfen.

Benutzt mal diese Anleitung um mit dein Pino zu "reden".

https://draeger-it.blog/raspberry-pi-pico-in-der-arduino-ide-programmieren/

Da steht auch drin, wie man den "Treiber" für den Pico nach-installiert.

Die ganze Anleitung auf adafriuts bassiert nämlich auf nämlich auf einen 
Arduino-NANO.  Ist nicht wirklich ein Problem muss halt nur auf den Pico 
umgearbeitet werden.

Wenn du die Anleitung da nutzt, dann sollte den Pico auch mit dir reden 
(via Seriall-Interface).

Ansonsten kauf dir für 2-10 Euro ein Nano ;) Was die Sache viel 
einfacher macht. ;)

von Chris S. (nos05)


Lesenswert?

Aha.
Hier wurde mir allerdings der pico empfohlen.
Ich hätte noch eine Arduino hier liegen.
Soll ich besser den nehmen?
Da könnte ich in Simhub eine einfache Matrix hinterlegen und so 
funktioniert auch meine andere Buttonbox.
Problem sind dann allerdings die RGB LEDs und ich habe wirklich null 
Ahnung, wie ich die dann so eingestellt bekomme, wie ich mir das 
vorstelle.

Aber erst einmal sollte alles leuchten und druckbar sein.

Ich mache mich gleich mal da dran. Danke sehr.

von Schlaumaier (Gast)


Lesenswert?

Chris S. schrieb:
> Ich hätte noch eine Arduino hier liegen.
> Soll ich besser den nehmen?

Kann ich so nicht entscheiden.

Fakt ist,  die Tastatur würde (siehe Links) mit einen Arduino NANO 
problemlos nach zu bauen sein.

Die Frage die sich dann stellt ist, wie geht es weiter.  Weil die 
Software da macht nur "Buntes Licht" wenn du ein Knöpfchen drückst.

Willst du die Daten auswerten und wie. ??  Der Nano hast 32 Kilobytes 
!!! an Speicher. Für normale kleine Anwendungen reicht das locker.

Aber irgendwann ist selbst ein Rechenzentrum überlastet.

Also musst du entscheiden wie viel Leistung / Speicher du brauchst für 
deine Anwendung.

Da ist aber eh im ersten Falle ein Bastelprojekt ist, wäre es vielleicht 
keine schlechte Idee die Schaltung mit den Anschlüssen mal eben an ein 
Nano an zu klemmen OHNE LÖTEN. Für so was hast man Steckboards-Kabel 
entwickelt.

Wenn das Teil auf den Nano läuft kann man im Schritt 2. versuchen es 
weiterzuentwickeln zu seiner Anwendung, ist auch ein Kostenfaktor. Man 
muss keine Perlen (pico) nutzen, wenn es auch kleiner geht.

Wichtig ist aber, das du deine IDE richtig einstellst, und dabei ist es 
egal obs ein Nano o. Pico ist.  ALLES braucht sein Treiber.

Egal wie oft ich ein Board anschließe. Wenn es NEU ist und das Board 
eine LED hat, schicke ich BLINKI rüber. Schaue mir an wie die LED blinkt 
und freue mich das mein Board mit mir redet. Dann weiß ich das da kein 
Fehler vorliegt.  Ist lächerlich aber so suche ich nie an der falschen 
Stelle.

In den Blog-Link oben liest du genau was ich meine.

Und ich denke das erste was du machen solltest ist Blinki zum Board zu 
senden. !!! Dann weist du wenigstens ob das Board mit den PC redet.

Ach ja, Blinki ist ein Programm was die IDE fertig mitliefert, einfach 
nur laden und dann Hochladen.

Und bei einen Pc ist es grundsätzlich so. ALLES was dran hängt braucht 
sein Treiber. Und ein Pico hängt genau so dran wie ein Nano (der meist 
ein CH-340-Treiber braucht).

von Chris S. (nos05)


Lesenswert?

Ok. Ich nehme mir das auf jedenfalls gleich als Lektüre vor.
Meine Tasten sollen so eingestellt werden das sie beim 1. Druck Farbe X 
hat und beim 2. Farbe Y. Das halt bei allen 20 definiert.

Ich habe mir das einfach vorgestellt :)
Das ich die nicht mal zum laufen bekomme liegt sicher am Pico der da 
scheinbar nicht so freundlich zu mir ist wie der Arduino.
Die Tasten würde ich dann wie Makrotasten als Keypad zuweisen.
Ob das alles so funktionieren wird? Ich habe keine Ahnung.
Jetzt aber erst mal zurück zum Anfang.
:)

von Schlaumaier (Gast)


Lesenswert?

Chris S. schrieb:
> Meine Tasten sollen so eingestellt werden das sie beim 1. Druck Farbe X
> hat und beim 2. Farbe Y. Das halt bei allen 20 definiert.

Ist doch einfach.

Do fragst ja den Status ab. Als Antwort bekommst du welche Taste 
gedrückt wird. Nun schickst du einfach an diese Taste den Farbcode für 
die LED.

Ist doch schon ähnlich in dein Code oben.

Wird im Prinzip durch diese Zeile gemacht.

   pixels[key_to_pixel_map(key_event.key_number)] = (255, 0, 0)

Musst nur key_event.key_number vorher abfragen und dann den Befehl 
passend zum Key mit der richtigen Farbe senden.

if key_event.key_number = 5
     pixels[key_to_pixel_map(key_event.key_number)] = (255, 0, 0)
end if

Für so was haben die Programmiergötter uns Variablen gegeben. ;)

von Chris S. (nos05)


Lesenswert?

Ok. Klingt für mich aber nicht einfach :)
Ich habe bereits die nächsten Probleme.

Bin der Anleitung gefolgt und habe den Treiber dafür installiert. 
Seitdem erkennt er den pico nicht mehr als Port, sondern als tragbares 
Gerät.
Dadurch kann ich der Anleitung nicht weiter folgen. Ich soll den port 
mit dem Namen PiPico auswählen und dort den ersten Scatch erstellen.

von Dirk M. (dirkm)


Lesenswert?

Chris S. schrieb:
> Habe was gefunden. Keine Ahnung wieso ich die übersehen habe. Es wurden
> mir immer nur einzelne Farben angezeigt.
> Aber vielleicht könnte es mit denen funktionieren. Keine zusätzliche
> Bastelei und ich kann die Menge bestellen die ich benötige. Keine großen
> Stückzahlen. Paar mehr falls was schief geht schaden trotzdem nicht.

Hast du dazu einen Link?

von Chris S. (nos05)


Lesenswert?

Oh die hatte ich verworfen weil ich mich dann für das Adafruit System 
entschieden habe. Tut mir leid.

von Chris S. (nos05)


Lesenswert?

Dirk M. schrieb:
> Chris S. schrieb:
>> Habe was gefunden. Keine Ahnung wieso ich die übersehen habe. Es wurden
>> mir immer nur einzelne Farben angezeigt.
>> Aber vielleicht könnte es mit denen funktionieren. Keine zusätzliche
>> Bastelei und ich kann die Menge bestellen die ich benötige. Keine großen
>> Stückzahlen. Paar mehr falls was schief geht schaden trotzdem nicht.
>
> Hast du dazu einen Link?

Habe eine Mail dazu erhalten. Von wegen ich könnte sie noch kaufen.
Hier der Name:

PB26-13M Platz 15*15mm Mit LED SPDT Momentary Selbst-Rückkehr PCB Push 
Button Schalter Für Video Prozessor

Einfach in Google eingeben.

von Chris S. (nos05)



Lesenswert?

Guten Abend

Es gibt Neuigkeiten!

Inzwischen habe ich die Box soweit fertig. Das Feintuning hat begonnen 
aber im ganzen bin ich damit durch.

Dann die Geschichte mit den Neokeys:

Ich habe, nachdem ich die erste Platte eigentlich total versemmelt habe, 
mir eine zweite gekauft. Lötkolben auch getauscht und das ganze noch mal 
geplant und erst gelötet, dann zerschnitten.
Das Teil läuft soweit, das die LED alle leuchten. Funktionstest ist 
bestanden.

Ich habe ausserdem einen Arduino Micro benutzt und nicht diesen Pico. 
Mit dem bin ich nicht klar gekommen.

Jetzt stehe ich aber vor dem letzten Problem:

Dem Code für die Tasten.

Ich habe soweit alles von dir versucht so umzusetzen wie vorgeschlagen 
und bin froh es so getan zu haben, aber das mit dem Programmieren will 
mir nicht gelingen.

Du hast geschrieben:

>pixels[key_to_pixel_map(key_event.key_number)] = (255, 0, 0)

Musst nur key_event.key_number vorher abfragen und dann den Befehl
passend zum Key mit der richtigen Farbe senden.

if key_event.key_number = 5
     pixels[key_to_pixel_map(key_event.key_number)] = (255, 0, 0)
end if


was muss denn sonst in den Code bzw den Sketch rein?

Ich habe jetzt ein Tastenfeld in 5x4.
(Bild1)
Ich möchte gerne, das alle Tasten weiß leuchten und bei Betätigung die 
Farbe vordefiniert wechseln GENAU wie hier. (Bild 2)
und beim erneuten betätigen wieder weiß.
Wie spreche ich also nun die einzelnen Tasten/RGBs an? das will mir 
nicht in den Kopf :(
Kannst du mir vielleicht helfen?

von Teo D. (teoderix)


Lesenswert?

Das ist ne Daisy-Chain. Einzeln ändern geht nicht, Du musst immer alle 
neu beschreiben.

von Chris S. (nos05)


Lesenswert?

Verstehe ich nicht. Der Sinn hinter der Matrix Schaltung sollte doch 
sein, sie einzeln ansteuern zu können?

von Teo D. (teoderix)


Lesenswert?

Chris S. schrieb:
> Verstehe ich nicht. Der Sinn hinter der Matrix Schaltung sollte doch
> sein, sie einzeln ansteuern zu können?

Sind die RGB-LEDs in einer Matrix oder in einer Kette verschaltet?!

von Chris S. (nos05)


Lesenswert?

Matrix. Wobei...keine Ahnung ehrlich gesagt. Jedes Platinenteil ist halt 
mit jedem anderen verbunden.
Ich habe einen Test durchgeführt und die LEDS sind der reihe nach an 
gegangen.
Also sind sie einzeln steuerbar. Eigentlich. Das war halt ein fertiger 
Code. Simple Test.
Und nun würde ich gerne den RGBs beim Tastendruck eine Farbe zuweisen 
knnen.

In den Videos von Adafruit kommt das auch so rüber als wäre das möglich. 
Die drückt mit ihren Fingern auf die Taste und die Farbe ändert sich.

Edit noch mal:

Für mich ist das eine Matrix. Die Reihen und auch die Spalten werden 
durch Kabel zum Arduino geführt. Habe das extra so angeschlossen, wie es 
auf deren Seite auch gezeigt wird. Nur mit dem Unterschied, das ich 
jedes Teil noch untereinander verlöten musste,

: Bearbeitet durch User
von Achim M. (minifloat)


Lesenswert?

Chris S. schrieb:
> 040DE0FB-2AF0-45AA-8507-9C2F66C3A090.jpg

Was ist mit dem Knopp links unten, warum leuchtet der nicht?

Chris S. schrieb:
> Für mich ist das eine Matrix. Die Reihen und auch die Spalten werden
> durch Kabel zum Arduino geführt.

Die Tasten sind in einer Matrix, die Beleuchtung in einer Reihe?

mfg mf

von Schlaumaier (Gast)


Lesenswert?

Chris S. schrieb:
> if key_event.key_number = 5
>      pixels[key_to_pixel_map(key_event.key_number)] = (255, 0, 0)
> end if

Genau das.

key_event.key_number <- liefert dir die Nr. der Taste die gedrückt 
wurde.

Die Abfrage testet ob die Taste gedrückt wurde.

Wenn nun wie im Beispiel  Taste 5 gedrückt wurde setzt du mit
pixels[key_to_pixel_map(key_event.key_number)] = (r, g, b)

die passende Farbe.  R steht für Rot, G für Gelb, B = blau  wie bei 
deinen Drucker.

Die passenden Werte kannst du z.b. so raus finden. Starte PAINT auf den 
Windows-PC. Klicke auf FARB-Palette bearbeiten. Klicke auf eine Farbe 
dann siehst du unten die R G B Werte. Die Zahlen in die Software 
eingeben (s.o.) und das war es.

Das Ergebnis ist, sobald die Taste gedrückt wird leuchte sie in der 
Farbe wie in Paint ausgesucht (jedenfalls ca.) Abweichungen sind immer 
drin. Notfalls nachbessern der Werte bis sie dir gefallen.

Und kannst in der IF Abfrage dann auch noch weiter Ereignisse reincoden. 
Ich weiß ja nicht, was du damit im Endeffekt willst.

Im Prinzip musst du den Teil nur sagen was passieren soll wenn die Taste 
gedrückt wird. Wenn die Taste beim 2. x ausgehen soll, musst du eine 
Status-Variable für die Taste anlegen. !!!

Taste_5_status = false (aus) <- z.b.


Ich habe ein ähnliches Tastenfeld (ohne Lämpchen) z.b. für eine 
Steuerungseinheit per IR benutzt.

Ich lade mit Taste 1-8 vorprogrammierte Werte. 16 Sendet. 13 ruft ein 
Menü auf, was dann z.T. die Tastensteuerung umstellt. Die Varianten sind 
wie die Sache mit den Reiskorn und den Schachbrett (alte Chinesische 
Geschichte).

Der Trick beim Programmieren ist, das man weiß was man will und das 
umsetzt. Der Rest ist nur noch Fleißarbeit. Dabei ist es völlig egal ob 
du eine Kaffeemaschine Programmierst die um 7:10 Kaffee macht oder deine 
Anwendung. Nur du programmierst dann die Schnittstelle zum User.

von Chris S. (nos05)


Lesenswert?

Die Taste hat nicht geleuchtet weil die nach der Reihe angehen und ich 
einfach nicht im richtigen Moment abgedrückt habe. Sekunde später und 
alle wäre aus gewesen :)

@Schlaumaier

wäre es vielleicht möglich, das du mir für 1-2 Tasten einmal genau den 
Sketch schreiben würdest, so wie er hinterlegt werden muss?
Dann könnte ich das ableiten und die "Fleißarbeit" übernehmen und auf 
den Rest übertragen. Vor allem kann ich es dann auch nachvollziehen. So 
verstehe ich nach wie vor nicht, warum es so eingegeben werden muss.

von Schlaumaier (Gast)


Lesenswert?

Chris S. schrieb:
> Dann könnte ich das ableiten und die "Fleißarbeit" übernehmen und auf
> den Rest übertragen. Vor allem kann ich es dann auch nachvollziehen. So
> verstehe ich nach wie vor nicht, warum es so eingegeben werden muss.

Leider nein.

Ich kann zu schlecht die Syntax von C.

Ich programmiere die Teile in B4R (in den Fall). Das ist von der Logik 
her das selbe. Aber für dich leider eine ganz andere Syntax.

Die würde dich nur verwirren.

Aber lies dir mal diese Artikel durch.

Und falls du dich wirklich mit der Materie weiter beschäftigen willst 
empfehle ich dir folgendes Buch.

https://www.amazon.de/Arduino-Kompendium-Elektronik-Programmierung-Projekte/dp/3966450399

Wenn du es auf Papier bestellst bekommt du es als Ebook GRATIS in den 
üblichen Varianten (PDF / Epub) dazu. Code im Buch dann download.

Ich habe es selbst gekauft, weil ich zu faul war für viele Sachen mich 
für die Ansteuerung durch Internet zu wühlen.

Da ist das alles perfekt erklärt. SEHR EMPFEHLENSWERT.

Kleiner Nebentipp am Rande: Bei  Amazon Unlimited ist es auch zu haben 
(und das kann man 30 Tage kostenlos testen) ich habe es da 
getestet=einige Seiten gelesen , im Testzeitraum das  Kindle Unlimited 
gekündigt und das Buch in meiner Buchhandlung vor Ort bestellt. ;)

von Chris S. (nos05)


Lesenswert?

ok. Vielen Dank.
Ich lese das mir nun immer wieder durch und einerseits schreibst du, es 
sei total einfach. Man müsse nur dies und das eingeben. Andererseits 
sind die Sachen auf mich aber nicht übertragbar, obwohl du weiter oben 
mir die Hilfestellung von einem Code gegeben hast?
Das passt nicht zusammen. Denn genau mit dem habe ich es doch probiert.
Also entweder ist es zu kompliziert oder nicht mal eben zu 
bewerkstelligen. Warum weiß du aber, was ich machen müsste und 
andererseits nicht, was ich dort eintragen muss?

Verzeih mir wenn ich das so blöd hinterfragen muss :D

von Schlaumaier (Gast)


Lesenswert?

Weil ich die Logik problemlos kann.

Aber dir als Anfänger nicht die Syntax (die Art Rechtschreibung) richtig 
zeigen kann.

Ich programmiere die Teile einfach unter einen anderen "Zwischensystem". 
Dieses Basiert auf der Programmiersprache BASIC. Das Arduino-System aber 
auf den den Grundlagen von C

Die Logik ist bei JEDER Programmiersprache auf den Plani gleich.

Die Syntax und teilweise auch der Programmaufbau aber total 
unterschiedlich.

Ich schreibe z.b. in B4X .  Der Grund ist, das ich zu faul bin, jede 
Menge Programiersprachen zu lernen von der reinen Syntax her.  Also 
programmiere ich ALLES In Visual-Basic (o.ä.). Und B4X ist halt ein 
System was für Arduino  Android  Ei-Fon die selbe Struktur + Syntax 
hat wie Visual-Basic for Windows.

Das wäre der Code in B4X

for i = 1 to 16   ' schaltet alles LED's aus
 pixels[(i) = (0, 0, 0)
next i

if key_event.key_number = 5 then  ' wenn Taste 5 gedrückt lasse sie grau 
leuchten
  pixels[key_to_pixel_map(key_event.key_number)] = (224, 224, 224)
  Starte_prg_von_taste_5
end if


Du musst diesen BASIC - Code jetzt in C umwandeln.

Hier die Erklärung für IF-THEN abfragen unter C

https://www.delftstack.com/de/howto/arduino/arduino-if-statement/

Und hier hast du eine Erklärung wie man gewisse Sachen in Arduino-C 
löst.

http://popovic.info/html/arduino/arduinoUno_1.html

Es hilft nix. Du musst programmieren lernen. Wenigstens ein Bisschen.

von Chris S. (nos05)


Lesenswert?

Ok. Klingt alles nach Neuland. Ich gehe dann mal links gucken und setze 
mich dran.

von Peter D. (peda)


Lesenswert?

Chris S. schrieb:
> Ich möchte gerne, das alle Tasten weiß leuchten und bei Betätigung die
> Farbe vordefiniert wechseln GENAU wie hier. (Bild 2)
> und beim erneuten betätigen wieder weiß.

Da hilft alles nichts, Du mußt einen Programmablaufplan erstellen.
Um verschiedene Reaktionen auf einen Tastendruck zu erzeugen, brauchst 
Du eine Zählvariable. Den Wert der Variable kannst Du mit einem 
switch/case einer Farbe zuweisen oder als Index eines Arrays von 
Farbwerten. Erreicht die Variable den letzten Wert, setzt Du sie wieder 
auf 0. Und das machst Du dann für jede Taste. 10 Tasten = 10 Variablen.

von Chris S. (nos05)


Lesenswert?

>Wenn nun wie im Beispiel  Taste 5 gedrückt wurde setzt du mit
pixels[key_to_pixel_map(key_event.key_number)] = (r, g, b)

die passende Farbe.  R steht für Rot, G für Gelb, B = blau  wie bei
deinen Drucker.

Wo sehe ich denn, welche Taste sich wie nennt? ich muss die im Code doch 
irgendwie ansprechen können. Aktuell hakt es genau daran.
Ich kann mir auch von dem Link nicht wirklich viel ableiten. Denn darin 
werden einzelne LEDs behandelt die allerdings nur eine Farbe wiedergeben 
und auf einem Port sitzen. Ich habe einen Datenport und insgesamt laufen 
20 Tasten mit 20 RGBs in einer Matrix zusammen. Ich finde einfach keinen 
Startpunkt bei dieser Geschichte.

Die RGBS in der Matrix zu benennen war kein Problem. Aber die Tasten 
funktionieren halt nicht.
Hier ist ein Beispiel Sketch:
1
#include <Adafruit_NeoPixel.h>
2
#include "Adafruit_Keypad.h"
3
4
#define ROWS 5 // rows
5
#define COLS 6 // columns
6
7
#define NEOPIXEL_PIN A0
8
#define NUM_PIXELS (ROWS * COLS)
9
10
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXELS, NEOPIXEL_PIN, NEO_GRB + NEO_KHZ800);
11
12
13
//define the symbols on the buttons of the keypads
14
char keys[ROWS][COLS] = {
15
  {'1','2','3','4','5','6'},
16
  {'7','8','9','A','B','C'},
17
  {'D','E','F','G','H','I'},
18
  {'J','K','L','M','N','O'},
19
  {'P','Q','R','S','T','U'}
20
};
21
22
uint8_t rowPins[ROWS] = {6, 5, 4, 3, 2}; //connect to the row pinouts of the keypad
23
uint8_t colPins[COLS] = {7, 8, 9, 10, 11, 12}; //connect to the column pinouts of the keypad
24
25
//initialize an instance of class NewKeypad
26
Adafruit_Keypad customKeypad = Adafruit_Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
27
28
bool lit[ROWS*COLS] = {0};
29
30
void setup() {
31
  Serial.begin(115200);
32
  //while (!Serial);
33
  Serial.println("Ortho 5x6 keypad demo");
34
  strip.begin();
35
  strip.setBrightness(40);
36
  strip.show(); // Initialize all pixels to 'off'
37
38
  customKeypad.begin();
39
  for (int i=0; i<ROWS*COLS; i++) {
40
    lit[i] = false;
41
  }
42
}
43
44
uint8_t j=0; // color ticker
45
46
void loop() {
47
  //Serial.println("Test NeoPixels");
48
  customKeypad.tick();
49
  
50
  while(customKeypad.available()){
51
    keypadEvent e = customKeypad.read();
52
    Serial.print((char)e.bit.KEY);
53
    if (e.bit.EVENT == KEY_JUST_PRESSED) {
54
      Serial.println(" pressed");
55
      uint8_t row = e.bit.ROW;
56
      uint8_t col = e.bit.COL;
57
      Serial.print("Row: "); Serial.print(row);
58
      Serial.print(" col: "); Serial.print(col);
59
      Serial.print(" -> ");
60
      uint16_t keynum;
61
      if (row % 2 == 0) { // even row
62
        keynum = row * COLS + col;
63
      } else { // odd row the neopixels go BACKWARDS!
64
        keynum = row * COLS + (5 - col);
65
      }
66
      Serial.println(keynum);
67
      lit[keynum] = !lit[keynum]; // invert neopixel status
68
    }
69
    else if(e.bit.EVENT == KEY_JUST_RELEASED) {
70
      Serial.println(" released");
71
    }
72
  }
73
74
  for(int i=0; i< strip.numPixels(); i++) {
75
    if (lit[i]) {
76
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
77
    } else {
78
      strip.setPixelColor(i, 0);
79
    }
80
  }
81
  strip.show();
82
  j++;
83
  
84
  delay(10);
85
}
86
87
88
// Input a value 0 to 255 to get a color value.
89
// The colours are a transition r - g - b - back to r.
90
uint32_t Wheel(byte WheelPos) {
91
  if(WheelPos < 85) {
92
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
93
  } else if(WheelPos < 170) {
94
   WheelPos -= 85;
95
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
96
  } else {
97
   WheelPos -= 170;
98
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
99
  }
100
}
Diesen habe ich umgeschrieben soweit ich das richtig verstanden habe 
zumindest, auf meine Bedürfnisse:
1
#include <Adafruit_NeoPixel.h>
2
#include "Adafruit_Keypad.h"
3
4
#define ROWS 4 // rows
5
#define COLS 5 // columns
6
7
#define NEOPIXEL_PIN 6
8
#define NUM_PIXELS (4 * 5)
9
10
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXELS, NEOPIXEL_PIN, NEO_GRB + NEO_KHZ800);
11
12
13
//define the symbols on the buttons of the keypads
14
char keys[ROWS][COLS] = {
15
  {'1','2','3','4','5'},
16
  {'7','8','9','A','B'},
17
  {'D','E','F','G','H'},
18
  {'J','K','L','M','N'},
19
};
20
21
uint8_t rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
22
uint8_t colPins[COLS] = {7, 8, 9, 10, 11}; //connect to the column pinouts of the keypad
23
24
//initialize an instance of class NewKeypad
25
Adafruit_Keypad customKeypad = Adafruit_Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
26
27
bool lit[ROWS*COLS] = {0};
28
29
void setup() {
30
  Serial.begin(115200);
31
  //while (!Serial);
32
  Serial.println("Ortho 5x6 keypad demo");
33
  strip.begin();
34
  strip.setBrightness(40);
35
  strip.show(); // Initialize all pixels to 'off'
36
37
  customKeypad.begin();
38
  for (int i=0; i<ROWS*COLS; i++) {
39
    lit[i] = true;
40
  }
41
}
42
43
uint8_t j=0; // color ticker
44
45
void loop() {
46
  //Serial.println("Test NeoPixels");
47
  customKeypad.tick();
48
  
49
  while(customKeypad.available()){
50
    keypadEvent e = customKeypad.read();
51
    Serial.print((char)e.bit.KEY);
52
    if (e.bit.EVENT == KEY_JUST_PRESSED) {
53
      Serial.println(" pressed");
54
      uint8_t row = e.bit.ROW;
55
      uint8_t col = e.bit.COL;
56
      Serial.print("Row: "); Serial.print(row);
57
      Serial.print(" col: "); Serial.print(col);
58
      Serial.print(" -> ");
59
      uint16_t keynum;
60
      if (row % 2 == 0) { // even row
61
        keynum = row * COLS + col;
62
      } else { // odd row the neopixels go BACKWARDS!
63
        keynum = row * COLS + (COLS - col);
64
      }
65
      Serial.println(keynum);
66
      lit[keynum] = !lit[keynum]; // invert neopixel status
67
    }
68
    else if(e.bit.EVENT == KEY_JUST_RELEASED) {
69
      Serial.println(" released");
70
    }
71
  }
72
73
  for(int i=0; i< strip.numPixels(); i++) {
74
    if (lit[i]) {
75
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
76
    } else {
77
      strip.setPixelColor(i, 0);
78
    }
79
  }
80
  strip.show();
81
  j++;
82
  
83
  delay(10);
84
}
85
86
87
// Input a value 0 to 255 to get a color value.
88
// The colours are a transition r - g - b - back to r.
89
uint32_t Wheel(byte WheelPos) {
90
  if(WheelPos < 85) {
91
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
92
  } else if(WheelPos < 170) {
93
   WheelPos -= 85;
94
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
95
  } else {
96
   WheelPos -= 170;
97
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
98
  }
99
}

Ich befürchte, irgendwas vergesse ich anzusprechen. Denn von diesem 
Sketch aus könnte ich bestimmt, sofern denn die Tasten mal funktionieren 
würden, eine Menge ableiten und ausprobieren.

von Schlaumaier (Gast)


Lesenswert?

Ist doch ganz einfach. Du musst folgende Zeilen ändern.

Zeilen-Nr. lt. diesen Forum. !!!

Zeile 4+5

#define ROWS 5 // rows   ' Anzahl der Spalten Vermutlich 4
#define COLS 6 // columns ' Anzahl der Zeilen  Vermutlich 5

Zeile 14-19 . Hier must du den Keyboard "abtippen". Damit die Matrix 
genau so aussieht wie deine. Damit legst du automatisch die Namen der 
Tasten fest, mit den du Sie später ansprichst.

Char keys[ROWS][COLS] = {
  {'1','2','3','4','5'},
  {'7','8','9','A','B'},
  {'D','E','F','G','H'},
  {'J','K','L','M','N'},
};

Zeile 21 + 22 legt die Anschlüsse Fest (Lerne Englisch für Anfänger)
uint8_t rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of 
the keypad
uint8_t colPins[COLS] = {7, 8, 9, 10, 11}; //connect to the column 
pinouts of the keypad


Zeile 32
 Serial.println("Ortho 5x6 keypad demo");   'Gibt in der Arduino-IDE die 
Rückmeldung "Hallo ich bin da" und sagt dir das das Programm sauber 
gestartet ist.

Zeile 51 :
 Serial.print((char)e.bit.KEY);

Sobald du eine Taste gedrückt hast, steht in der Arduino-IDE welchen 
Name (Siehe Zeile 14-19) erkannt wurde.

Grundsaätzlich : Serial.print ist der Befehl der dir Rückmeldungen in 
die Arduino-IDE gibt vom Programm. Du kannst dir so, Zustandsmeldungen, 
Werte von Variablen etc. anzeigen lassen. Auch Logikprüfungen sind so 
möglich .
Du schreibt (siehe Zeile 53)     Serial.println(" pressed");
Der Text wird nur ausgegeben weil du ne Taste gedrückt hast. Ergo weißt 
du das das Programm an der Stelle ist, und es da hängt oder auch nicht.

Zeile 56 - 59 gibt dir weitere Infos was er genau erkannt hat.

Tipp: Wenn es hinterher eng wird im Code (was selten passiert) dann 
entfernt man alle Zeilen mit  Serial.print aus den Code wenn es an der 
Stelle gut läuft.

Der Rest des Codes ist nur Blinki-Blinki um dir die Logik des Ansprechen 
und beleuchten klar zu machen.

Einfach gesagt was dein weiteres Vorgehen angeht.

Ändere die von mir beschriebenen Zeilen oben auf deine Tastatur.
Das ist nämlich logisch alles das selbe. Aber die VOR-Initialisierung 
der Hardware (Zeile 0 - 27) muss sitzen. Ansonsten passiert da gar nix. 
!!!

Sorge also dafür das du die logisch richtigen Rückmeldungen im Monitor 
(extra-Fenster der Arudino-IDE) bekommst.

DANN geht es weiter.

von Chris S. (nos05)


Lesenswert?

Ja Moment :)

Soweit war ich doch schon.
Siehe den Code den ich geändert habe. Alles was soweit verständlich war 
habe ich auf mein Teil umgeschrieben.

Lediglich das hier verstehe ich nicht so ganz:
>Hier must du den Keyboard "abtippen".
wo abtippen? Es passiert ja nichts. Ich kann die Tasten nicht erkennen 
also kann ich auch keine einfügen dort.
Ich hatte es so wie im Beispiel also belassen. Dann erklärt das auch, 
warum, nichts passiert?

>Zeile 32
 Serial.println("Ortho 5x6 keypad demo");   'Gibt in der Arduino-IDE die
Rückmeldung "Hallo ich bin da" und sagt dir das das Programm sauber
gestartet ist.

Zeile 51 :
 Serial.print((char)e.bit.KEY);

Sobald du eine Taste gedrückt hast, steht in der Arduino-IDE welchen
Name (Siehe Zeile 14-19) erkannt wurde.

in der IDE steht nie etwas. Nichts...
Nur das es einen Fehler beim Übertragen gibt:
>C:\\Documents\Arduino\libraries\Adafruit_Keypad/Adafruit_Keypad_Ringbuf 
fer.h:57:5:  note: type 'struct Adafruit_Keypad_Ringbuffer' should match type 
'struct Adafruit_Keypad_Ringbuffer'
     Adafruit_Keypad_Ringbuffer;
     ^
C:\Documents\Arduino\libraries\Adafruit_Keypad\Adafruit_Keypad_Ringbuffe 
r.h:57:5:  note: the incompatible type is defined here
     Adafruit_Keypad_Ringbuffer;
     ^
Ich habe diese Ordner bereits neu installiert, die Daten dort angesehen 
und auf Github versucht mit den alternativen klar zu kommen. Weiß halt 
nicht was damit gemeint ist.
Am Ende jedoch speichert er den Sketch trotzdem ab. Das hre ich daran, 
das er sich ab und anmeldet am Port. Und an dieser Zeile hier:
>Der Sketch verwendet 7282 Bytes (25%) des Programmspeicherplatzes. Das Maximum 
sind 28672 Bytes.
Globale Variablen verwenden 372 Bytes (14%) des dynamischen Speichers, 
2188 Bytes für lokale Variablen verbleiben. Das Maximum sind 2560 Bytes.
>Serial.print ist der Befehl der dir Rückmeldungen in
die Arduino-IDE gibt vom Programm. Du kannst dir so, Zustandsmeldungen,
Werte von Variablen etc. anzeigen lassen. Auch Logikprüfungen sind so
möglich .
Du schreibt (siehe Zeile 53)     Serial.println(" pressed");
Der Text wird nur ausgegeben weil du ne Taste gedrückt hast. Ergo weißt
du das das Programm an der Stelle ist, und es da hängt oder auch nicht.
>Sorge also dafür das du die logisch richtigen Rückmeldungen im Monitor
(extra-Fenster der Arudino-IDE) bekommst.
Das hier ist der Schlüssel. Ich bekomme keine Rückmeldungen. Das ist es 
ja:(

von Schlaumaier (Gast)


Lesenswert?

Dein Sketch ist NICHT hochgeladen.

Wenn das hochgeladen ist, und die initialisieren überlebt hat und BEVOR 
du irgendwas machen kannst / Musst steht im Seriellen-Monitor.

void setup() {   ' <-erste echte Programmroutine die abgearbeitet wird 
NACH den INI.

  Serial.begin(115200);  ' init die Seriell Schnittstelle (ich würde den 
Wert auf bei Stress 9600 setzen.
  //while (!Serial);
  Serial.println("Ortho 5x6 keypad demo");  <- Und das sagt dir dann das 
es  lebt.


Bei dir ist zwar richtig berechnet worden. ABER die Fehlermeldungen 
sagen das das Adafruit-Teil nicht mit deiner IDE zusammenarbeitet.

Mein Tipp:

Lass die Installation von der IDE machen

Hier die Anleitung.

http://funduino.de/hardware-software#222_Bibliotheken_zur_Arduino_Softwarehinzufuegen

Wenn du in einen Code z.b. #include "Adafruit_Keypad.h" liest, dann ist 
das erste was du versuchen solltest nach der Anleitung im Link 
vorzugehen.

Du gibst in den Such-Fenster einfach den Teil in den " ein, aber OHNE .h 
und den Unterstrich durch ein Leerzeichen ersetzen. Was in den Beispiel 
bedeutet : adafruit keypad

Da finde ich die Libs in mehren Versionen. Ich fange meist mit der 
neusten an, und wenn die Stress machen stelle ich (wenn vorhanden) auf 
eine neue um.

===================================================================

Chris S. schrieb:
> wo abtippen? Es passiert ja nichts. Ich kann die Tasten nicht erkennen
> also kann ich auch keine einfügen dort.

hihi. Ich meine die (mögliche) Beschriftung deiner Tastatur.
Was du sogar indirekt gemacht hast. ;)

char keys[ROWS][COLS] = {
  {'1','2','3','4','5'},
  {'7','8','9','A','B'},
  {'D','E','F','G','H'},
  {'J','K','L','M','N'},
};

Bedeutet die 2 Taste in der 3 Reihe ist (oder wird) mit E beschriftet 
auf der echten vor dir gekauften Tastatur. Und damit du Durchblick hast, 
gibst du mit der Martix halt jeder Taste ein Namen. Genau wie die Tasten 
auf deiner PC-Tastatur. Die mit den A drauf, ist halt die A-Taste ;)

Du gibst durch diesen Befehl also nur der Taste ein Namen den man 
sinnesweise mit der Matrix der Tastatur gleich gibt (deshalb das 
abtippen).
Ich persönlich mache 0-9 und dann mit Buchstaben weiter. In der Abfrage 
schreibe ich im Kommentar dann dahinter was ich damit will.
z.b.
    keypadEvent e = customKeypad.read();
    Serial.print((char)e.bit.KEY);
    if (e.bit.EVENT == "E") {   ' funkt Taste e = Menü aufrufen.

das ' bedeutet das alles was dahinter kommt bla bla ist, und von 
Compiler ignoriert wird.

von Chris S. (nos05)


Lesenswert?

Erst einmal vielen Dank das du mir das so gut erklärt hast.

>Wenn das hochgeladen ist, und die initialisieren überlebt hat und BEVOR
du irgendwas machen kannst / Musst steht im Seriellen-Monitor.

Ich habe hier einen anderen Test mal auf den Arduino hochgeladen um die 
LEDs zu testen.
Da wird mir auch nichts im Monitor angezeigt.
Da steht im blauen Rahmen nur das "Hochladen abgeschlossen" ist.

Im Monitor unter Werkzeuge, steht nichts. Vielleicht meinst du auch noch 
was anderes?

>Lass die Installation von der IDE machen

Genau das habe ich auch getan. Ich bin nur noch nicht alle Versionen 
durch gegangen. Werde ich jetzt mal tun.

>hihi. Ich meine die (mögliche) Beschriftung deiner Tastatur.
Was du sogar indirekt gemacht hast. ;)

Sehr gut. Dann kann das so bleiben vorerst.

Edit:

Also sobald ich die Version auf 1.2 änder, wird mir gar nicht mehr das 
Beispiel der Ortho 5x6 in Beispielen angezeigt. Das führt dann auch 
dazu, das ich beim Überprüfen 1000 Fehlermeldungen bekomme.
Jedes andere Beispiel mit Keypads wirft mir immer den Fehler mit diesem 
Ringbuffer aus.

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

Hmm

Ich würde mal das Testen. Aber nur als "Schuss ins Blaue."

Ich muss nämlich zugeben, das ich keine Ahnung habe was diese 
Fehlermeldung bedeutet.

https://www.arduino.cc/reference/en/libraries/ringbuffer/

Davon abgesehen gilt immer. Es kann nie schlecht sein, wenn man viele 
Libs auf den Rechner zu Verfügung hat.

Vielleicht das ist aber meine reine Vermutung, braucht die Lib eins der 
Adafruit-Teile.

von Chris S. (nos05)


Lesenswert?

Leider habe ich genau das auch schon probiert :)
Ich habe auch schon gedacht das irgendwas vielleicht in der Datei dazu 
fehlerhaft geschrieben wurde aber das kann ja nicht sein.
Oder der Arduino Micro ist ungeeignet?

von Schlaumaier (Gast)


Lesenswert?

Chris S. schrieb:
> Oder der Arduino Micro ist ungeeignet?

Der merkt gar nix davon.

Wenn du auf den Micro BLINKI (das ist eine Code den die IDE mitbringt) 
übertragen kannst dann ist alles fein was die IDE-Komunikation angeht.

Wenn du in Blinki nach einen Delay Befehl mal den Befehl
Serial.println("Blinki blinkt");

einträgst, sieht du dann die Rückmeldung im Monitor. (Ist ein extra 
Fenster in der IDE).

Aber dein Problem ist ein reinen Software-Problem. Der Compiler bekommt 
irgendwas in den falschen Hals.

Schreib mal Adafruits an, vielleicht ist denen das Problem bekannt und 
sie haben eine Lösung. Ich gebe zu, das ich keine habe. Ferndiagnosen 
sind immer schwer besonders wenn es sich um Hardware handelt die ich 
nicht kenne.

Ansonsten melde dich mal im Arduino-Forum an. Da gibt es eine DE 
Abteilung und die Jungs da sind viel Besser als ich.

Wobei ich persönlich versuchen würde das System zu trennen und mit 
Standard-Routinen auszukommen. Also ohne Adafruits Zeug. Das würde 
bedeuten ich indiziere einen KEYPAD-Treiber und ein WS2812 Treiber. 
Beides gibt es wie Sand am Meer.

Der Keypad-Treiber ist für die Tasten da. Der  WS2812-Treiber für die 
Beleuchtung.

Wenn du besser wärst in den Materie (keine Beleidigung) würde ich dir 
sagen, tausche den Neopixel-Treiber (Treiber = Include) gegen ein 
anderen WS-2812 Treiber aus und teste das ganze.

Du darfst nie vergessen. Das ganze System ist auf Basteln und lernen 
ausgelegt (besonders an Schulen) und nicht für DAUS die etwas um 
schicken weil sie die Anleitung nicht lesen können. ;) Und ich finde 
genau DAS macht den Reiz aus. ;)

von Schlaumaier (Gast)


Lesenswert?

Schlaumaier schrieb:
> Wenn du besser wärst in den Materie (keine Beleidigung) würde ich dir
> sagen, tausche den Neopixel-Treiber (Treiber = Include) gegen ein
> anderen WS-2812 Treiber aus und teste das ganze.

Es geht bei dieser Aussage nicht darum das du eine andere Include 
machst, sondern das du dann den ganzen Code umschreiben musst.

Aber noch einmal. Das sind 2 verschiedene System auf der Platine die 
eigentlich NIX mit einander zu tun haben.

1. Das Keypad-System.  Das kann jeder lausige Keypad-Treiber ansteuern.
2. Das Beleuchtungssystem.  Das ist ein WS2812 System. Mache dich über 
das System = die Ansteuerung diese "LED" mal schlau.  Dann verstehst du 
was ich meine.

WS2812 (o.ä.) findest du in jeder LED-Farbsteuerungskette aus den 
Supermarkt mit Fernbedienung.  Die sind heutzutage nix besonders mehr. 
Sie sind etwas zickig (findest hier im Forum Beträge ohne ende zu) aber 
perfekt um Beleuchtungswünsche zu realisieren. ;)

von Chris S. (nos05)


Lesenswert?

Ok. Also kann ich das was ich jetzt verbaut habe auch damit nutzen wenn 
ich das richtig verstanden habe?
Ich muss mir halt "nur" die Codes zusammen basteln.
Bei Adafruit habe ich schon angefragt und das Problem geschildert. 
Kannst wohl Gedanken lesen? :)

von Chris S. (nos05)


Lesenswert?

Ok. Also das Keypad funktioniert einwandfrei. Die definierten Zahlen und 
Buchstaben werden auch so im Monitor angezeigt.
Das war natürlich einfach! Hatte es die ganze Zeit richtig eingegeben, 
aber der Fehler scheint am Code von Adafruit zu liegen. Das waren jetzt 
einige Tage für Nüsse :(

Jetzt geht es weiter. Nun müssen diese Tasten die RGBs zugewiesen 
bekommen.
Bisher habe ich aber nur Lichterketten gefunden und ich muss einzelne 
RGBs ansteuern können.

von Schlaumaier (Gast)


Lesenswert?

Hier ist eine Anleitung für die Ansteuerung für die LED's.

https://funduino.de/nr-17-ws2812-neopixel

Es gibt mit Sicherheit auch noch andere Lib's.  Aber die 
Adafruit-Neopixel lib ist dominant.

Aber schön das die die erste Hälfte der Aufgabe (inkl. Rückmeldung im 
Monitor) hinbekommen hast.

So langsam wird das was, und du lernst sogar was.

von Schlaumaier (Gast)


Lesenswert?

Kleiner Nachtrag:

https://www.youtube.com/watch?v=UVISnxXh_VY

Ist im Prinzip das selbe wie dein Keyboard.

Du musst nur den Datenpin angeben, dafür sorgen das die Kette genug Saft 
hat (Notfalls extern versorgen) und im Programm-Befehl sagen wie welche 
LED leuchten soll.

Vorher nur sagen wie lang die Kette ist.

Du hast eine Kette !!!! die liegt nur komisch unter den Tasten rum ;)

von Chris S. (nos05)


Lesenswert?

Oh danke für die Sachen!
Werde ich mir reinziehen und mal sehen ob ich es hin bekomme.
Übrigens hatte ich schon solche Neopixel WS2812 gesucht aber dort ging 
es immer um define Pin x und define Pin y für irgendwelche Daten.
Andere Anleitungen hatten RGB aber dann wurden dort die Farben einzeln 
am Pin angesteuert. Konnte mir davon nichts ableiten.

Das hier sieht aber gut aus. :)

von Schlaumaier (Gast)


Lesenswert?

gugg Video an.

Du brauchst SAFT (+ u. -) und EINE Datenleitung. Reicht völlig aus.

Du brauchst nur die Anzahl der LED's angeben. In deinen Code NUM_PIXEL

#define NEOPIXEL_PIN 6  ' Pin an den die Datenleitung angeschlossen ist.

#define NUM_PIXELS (4 * 5)   <- Anzahl der LED's

Das ist alles.

Wie gesagt. Die sind manchmal zickig, und dir geht schnell der Saft aus, 
deshalb hat der in den Video auch eine Externe Versorgung. Aber 
ansonsten sind die fein.

Chris S. schrieb:
> Übrigens hatte ich schon solche Neopixel WS2812

Die bekommst du bei Ebay an jeder Ecke.

Aber du solltest 2 Bedingungen beachten.

1. Das sie die Spannung deines Board haben. !!  (Meist 5 Volt), es gibt 
auch welche die 12 V brauchen.

2. Das sie nach JEDER Led mit einer Schere durch zu schneiden sind.
Man muss ja nicht, aber wenn es nicht passt sieht es so besser aus. 
Davon abgesehen kann man sie dann leichter verlegen.

Gib einfach "Arduino und WS2812B (neueres Modell) ein.

von Chris S. (nos05)


Lesenswert?

Ich bin schon am LEDs sortieren und die Farben stelle ich auch schon 
ein.
Bin also auf Zack gerade.
Jetzt muss ich nur noch wissen wie ich da gleich die Taste so steuer, 
das sie bei weiß bleibt und bei erneutem Druck auf die eingestellte 
Farbe zurück geht. Dann bin ich schon fertig.
Bilder gibts dann natürlich auch

von Chris S. (nos05)


Lesenswert?

Habe die Farben jetzt erst einmal sortiert. Nach Spalten so wie ich das 
für mich in der Matrix auch darstellen möchte.
Leider sind die Neopixel ja nicht der Reihe nach geschaltet. Musste also 
etwas herum probieren. Jetzt läuft das JUHU

Morgen gucke ich dann mal ob ich die Tasten zum umschalten bekomme.

von Schlaumaier (Gast)


Lesenswert?

Na fein. Dann wird das ja langsam was.


Chris S. schrieb:
> Morgen gucke ich dann mal ob ich die Tasten zum umschalten bekomme.

Dein Programm muss den Status der Taste wissen. Die einfachste Methode 
ist eine Variable je Taste zu setzen.

Entweder über ein Array oder einzeln. Hier im Beispiel ist es eine 
Varible je Taste = Status_taste_1 für Taste 1.  Das geht auch mit 
weniger Code einfacher über ein Array. Aber dazu musst du erst mal Array 
verstehen lernen ;) und nicht nur benutzen. Weil DAS machst du mit den 
Code ja.

Einzeln ist altmodisch und hässlich aber funktioniert. ;)

Wenn du nur 2 Zustände brauchst reicht es die Variable BOOLEAN zu 
definieren und den Status festzulegen. z.B.  Aus / EIN.

Dann am Start den Zustand und den Status setzen. z.b.

Status_taste_1 = false ' led aus

Bei der Abfrage machst du dann
  if status_taste_1 = false then
    status_taste_1 = true
    und via Befehl die passende Farbe setzen
else
    status_taste_1 = false
    und via Befehl die LED ausschalten bzw. die passende Farbe setzen
  end if


Das ist Basic-Code und nur zur logischen Erklärung. Musst du in den 
C-Code umwandeln.


Wenn du mehr als 2 Zustände brauchst, musst du die Variable der Taste 
z.b. als Integer definieren und die if-then Abfrage anpassen.

Eine alternative zu if /then ist Switch-Case.

https://www.arduino.cc/reference/de/language/structure/control-structure/switchcase/

Must du dich mal schlau lesen.

Wie hast du denn das Ring-Problem gelöst ??

von Chris S. (nos05)


Lesenswert?

Ok. Ich gucke mal das ich das umgeschrieben bekomme. Danke.
Das Ring Problem habe ich gelst, da ich es gar nicht verwendet habe.
Habe lediglich Testkeypad und den Code von deinem Link zusammen 
gemischt.
Nicht wundern. Die Farben entsprechen exakt dem wie es sein soll. :)
Mein Code sieht aktuell so aus:
1
#include <SimpleKeypad.h>
2
#include <Adafruit_NeoPixel.h>
3
#ifdef __AVR__
4
#include <avr/power.h>
5
#endif
6
#define PIN 6
7
#define NUMPIXELS 20
8
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
9
10
int pause=100; // 100 Millisekunden Pause bis zur Ansteuerung der nächsten LED.
11
12
const byte nb_rows = 4;                         // four rows
13
const byte nb_cols = 5;                         // four columns
14
char key_chars[nb_rows][nb_cols] = {            // The symbols of the keys
15
  {'1', '2', '3', '4', '5'},
16
  {'6', '7', '8', '9', 'A'},
17
  {'B', 'C', 'D', 'E', 'F'},
18
  {'G', 'H', 'I', 'J', 'K'}
19
};
20
byte rowPins[nb_rows] = {2, 3, 4, 5};
21
byte colPins[nb_cols] = {7, 8, 9, 10, 11};
22
23
SimpleKeypad kp1((char*)key_chars, rowPins, colPins, nb_rows, nb_cols);   // New keypad called kp1
24
25
void setup() {
26
  Serial.begin(9600);
27
  Serial.println("Press any key on the keypad and it will show up here :");
28
  pixels.begin(); // Initialisierung der NeoPixel
29
}
30
31
void loop() {
32
  char key = kp1.getKey();                      // The getKey function scans the keypad every 10 ms and returns a key only one time, when you start pressing it
33
  if (key) {                                    // If getKey returned any key
34
    Serial.println(key);                        // it is printed on the serial monitor
35
36
pixels.setPixelColor(0, pixels.Color(0,255,255));
37
pixels.show(); // Durchführen der Pixel-Ansteuerung
38
delay (pause); // Pause, in dieser Zeit wird nichts verändert.   
39
pixels.setPixelColor(9, pixels.Color(0,255,255));
40
pixels.show(); // Durchführen der Pixel-Ansteuerung
41
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
42
pixels.setPixelColor(10, pixels.Color(0,255,255));
43
pixels.show(); // Durchführen der Pixel-Ansteuerung
44
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
45
pixels.setPixelColor(19, pixels.Color(0,255,255));
46
pixels.show(); // Durchführen der Pixel-Ansteuerung
47
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
48
49
pixels.setPixelColor(1, pixels.Color(255,255,0));
50
pixels.show(); // Durchführen der Pixel-Ansteuerung
51
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
52
pixels.setPixelColor(8, pixels.Color(255,255,255));
53
pixels.show(); // Durchführen der Pixel-Ansteuerung
54
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
55
pixels.setPixelColor(11, pixels.Color(255,255,255));
56
pixels.show(); // Durchführen der Pixel-Ansteuerung
57
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
58
pixels.setPixelColor(18, pixels.Color(0,255,0));
59
pixels.show(); // Durchführen der Pixel-Ansteuerung
60
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
61
62
pixels.setPixelColor(2, pixels.Color(255,255,255)); //
63
pixels.show(); // Durchführen der Pixel-Ansteuerung
64
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
65
pixels.setPixelColor(7, pixels.Color(0,255,0)); //
66
pixels.show(); // Durchführen der Pixel-Ansteuerung
67
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
68
pixels.setPixelColor(12, pixels.Color(0,255,0)); //
69
pixels.show(); // Durchführen der Pixel-Ansteuerung
70
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
71
pixels.setPixelColor(17, pixels.Color(0,255,255)); //
72
pixels.show(); // Durchführen der Pixel-Ansteuerung
73
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
74
75
pixels.setPixelColor(3, pixels.Color(0,0,0)); //
76
pixels.show(); // Durchführen der Pixel-Ansteuerung
77
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
78
pixels.setPixelColor(6, pixels.Color(0,0,0)); //
79
pixels.show(); // Durchführen der Pixel-Ansteuerung
80
delay (pause); // Pause, in dieser Zeit wird nichts verändert. 
81
pixels.setPixelColor(13, pixels.Color(0,0,0)); //
82
pixels.show(); // Durchführen der Pixel-Ansteuerung
83
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
84
pixels.setPixelColor(16, pixels.Color(0,0,0)); //
85
pixels.show(); // Durchführen der Pixel-Ansteuerung
86
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
87
88
pixels.setPixelColor(4, pixels.Color(0,255,255));
89
pixels.show(); // Durchführen der Pixel-Ansteuerung
90
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
91
pixels.setPixelColor(5, pixels.Color(255,255,255));
92
pixels.show(); // Durchführen der Pixel-Ansteuerung
93
delay (pause); // Pause, in dieser Zeit wird nichts verändert.    
94
pixels.setPixelColor(14, pixels.Color(255,255,255));
95
pixels.show(); // Durchführen der Pixel-Ansteuerung
96
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
97
pixels.setPixelColor(15, pixels.Color(0,255,255));
98
pixels.show(); // Durchführen der Pixel-Ansteuerung
99
delay (pause); // Pause, in dieser Zeit wird nichts verändert.
100
101
  }
102
}

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.