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

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
  Prüfung eines Drucksensors mit Hilfe des Arduino r4c3 3 107 Gestern 19:19
Letzter Beitrag: Tommy56
  Arduino als Tastatur Emulator Tom13 2 72 19.10.2017 13:04
Letzter Beitrag: Tom13
Photo Hilfe bei meinem Arduino Projekt Niklas 10 372 23.09.2017 21:05
Letzter Beitrag: Niklas
  Attiny45-20 programmieren PeterCrash 4 309 22.09.2017 20:49
Letzter Beitrag: Mathias
  ATtinys programmieren Thor Wallhall 11 744 14.09.2017 21:26
Letzter Beitrag: Thor Wallhall
  ATtiny13 mit der Arduino IDE 1.0.6 programmieren - geht das? Gelegenheitsbastler 5 2.717 11.09.2017 15:24
Letzter Beitrag: Mathias
  Kommandozeilen-Parser programmieren tollewurst 2 308 21.08.2017 22:15
Letzter Beitrag: georg01
  Ublox Neo 6M und Nextion ! Bitte um Hilfe. b3ta 19 1.090 13.07.2017 14:52
Letzter Beitrag: Tommy56
  Anfänger sucht erfahrene Hilfe Customizer 21 1.417 11.07.2017 21:37
Letzter Beitrag: Customizer
  Volume Up falscher Tastatur Hex-Code Maxi290997 7 517 03.07.2017 21:49
Letzter Beitrag: Maxi290997

Gehe zu:


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