Hallo zusammen,
ich (Anfänger mit minimalem Basiswissen) bin dabei, mir ein Modul zu bauen, welches die Tasten a, b, c, d, e und f ausgeben soll.
Zudem sollen die RGB LEDs 1, 2, 3, 4, 5 und 6 den Zustand des dazu gehörigen Tasters anzeigen.
(rot bis gedrückt - dann wenn gedrückt wechsel auf grün - grün bis Taster wieder gedrückt wird - wenn wieder gedrückt wechsel auf rot)
Weiterhin sollen 6 weitere WS2812B einen zugewiesenen Farbcode wiedergeben.
Bis jetzt habe ich die Ausgabe der Buchstaben und das entprellen hin bekommen.
Zu meinen Fragen:
Welche Lib ist zu empfehlen?
Welcher Code zb if else oder if else while usw wäre da am besten geeignet?
Nachfolgend der Code, den ich bis jetzt gemacht habe, mit kleinen Erklärungen:
#include <Keyboard.h>
int Taste1 = 0; //Taste 1 soll ein (a) ausgeben und WS2812B 1 den zustand anzeigen
int Taste2 = 0; //Taste 2 soll ein (b) ausgeben und WS2812B 2 den zustand anzeigen
int Taste3 = 0; //Taste 3 soll ein (c) ausgeben und WS2812B 3 den zustand anzeigen
int Taste4 = 0; //Taste 4 soll ein (d) ausgeben und WS2812B 4 den zustand anzeigen
int Taste5 = 0; //Taste 5 soll ein (e) ausgeben und WS2812B 5 den zustand anzeigen
int Taste6 = 0; //Taste 6 soll ein (f) ausgeben und WS2812B 6 den zustand anzeigen
void setup ()
{
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(A0, INPUT);
Keyboard.begin();
}
void loop(){
// Das setzen des Buchstabens funktioniert es fehlen die LED funktionen
// Taste 1 ist nicht betätigt WS2812B RGB LED 1 ist auf rot
// Taste 1 ist betätigt und gibt den Buchstaben "a" aus WS2812B RGB LED 1 wechslt von rot auf gruen
// WS2812B RGB LED 1 bleibt auf gruen bis Taste 1 wieder betätigt wird
// Wenn dann Tsste 1 wieder betätigt wird startet das ganze von vorn
Taste1 = digitalRead(3);
if (Taste1 == HIGH)
{
Keyboard.press(97);
delay(500);
Keyboard.releaseAll();
}
// Taste 2 ist nicht betätigt WS2812B RGB LED 2 ist auf rot
// Taste 2 ist betätigt und gibt den Buchstaben "b" aus WS2812B RGB LED 2 wechslt von rot auf gruen
// WS2812B RGB LED 2 bleibt auf gruen bis Taste 2 wieder betätigt wird
// Wenn dann Tsste 2 wieder betätigt wird startet das ganze von vorn
Taste2 = digitalRead(4);
if (Taste2 == HIGH)
{
Keyboard.press(98);
delay(500);
Keyboard.releaseAll();
}
// Taste 3 ist nicht betätigt WS2812B RGB LED 3 ist auf rot
// Taste 3 ist betätigt und gibt den Buchstaben "c" aus WS2812B RGB LED 3 wechslt von rot auf gruen
// WS2812B RGB LED 3 bleibt auf gruen bis Taste 3 wieder betätigt wird
// Wenn dann Tsste 3 wieder betätigt wird startet das ganze von vorn
Taste3 = digitalRead(5);
if (Taste3 == HIGH)
{
Keyboard.press(99);
delay(500);
Keyboard.releaseAll();
}
// Taste 4 ist nicht betätigt WS2812B RGB LED 4 ist auf rot
// Taste 4 ist betätigt und gibt den Buchstaben "d" aus WS2812B RGB LED 4 wechslt von rot auf gruen
// WS2812B RGB LED 4 bleibt auf gruen bis Taste 4 wieder betätigt wird
// Wenn dann Tsste 4 wieder betätigt wird startet das ganze von vorn
Taste4 = digitalRead(6);
if (Taste4 == HIGH)
{
Keyboard.press(100);
delay(500);
Keyboard.releaseAll();
}
// Taste 5 ist nicht betätigt WS2812B RGB LED 5 ist auf rot
// Taste 5 ist betätigt und gibt den Buchstaben "e" aus WS2812B RGB LED 5 wechslt von rot auf gruen
// WS2812B RGB LED 5 bleibt auf gruen bis Taste 5 wieder betätigt wird
// Wenn dann Tsste 5 wieder betätigt wird startet das ganze von vorn
Taste5 = digitalRead(7);
if (Taste5 == HIGH)
{
Keyboard.press(101);
delay(500);
Keyboard.releaseAll();
}
// Taste 6 ist nicht betätigt WS2812B RGB LED 6 ist auf rot
// Taste 6 ist betätigt und gibt den Buchstaben "f" aus WS2812B RGB LED 6 wechslt von rot auf gruen
// WS2812B RGB LED 6 bleibt auf gruen bis Taste 6 wieder betätigt wird
// Wenn dann Tsste 6 wieder betätigt wird startet das ganze von vorn
Taste6 = digitalRead(A0);
if (Taste6 == HIGH)
{
Keyboard.press(102);
delay(500);
Keyboard.releaseAll();
}
// WS2812B RGB LED 7 bis 12 sollen über die nachfolgenden frei definierbaren Werte R 0-255, G 0-255, B 0-255 eingestellt werden können
{
leds[7] = CRGB(255, 0, 0);
FastLED.show();
delay(500);
leds[8] = CRGB(0, 255, 0);
FastLED.show();
delay(500);
leds[9] = CRGB(0, 0, 255);
FastLED.show();
delay(500);
leds[10] = CRGB(150, 0, 255);
FastLED.show();
delay(500);
leds[11] = CRGB(255, 200, 20);
FastLED.show();
delay(500);
leds[12] = CRGB(85, 60, 180);
FastLED.show();
delay(500);
}
}
Danke für die Hilfe
LG
Dee