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
Hilfe! Arduino Leonardo programmieren - Tastatur Simulation
12.11.2015, 16:43 (Dieser Beitrag wurde zuletzt bearbeitet: 12.11.2015 18:29 von noxx.)
Beitrag #1
Hilfe! Arduino Leonardo programmieren - Tastatur Simulation
Hallo,
kann mir mal einer helfen bei meinem Code?

Ich möchte folgendes:
Taster 1 an PIN 2 - Drücken = Keyboard Taste (100) auslösen
Taster 2 an Pin 3 - Drücken = Keyboard Taste (101) auslösen
Taster 3 an Pin 4 - Drücken kurz = Keyboard Taste (102) auslösen
Taster 3 an Pin 4 - Drücken lang = Keyboard Taste (103) auslösen

Leider scheint der Code für Taster 3 nicht sauber zu sein.
Es wird nach ca 1,5s beide Tasten (102) & (103) ausgelöst, egal
in ich kurz oder lang drücke Huh

Code:
#include <Keyboard.h>

int buttonStateLeftRE1;
int buttonStateRightRE1;
int buttonStateButtonRE1;

int timer1 = 0;


void setup()
{    
    pinMode(2, INPUT);
    pinMode(3, INPUT);
    pinMode(4, INPUT);
    digitalWrite(4, LOW);
  
    Keyboard.begin();
}

void loop()
{
//    -------------------------------------------------- Encoder 1
    
    buttonStateLeftRE1 = digitalRead(2);            // Encoder 1: Drehe Links
    if (buttonStateLeftRE1 == HIGH)
    {
        Keyboard.press(100);
        delay(100);
        Keyboard.releaseAll();
    }

    buttonStateRightRE1 = digitalRead(3);            // Encoder 1: Drehe Rechts
    if (buttonStateRightRE1 == HIGH)
    {
        Keyboard.press(101);
        delay(100);
        Keyboard.releaseAll();
    }
    
    buttonStateButtonRE1 = digitalRead(4);            // Encoder 1: Drücke Button
    if(buttonStateButtonRE1 == HIGH)
    {
      while(buttonStateButtonRE1 == HIGH)            // Bleibe in Schleife, solange Button 1 gedrückt wird
      {
          delay(100);
          timer1 = 1;
          delay(1500);
          buttonStateButtonRE1 = digitalRead(4);
          timer2 = 2;
          buttonStateButtonRE1 = digitalRead(4);
      }
    }
    
    if (timer1 == 1)
    {  
        Keyboard.press(102);
        delay(100);
        Keyboard.releaseAll();
        timer1 = 0;
        }
        
    if (timer1 == 2)
    {  
        Keyboard.press(103);
        delay(100);
        Keyboard.releaseAll();
        timer1 = 0;
    }

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.11.2015, 14:46
Beitrag #2
RE: Hilfe! Arduino Leonardo programmieren - Tastatur Simulation
Kann hier keiner helfen?

Habe ja schon den Hinweis, das die Lösung in diesen beiden
Beispielen steckt:
https://www.arduino.cc/en/Tutorial/StateChangeDetection
https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

Aber ich weiß noch nicht, wie ich damit die Funktion auf den Taster 3
anwenden kann....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.11.2015, 15:45
Beitrag #3
RE: Hilfe! Arduino Leonardo programmieren - Tastatur Simulation
Hallo,

die Zeile:
Code:
timer2 = 2;
verursacht doch eine Fehlermeldung des Compilers ???

Und du weißt sicher auch dass ein delay() die Abarbeitung des gesamten Codes für die eingestellte Zeit unterbricht.
In der Zeit während ein delay() läuft werden also auch keine Eingänge/Tasten mehr abgefragt.

Gruß
Arne

Gruß Arne
ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.11.2015, 17:15 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2015 17:16 von noxx.)
Beitrag #4
RE: Hilfe! Arduino Leonardo programmieren - Tastatur Simulation
Fehlermeldungen gibt es keine. timer2 = 2 läuft durch.

Habe die beiden Beispielcodes getestet, komme aber damit nicht weiter. Es fehlt
mir leider an Erfahrung mit C/C++.

Vielleicht kann mir einer den Code schreiben für den Taster 3,

also
Taster 3 kurz gedrückt (<1500ms) --> schreibe Taste X
Taster 3 lang gedrückt (>= 1500ms) ---> schreibe Taste Y

Auslösen müsste er ja dann, wenn die Taste 3 losgelassen wird.

Stehe echt auf dem Schlauch.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Sad Hilfe bei 2.4 TFT Display Harry Hirsch 56 2.560 Gestern 22:07
Letzter Beitrag: hotsystems
  Arduino Mega2560 bitte um Hilfe dickys68 6 274 Gestern 00:27
Letzter Beitrag: avoid
  Arduino Hilfe im Raum Köln/Düsseldorf dickys68 0 88 25.05.2018 12:17
Letzter Beitrag: dickys68
  MIDI Kontroller programmieren Baimie 9 312 16.05.2018 09:12
Letzter Beitrag: Tommy56
  hilfe bei callback ausgabe per knopfdruck merz 5 243 15.04.2018 14:16
Letzter Beitrag: Tommy56
  Programmieren, welche Software ist möglich W-P-Grimma 5 484 03.04.2018 16:33
Letzter Beitrag: Tommy56
  Hilfe bei Fehlermeldung TroyPan 3 350 23.03.2018 23:38
Letzter Beitrag: Tommy56
  Hilfe beim skript Devtris 24 1.369 12.03.2018 18:19
Letzter Beitrag: Tommy56
  Hilfe bei einen kleinen Programm FPV 9 947 11.03.2018 20:42
Letzter Beitrag: Tommy56
  Hilfe beim Programmieren Klawino 28 1.669 10.03.2018 13:36
Letzter Beitrag: hotsystems

Gehe zu:


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