Erledigt !Ist ein Servo Ausfall per Codeerkennung möglich?

Hallo,

ich hab mir einen Code gebastelt mit dem ich zwei Servos mit jeweils einem Taster steuern kann.

hier der Code:

#include <Servo.h>
//#include <LiquidCrystal.h>
//LiquidCrystal lcd(2, 3, 4, 5, 6, 7); 

int tasterGrossPin1 = 8;                                 //Taster1 an Pin 8 angeschlossen
int tasterKleinPin2 = 9;                                 //Taster2 an Pin 7 angeschlossen

int tasterStatus1, tasterStatus2;                        // Variablen Tasterzustand

//________Servo deffinieren
Servo meinServoGross;                                    // ServoGross Initialisieren
Servo meinServoKlein;                                    //ServoKlein  Initialisieren
          
void setup()
{ 
//________Serialausgabe starten
Serial.begin(9600);                                      // Serialausgabe starten
Serial.println("WC Gestartet");
delay(1000);
Serial.println("Initialisiere I/O");

//________Taster pullup einschalten
pinMode(tasterGrossPin1, INPUT_PULLUP);                  // tasterPin1 (Pin 8) wird als INPUT definiert
pinMode(tasterKleinPin2, INPUT_PULLUP);                  // tasterPin2 (Pin 7) wird als INPUT definiert
//________Servos Pinbelegung
meinServoGross.attach(10);                               // ServomotorGross wurde an Pin 9 angeschlossen
meinServoKlein.attach(11);                               // ServomotorKlein wurde an Pin 10 angeschlossen
//________Servos beim Start fixieren
meinServoGross.write(10);                                // Dreht ServoGross beim start auf "Geschlossen"
meinServoKlein.write(10);                                // Dreht ServoKlein beim start auf "Geschlossen"
delay(1000);
Serial.println("Initialisierung fertig!,warte auf Eingabe");
}

void loop()
{
tasterStatus1 = digitalRead(tasterGrossPin1);            // Tasterstatus Gross
tasterStatus2 = digitalRead(tasterKleinPin2);            // Tasterstatus Klein
//____________________________Aktion bei Taster Gross
if (tasterStatus1 == 0)
{
meinServoGross.write(170);                               // Langes spülen öffnen (Servo 170 Grad anfahren)
Serial.println("Spuelung gross gestartet!");
delay(5000);                                             // Warte 5 sekunden    
meinServoGross.write(15);                                // schließen   (Servo 15 Grad anfahren)
Serial.println("Gross fertig!");
delay(100);
}
//____________________________Aktion bei Taster klein
if (tasterStatus2 == 0)
{
meinServoKlein.write(170);                               // Kurzes spülen öffnen (Servo 170 Grad anfahren) 
Serial.println("Spuelung klein gestartet!");
delay(5000);                                             // Warte 5 sekunden 
meinServoKlein.write(15);                                // schließen   (Servo 15 Grad anfahren)
Serial.println("Klein fertig!");
delay(100);
}
}

Dies klappt wunderbar,jedoch stelle ich mir die Frage,ist es möglich den Ausfall eines oder beider Servos per Code über
serial oder led Anzeige zu detektieren?

Dies soll dafür da sein,um Störungen anzuzeigen ohne das ich die Servos aus dem Gehäuse ausbauen muss.
Oder macht es keinen Sinn?

Gg. könnte vielleicht einer den Code überfliegen,bin für jeden Tip zu Verbesserung dankbar :grin:

Mfg.
Haustechno

Ohne zusätzliche Kontrolle nicht. Du mußt die Position des Servos einlesen und mit dem Sollwert vergleichen. In deinem Fall genügen 2 Endschalter oder 2 Lichtschranken pro Servo.

Grüße Uwe

hmm,
ok aber das ist doch schon ein Mehraufwand an Bauteilen und Platz im gehäuse ,
und diese Endschalter oder Lichtschranke können wiederrum auch ausfallen :fearful:

Also für mich leider keine Lösung :frowning:

Ich dachte eher an das Auslesen des Potis im Servo...

Mfg.
Haustechno

Haustechno:
Ich dachte eher an das Auslesen des Potis im Servo...

Wenn Du Deinen Servo anzapfen und umbauen möchtest, kannst Du natürlich einfach den Mittelabgriff vom Servo-Poti abzapfen und ein Kabel herausführen und an einen Analog-Pin legen und den Wert auslesen. Dann kannst Du die aktuelle Poti-Stellung/Servo-Position jederzeit über ein analogRead am Arduino ermitteln.

Standardmäßig gibt es auch Spezialservos zu kaufen, wo der Poti-Mittelabgriff gleich herausgeführt ist:

@ jurs,
Danke das ist es :grin:

Also doch andere Servos besser bestellen,die eben diesen zusätzlichen Pinausgang haben.

Mfg.
Hasutechno

Kommt allerdings drauf an, ob diese Servos dann deinen Anforderungen auch genügen.
Falls nicht: mit etwas Basteln lässt sich das an jedem Servo nachrüsten, wie schon geschrieben wurde.