INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Suche Hile bei Medien-Modul-Bau
05.02.2019, 14:05 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2019 14:08 von mc big d.)
Beitrag #1
Suche Hile bei Medien-Modul-Bau
Hallo zusammen,

ich möchte ein Modul bauen, mit dem ich dann zb. Windows Mediaplayer, Streaming-Software, usw. steuern kann.

Hierfür stehen 11 Taster sowie ein Roteryencoder inkl Taster bereit.


Bauteil und für was es zuständig ist:

Taster 1 Windows Mediaplayer
Taster 2 Winamp
Taster 3 Discord
Taster 4 Teamspeak
Taster 5 Botsoftware
Taster 6 Musikstreamingdienst
Taster 7 Zurück
Taster 8 Play
Taster 9 Pause
Taster 10 Stop
Taster 11 Vorwärts
Taster 12 Aus/ Mute ALL
Roteryencoder links rum leise rechts rum laut

Beispiel:

Ich Spiele gerade ein Spiel am PC und habe im Hintergrund den Windows Mediaplayer offen. Drücke jetzt auf Taster 1, um das Programm an zu wählen. Nun möchte ich mit den Mediatastern die Software steuern.

Nun möchte ich aber in Winamp eine hinterlegte Playlist spielen. Da das Programm noch nicht offen ist, drücke ich Taster 2, um es zu öffnen. Das Programm öffnet sich und ich möchte auch hier, wie zuvor im Mediaplayer auch, mit den Mediatasten alles Steuern.

Sollte jetzt aber zb. das Programm schon im Hintergrund offen sein, so soll es nach dem Tastendruck nicht nochmal aufgehen sondern nun in den Vordergrund geschoben werden. Anschliesend möchte ich es mit den Mediatasten steuern können.

Der Roteryencoder soll hierbei immer das Windows Mastervolumen steuern (Vol up/down/mute).


Hat jemand sinnvolle Ansätze oder Ideen dafür?


Ich packe Morgen noch den Ansatz von mir rein, möchte aber erstmal schauen ob meine Ansätze falsch waren, oder mit euren in die gleiche Richtung gehen. Damit soll erstmal alles offen gehalten werden und nicht zuviel ausgegrenzt werden.

Generell habe ich aber mit

.bat Datei
Keyboard.h
FastLED.h
RotaryEncoder.h

angefangen, aber komme nicht so recht weiter, was das Software aufrufen bzw. in den vordergrund holen betrifft.


Lg

Dee

Der bisherige unvollständige bzw teilfunktionierende Code

[/code]
Code:
#include <Keyboard.h>
#include <FastLED.h>
#define LED_PIN     9
#define NUM_LEDS    10
#define BUTTON_KEY1 97
#define BUTTON_KEY2 98
#define BUTTON_KEY3 99
#define BUTTON_KEY4 100
#define BUTTON_KEY5 101
#define BUTTON_KEY6 102
CRGB leds[NUM_LEDS];

const int buttonPin1 = 2;
const int buttonPin2 = 4;
const int buttonPin3 = 5;
const int buttonPin4 = 6;
const int buttonPin5 = 7;
const int buttonPin6 = 8;

int merker1 = 0;
int merker2 = 0;
int merker3 = 0;
int merker4 = 0;
int merker5 = 0;
int merker6 = 0;

int buttonState1;
int buttonState2;
int buttonState3;
int buttonState4;
int buttonState5;
int buttonState6;

int lastButtonState1 = LOW;
int lastButtonState2 = LOW;
int lastButtonState3 = LOW;
int lastButtonState4 = LOW;
int lastButtonState5 = LOW;
int lastButtonState6 = LOW;

unsigned long lastDebounceTime1 = 0;
unsigned long lastDebounceTime2 = 0;
unsigned long lastDebounceTime3 = 0;
unsigned long lastDebounceTime4 = 0;
unsigned long lastDebounceTime5 = 0;
unsigned long lastDebounceTime6 = 0;

unsigned long debounceDelay = 50;

void setup() {

  Serial.begin(9600);
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);
  pinMode(buttonPin4, INPUT);
  pinMode(buttonPin5, INPUT);
  pinMode(buttonPin6, INPUT);

  FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
  Keyboard.begin();
}

void loop() {

  //*********************Taster 1******************************

  int reading1 = digitalRead(buttonPin1);
  if (reading1 != lastButtonState1) {
    lastDebounceTime1 = millis();
  }
  if ((millis() - lastDebounceTime1) > debounceDelay) {
    if (reading1 != buttonState1) {
      buttonState1 = reading1;
      int reading = digitalRead(buttonPin1);
      if ((buttonState1 == HIGH) && (merker1 == 2)) {
        lastDebounceTime1 = millis();
        leds[0] = 0x00FF00;
        FastLED.show();
        Keyboard.press(BUTTON_KEY1);
        Keyboard.releaseAll();
        merker1 = 1;
      }
      else if ((buttonState1 == HIGH) && (merker1 == 1))
      {
        leds[0] = 0xFF0000;
        FastLED.show();
        Keyboard.press(BUTTON_KEY1);
        Keyboard.releaseAll();
        merker1 = 0;
      }
    }
  }
  else if ((buttonState1 == LOW) && (merker1 == 0))
  {
    leds[0] = 0xFF0000;
    FastLED.show();
    merker1 = 2;
  }
  lastButtonState1 = reading1;

    //*********************Taster 2******************************

    int reading2 = digitalRead(buttonPin2);
    if (reading2 != lastButtonState2) {
      lastDebounceTime2 = millis();
    }
    if ((millis() - lastDebounceTime2) > debounceDelay) {
      if (reading2 != buttonState2) {
        buttonState2 = reading2;
        int reading2 = digitalRead(buttonPin2);
        if ((buttonState2 == HIGH) && (merker2 == 2)) {
          lastDebounceTime2 = millis();
          leds[1] = 0x00FF00;
          FastLED.show();
          Keyboard.press(BUTTON_KEY2);
          Keyboard.releaseAll();
          merker2 = 1;
        }
        else if ((buttonState2 == HIGH) && (merker2 == 1))
        {
          leds[1] = 0xFF0000;
          FastLED.show();
          Keyboard.press(BUTTON_KEY2);
          Keyboard.releaseAll();
          merker2 = 0;
        }
      }
    }
    else if ((buttonState2 == LOW) && (merker2 == 0))
    {
      leds[1] = 0xFF0000;
      FastLED.show();
      merker2 = 2;
    }
    lastButtonState2 = reading2;

    //*********************Taster 3******************************

    int reading3 = digitalRead(buttonPin3);
    if (reading3 != lastButtonState3) {
      lastDebounceTime3 = millis();
    }
    if ((millis() - lastDebounceTime3) > debounceDelay) {
      if (reading3 != buttonState3) {
        buttonState3 = reading3;
        int reading3 = digitalRead(buttonPin3);
        if ((buttonState3 == HIGH) && (merker3 == 2)) {
          lastDebounceTime3 = millis();
          leds[2] = 0x00FF00;
          FastLED.show();
          Keyboard.press(BUTTON_KEY3);
          Keyboard.releaseAll();
          merker3 = 1;
        }
        else if ((buttonState3 == HIGH) && (merker3 == 1))
        {
          leds[2] = 0xFF0000;
          FastLED.show();
          Keyboard.press(BUTTON_KEY3);
          Keyboard.releaseAll();
          merker3 = 0;
        }
      }
    }
    else if ((buttonState3 == LOW) && (merker3 == 0))
    {
      leds[2] = 0xFF0000;
      FastLED.show();
      merker3 = 2;
    }
    lastButtonState3 = reading3;

    //*********************Taster 4******************************

    int reading4 = digitalRead(buttonPin4);
    if (reading4 != lastButtonState4) {
      lastDebounceTime4 = millis();
    }
    if ((millis() - lastDebounceTime4) > debounceDelay) {
      if (reading4 != buttonState4) {
        buttonState4 = reading4;
        int reading4 = digitalRead(buttonPin4);
        if ((buttonState4 == HIGH) && (merker4 == 2)) {
          lastDebounceTime4 = millis();
          leds[3] = 0x00FF00;
          FastLED.show();
          Keyboard.press(BUTTON_KEY4);
          Keyboard.releaseAll();
          merker4 = 1;
        }
        else if ((buttonState4 == HIGH) && (merker4 == 1))
        {
          leds[3] = 0xFF0000;
          FastLED.show();
          Keyboard.press(BUTTON_KEY4);
          Keyboard.releaseAll();
          merker4 = 0;
        }
      }
    }
    else if ((buttonState4 == LOW) && (merker4 == 0))
    {
      leds[3] = 0xFF0000;
      FastLED.show();
      merker4 = 2;
    }
    lastButtonState4 = reading4;

    //*********************Taster 5******************************

    int reading5 = digitalRead(buttonPin5);
    if (reading5 != lastButtonState5) {
      lastDebounceTime5 = millis();
    }
    if ((millis() - lastDebounceTime5) > debounceDelay) {
      if (reading5 != buttonState5) {
        buttonState5 = reading5;
        int reading5 = digitalRead(buttonPin5);
        if ((buttonState5 == HIGH) && (merker5 == 2)) {
          lastDebounceTime5 = millis();
          leds[4] = 0x00FF00;
          FastLED.show();
          Keyboard.press(BUTTON_KEY5);
          Keyboard.releaseAll();
          merker5 = 1;
        }
        else if ((buttonState5 == HIGH) && (merker5 == 1))
        {
          leds[4] = 0xFF0000;
          FastLED.show();
          Keyboard.press(BUTTON_KEY5);
          Keyboard.releaseAll();
          merker5 = 0;
        }
      }
    }
    else if ((buttonState5 == LOW) && (merker5 == 0))
    {
      leds[4] = 0xFF0000;
      FastLED.show();
      merker5 = 2;
    }
    lastButtonState5 = reading5;

    //*********************Taster 6******************************

    int reading6 = digitalRead(buttonPin6);
    if (reading6 != lastButtonState6) {
      lastDebounceTime6 = millis();
    }
    if ((millis() - lastDebounceTime6) > debounceDelay) {
      if (reading6 != buttonState6) {
        buttonState6 = reading6;
        int reading6 = digitalRead(buttonPin6);
        if ((buttonState6 == HIGH) && (merker6 == 2)) {
          lastDebounceTime6 = millis();
          leds[5] = 0x00FF00;
          FastLED.show();
          Keyboard.press(BUTTON_KEY6);
          Keyboard.releaseAll();
          merker6 = 1;
        }
        else if ((buttonState6 == HIGH) && (merker6 == 1))
        {
          leds[5] = 0xFF0000;
          FastLED.show();
          Keyboard.press(BUTTON_KEY6);
          Keyboard.releaseAll();
          merker6 = 0;
        }
      }
    }
    else if ((buttonState6 == LOW) && (merker6 == 0))
    {
      leds[5] = 0xFF0000;
      FastLED.show();
      merker6 = 2;
    }
    lastButtonState6 = reading6;

  leds[6] = 0x0000FF;
  FastLED.show();
  leds[7] = 0x0000FF;
  FastLED.show();
  leds[8] = 0x0000FF;
  FastLED.show();
  leds[9] = 0x0000FF;
  FastLED.show();
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.02.2019, 16:50
Beitrag #2
RE: Suche Hile bei Medien-Modul-Bau
Auch hier wieder die Frage, wo möchtest Du denn in Zukunft die Antworten haben?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.02.2019, 17:05
Beitrag #3
RE: Suche Hile bei Medien-Modul-Bau
Und auch hier.

Das ist mir generell egal, hauptsache es geht Vorwärts. Aber danke, dass du so besorgt bist. Wenn du willst, setz dich neben mich, dann können wir noch mehr raussuchen! gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.02.2019, 16:53
Beitrag #4
RE: Suche Hile bei Medien-Modul-Bau
@mc big d
Moin,
ich denke mal, ich bin hier im Forum nicht so ganz unbekannt und gehe kooperativ und achtungsvoll mit den User/innen um.
Das mal vorausgesetzt, und der Tatsache geschuldet, dass ich deinen Thread hier gelesen habe, erlaube ich mir mal zu sagen, dass dein Auftreten ziemlich arrogant ist (vorsichtig ausgedrückt). Ich glaube so was will hier keiner haben.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.02.2019, 18:27
Beitrag #5
RE: Suche Hile bei Medien-Modul-Bau
Hey Ricardo,

das kann durch aus sein, das irgendwann eine gewisse Art kommt. Was aber in jedem fall als Reaktion auf eine Aktion kommt. Von daher würde ich eher mal nach dem warum Fragen bzw. den jenigen der meint er müsse hier den dicken raus hängen lassen. Aber als nicht ganz unbekannter, wirst du ja wohl auch einige Post gemacht und damit auch einige gelesen haben. Somit sollte dir dieses Verhalten von gewissen Personen auch bekannt vorkommen, welchesn in 90 Prozent der Beiträge an den Tag gelegt wird.

Aber hey, weil die es ja immer so machen und ein neuer niemals recht hat, ist diese Diskussion sinnfrei. Zumindestens in diesem Forum.

Lg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Tongue GSM Modul - Nur erste SMS geht raus Haukini 3 513 24.03.2019 14:04
Letzter Beitrag: hotsystems
  suche kostenlose komfortable IDE sepp01 12 1.807 04.10.2018 23:24
Letzter Beitrag: georg01
  Ethernet Modul Enc28j60 Pin13 LED Schalten BennIY 17 5.177 26.09.2018 16:57
Letzter Beitrag: Tommy56
  Array mit 433MHz-Modul versenden Matthias_Arduino 14 2.025 22.08.2018 15:20
Letzter Beitrag: hotsystems
  HC06 Bluetooth Modul & App Flap 1 1.244 25.11.2017 01:20
Letzter Beitrag: georg01
  Suche Hilfe für den Fehler in der Datei Holzwurm56 5 1.420 01.11.2017 14:26
Letzter Beitrag: Holzwurm56
  Schrittmotor Geschwindigkeit mit Wägezelle + HX711 Modul steuern Schrittmotor 10 3.995 30.08.2017 23:45
Letzter Beitrag: hotsystems
  Zahl von SD-Card Modul einlesen und Var. zuweisen Nafetz 13 4.722 28.10.2016 10:12
Letzter Beitrag: hotsystems
  Empfange nur "Geister"zeichen vom BT-Modul dabbamonkeyyy 2 1.153 23.10.2016 11:34
Letzter Beitrag: Harry Hirsch
  HC 05 BT Modul Lolliball 1 1.115 16.10.2016 09:43
Letzter Beitrag: Lolliball

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste