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
  Kommandozeilen-Parser programmieren tollewurst 2 157 21.08.2017 22:15
Letzter Beitrag: georg01
  Ublox Neo 6M und Nextion ! Bitte um Hilfe. b3ta 19 820 13.07.2017 14:52
Letzter Beitrag: Tommy56
  Anfänger sucht erfahrene Hilfe Customizer 21 1.183 11.07.2017 21:37
Letzter Beitrag: Customizer
  Volume Up falscher Tastatur Hex-Code Maxi290997 7 422 03.07.2017 21:49
Letzter Beitrag: Maxi290997
  Bitte um Hilfe Arduino Nano-MAX7219-PIR_Sensor Opa_Klaus 35 1.535 20.05.2017 21:11
Letzter Beitrag: Opa_Klaus
  Optischenfüllstandsensor programmieren Freeed94 19 887 13.05.2017 08:03
Letzter Beitrag: Binatone
  Brauche Hilfe für meine Abfüllanlage/ millis() Slash96 8 578 10.05.2017 21:04
Letzter Beitrag: MicroBahner
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 841 29.04.2017 14:29
Letzter Beitrag: hotsystems
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.123 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Was optimiert der Kompiler/Optimaleres Programmieren da_user 3 334 14.04.2017 17:26
Letzter Beitrag: rkuehle

Gehe zu:


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