26.04.2019, 18:08 (Dieser Beitrag wurde zuletzt bearbeitet: 26.04.2019, 19:47 von Gorathan.)
Da ich in meinen Projekten oftmals einen oder mehrere Taster verwende und ich zum entprellen nicht gleich eine "riesige" Library einbinden will, habe ich mal eine kleine PushButton-Klasse geschrieben. Die verbraucht nur wenig Speicher und hat doch alles, was ich so brauche (inkl. konfigurierbarer Tastenwiederholung).
Diese Klasse verwendet keine Interrupts!
Der Tastenzustand wird jedes Mal bei "Btn.pressed()" ausgelesen, was bedeutet, dass die Methode jedes Mal in der Loop-Funktion aufgerufen werden muss.
Und die Loop-Funktion darf nicht blockierend programmiert sein (was sich sowieso von selbst verstehen sollte). Delays unbedingt vermeiden!
Show ContentPushButton.h:
Code:
#ifndef PushButton_h
#define PushButton_h 1
#if (ARDUINO >= 100)
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
/****************************************************************************************************************
PushButton-Klasse zum entprellen von Tastern
Version: 1.0.0.1 (26.04.2019)
Autor: Thomas Stephan (Gorathan)
Homepage: https://forum.technik-hobby.de
PushButton-Parameter:
Anschluss-Pin (0...255)
Pinmodus (0 = INPUT, 1 = INPUT_PULLUP, Standard = 1)
Reaktion (0 = LOW-aktiv, 1 = HIGH-aktiv, Standard = 0)
Entprellzeit (0...255 in ms, Standard = 30)
Wiederholzeit (0...65535 in ms, Standard = 0 / keine Tastenwiederholung)
Verzoegerungszeit (0...65535 in ms, Standard = 500) bis zur ersten Tastenwiederholung
Im Anhang befindet sich noch ein Beispiel-Sketch für einen Arduino-Nano.
Hinweise:
Ich benutze für den Arduino die Arduino-IDE.
Für AutoIt benutze ich die aktuelle AutoIt-Version sowie SciTE4AutoIt3.
Eine Hilfe kann ich nur auf Basis dieser Software leisten.