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
  3-Achsen Beschleunigungssensor ADXL355 programmieren Alexuino 0 98 11.01.2017 15:41
Letzter Beitrag: Alexuino
  Leonardo futsch? kpc 7 197 14.12.2016 23:53
Letzter Beitrag: Tommy56
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 174 14.10.2016 21:40
Letzter Beitrag: hotsystems
Sad Ich brauche Hilfe Prosac 4 299 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 276 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 318 27.08.2016 18:23
Letzter Beitrag: Binatone
  ESP8266 Webserver Programmieren HDT 11 1.001 23.08.2016 13:28
Letzter Beitrag: HDT
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 503 22.08.2016 08:07
Letzter Beitrag: b3ta
  IDE 1.7.10 und Attiny programmieren Seewolf 7 546 06.08.2016 11:49
Letzter Beitrag: Seewolf
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 200 28.07.2016 16:30
Letzter Beitrag: Gandalf

Gehe zu:


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