LED Über PC Tastatur Steuern

Hallo zusammen nach dem mein erster beitrag in die Hose gegangen ist. Stelle ich hier alles noch mal neu dar.
Und zwar ich habe folgende sachen.
Arduino Uno R3
NZXT Hue 2 Controller
Eine Tastatur die am PC angeschlossen ist.
Der LED streifen den ich anteuern möchte hat folgende anschlüsse
5V/GND/DIN
Der NXZT Hue 2 Controller dient nur zur strom versorgung!
Ich habe an den Arduino Digital 6pin den DIN angeschlossen vom LED Streifen die farben so wie die Effecte sind über DIN jetzt steuerbar.
Das Problem das ich habe das ich Durch Drücken einer Taste möchte z.B.(ich Drücke T Farbe ändert sich auf Blau, ich Drücke L die Farbe ändert sich in Gelb usw.) leider habe ich keine informationen gefunden wo ich über eine eingabe am PC die Farbe über den Arduino ändern kann da man nur ein Program auf den Arduino Installieren kann und nicht direkt auch wäred des Betriebes die Farbe ändern kann wenn ich eine Beliebige taste (die natürlich mit der Jeweiligen Farbe belegt ist) drücke und so die Farben änder.

Hinweis: Der arduino ist dauerhaft am pc angeschlossen wird auch nicht mehr abgemacht das Program soll auch beim pc start automatich mit gestartet werden.
Die Effecte sind natürlich auch auf tasten belegt.
Als erstest wäre es gut wenn jemand weis wie ich abfragen kann ob auf mein pc T gedrückt wurden und wenn ja das der arduino dann die Farbe ändert.
Ich bedanke mich für Jede hilfe.

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Du kannst über den COM Port jegliche Zeichen bzw Zeichenfolgen übertragen.
Grüße Uwe

Indem Du ein PC-Programm dazu schreibst/nutzt.

Gruß Tommy

Also besteht die Möglichkeit das über dem COM Port eine abfrage gestartet werden kann ?
so das der Arduino dann sehen kann was gedrückt wurde

Nein, über den COM-Port kannst Du Zeichen an den Arduino senden, nicht die Tastatur abfragen.

Gruß Tommy

Ah so danke

Ein neuer Thread macht es auch nicht besser.
Wurde dir in Beitrag 12 und 19 beschrieben was dazu benötigt wird.
ARGB LED´s Software - International / Deutsch - Arduino Forum

ARGB LED´s Software - International / Deutsch - Arduino Forum

Welcher Typ?

Der TYP steht leider nicht Drauf

Der Typ ist doch wurscht in diesem Fall. Es geht doch um die Übertragung vom PC an den arduino.
Und dazu wurde schon alles gesagt.

Buchstaben im seriellen Monitor der IDE eingeben:
grafik

#include "FastLED.h"
#define PIN 6
#define NUM_LEDS 9
CRGB leds[NUM_LEDS];

volatile byte selectedEffect = 0;

void setup()
{
  Serial.begin(9600);
  Serial.println(F("\nStart"));
  FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS);
  FastLED.show();
}

void serialEvent()
{
  char c = Serial.read();
  if (c >= 'A' && c <= 'Z') 
  {
    selectedEffect = c - 'A';
    Serial.print(c);
    Serial.print('\t');
    Serial.println(selectedEffect);
  }
}

void loop() 
{
  switch (selectedEffect) 
  {
    case 0:      // nichts tun
        break;
    case 11:     // "l"
        FastLED.showColor(CRGB::Yellow);
        selectedEffect = 0;
        break;
    case 19:     // "t"
        FastLED.showColor(CRGB::Blue);
        selectedEffect = 0;
        break;
    default:
        FastLED.showColor(CRGB::Black);
        selectedEffect = 0;
        break;
  }
}

Ok danke

Der sendet erst was, wenn du die Enter-Taste drückst, und dann eine ganze Zeile.
Wenn jede Taste sofort gesendet werden soll, musst du rauskriegen, wie du das am PC hinkriegst.

choice ist bei Win 10 wieder an Bord.

Gruß Tommy

Ein schlaues Vögelchen zwitcherte mir zu, es ginge auch einfacher, na bitte:

#include "FastLED.h"
#define PIN 6
#define NUM_LEDS 9
CRGB leds[NUM_LEDS];

volatile char selectedEffect = '.';

void setup()
{
  Serial.begin(9600);
  Serial.println(F("\nStart"));
  FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS);
  FastLED.show();
}

void serialEvent()
{
  char c = Serial.read();
  if (c >= ' ') 
  {
    selectedEffect = c;
    Serial.print(c);
    Serial.print('\t');
    Serial.println(selectedEffect);
  }
}

void loop() 
{
  switch (selectedEffect) 
  {
    case '.':      // nichts tun
        break;
    case 'L':
        FastLED.showColor(CRGB::Yellow);
        selectedEffect = '.';
        break;
    case 'T':
        FastLED.showColor(CRGB::Blue);
        selectedEffect = '.';
        break;
    default:
        FastLED.showColor(CRGB::Black);
        selectedEffect = '.';
        break;
  }
}

Vielen vielen dank für die Hilfe

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.