Hallo zusammen, ich habe alles gelesen und "unit8_t" erst einmal gegooglet, aber eigendlich brauche ich doch nur 1 oder 2 Zeilen und dann müßte es doch laufen.
Eine Zeile im Hauptprogramm, daß ich die LED Pin 26 abfragen kann oder 2 Zeilen, im Unterprogramm den "ein_speicher" ausgeben und im Hauptprgramm abfragen. Das mit dem ESP32 ist keine schlechte Idee gewesen, da es ihn gleich mit Display gibt, da würden sich, bei meinem Wissensstand aber andere Probleme ergeben. Mein Programm funktioniert ja soweit und was wichtiger ist, ich verstehe was da steht. Das ist mir wichtiger, als ein Programm zu "kupfern", welches funktioniert, aber ich nicht weiß, was darin passiert.
Das Programm ist jetzt eingekürzt, wegen der Übersichtlichkeit.
Hauptprogramm:
#include "FlipFlop.h"
TasterClass TasterE; //Erzeugen einer Instanz TasterClass für den ersten Taster
void setup() {
TasterE.setPin (40, 26); //Taster mit Pullup-Wiederstand
Serial.begin(4800); // Initialisierung der seriellen Kommunikation mit 115200 Baud
}
void loop() {
TasterE.CheckStatus();
Serial.print("Taster wurden gedrückt: ");
Serial.println(TasterE.getLEDPin());
}
Unterprogramm:
class TasterClass {
private:
int LEDPin;
int TasterPin; // Pin-Nummer für Taster
int TasterPinWert;
int LEDPinWert;
bool Wert_Taster; // Taster Ein = true oder false
bool ein_speicher;
bool Speicher;
bool Flanke;
public: //Setzen der Pin-Nummer und Initialisierung der Pin-Modi
void setPin( int TasterPinWert, int LEDPinWert) {
LEDPin = LEDPinWert;
TasterPin = TasterPinWert;
pinMode (LEDPin, OUTPUT);
pinMode (TasterPin, INPUT_PULLUP);
}
void CheckStatus() {
Wert_Taster = !digitalRead(TasterPin); // Lesen des Taster-Pins und Invertieren des Wertes (Taster gedrückt = true)
if (Wert_Taster == true && Speicher == false) {
Flanke = true;
Speicher = true;}
if (Wert_Taster == false) {
Speicher = false;}
if ( Flanke == true && ein_speicher == true) {
ein_speicher = false;
LEDPin = false;
Flanke = false;}
if ( Flanke == true && ein_speicher == false) {
ein_speicher = true;
LEDPin = true;
Flanke = false;}
// Methode zum Abrufen des aktuellen Tasterzählerwerts
int getLEDPin; {return LEDPin;}
}
};
Fehlermeldung:
C:\Users\jense\Documents\Arduino\ObjektTaster_2204\ObjektTaster_2204.ino: In function 'void loop()':
C:\Users\jense\Documents\Arduino\ObjektTaster_2204\ObjektTaster_2204.ino:15:24: error: 'class TasterClass' has no member named 'getLEDPin'; did you mean 'LEDPin'?
Serial.println(TasterE.getLEDPin());
^~~~~~~~~
LEDPin
exit status 1
Compilation error: 'class TasterClass' has no member named 'getLEDPin'; did you mean 'LEDPin'?
Das ist der Plan.
Ich hoffe ihr könnt helfen
Mit freundlichen Grüßen
Jens