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
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 121 14.10.2016 21:40
Letzter Beitrag: hotsystems
Sad Ich brauche Hilfe Prosac 4 233 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 249 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 285 27.08.2016 18:23
Letzter Beitrag: Binatone
  ESP8266 Webserver Programmieren HDT 11 767 23.08.2016 13:28
Letzter Beitrag: HDT
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 451 22.08.2016 08:07
Letzter Beitrag: b3ta
  IDE 1.7.10 und Attiny programmieren Seewolf 7 478 06.08.2016 11:49
Letzter Beitrag: Seewolf
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 181 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 543 06.07.2016 14:59
Letzter Beitrag: Binatone
  Hilfe beim Arduino Shield reimundko 6 458 05.06.2016 11:28
Letzter Beitrag: rpt007

Gehe zu:


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