ich bin noch absolut kein Experte aber hab schon ein wenig Erfahrung sammeln können.
Und zwar habe ich einen Gecko welcher lebende Grillen bekommt, diese leben in einer kleinen Box bei welche ich oft vergesse das Wasser aufzufüllen. Deshalb habe ich mir eine automatische Steuerung mit einem Arduino Uno und einer kleinen Pumpe gebaut.
Diese Pumpe wird über ein Relais angeschaltet und dieses Relais wird ganz einfach durch einen Wasserpegelsensor aktiviert.
Nun habe ich folgendes Problem, die Pumpe wird automatisch aktiviert wenn der Sensorwert unter 550 fällt. Ist nun aber auch der Behälter aus welchem das Wasser herausgepumpt wird leer, würde das bedeuten, das die Pumpe dauerhaft pumpt.
Gibt es einen Befehl, dass man die Zeit, welche ein Pin aktiviert ist dauerhaft begrenzen kann?
Bzw. hat jemand eine Idee wie man es lösen könnte?
Mir wäre jetzt nur eingefallen, ab einem sehr niedrigen Sensorwert das Relais nichtmehr aktivieren zu lassen.
Der Code:
const int relais = 6; //Relais für Pumpe
const int sensor = A0; //Füllstandsensor
int level; //Wasserstand
einen direkten "Befehl" (genauer gesagt Funktion) gibts nicht, aber man kann sich etwas bauen.
Dafür müßtest du dich mit millis() beschäftigen. Im Grunde Zeit merken, Vergleich abfragen, wenn Zeitdifferenz erreicht, Aktion auslösen.
Beruht alles auf dem IDE Bsp.: 02.Digital -> BlinkwithoutDelay
Mit der Zeit kannst du die Dauer der Wassernachbefüllung steuern. Gegen leer pumpen hilft das nicht wie du schon erkannt hast. Das heißt dein Vorratsbehälter benötigt dringend noch einen "Bin leer." Sensor. Wenn der aktiv wird, müssen alle Pumpen stoppen bzw. dürfen nicht erneut einschalten. Dann geht logischerweise die Alarmanlage im gesamten Haus los und du weißt -> Wasser nachfüllen.
Du solltest Programme als Code-Section posten. Das geht ganz einfach.
Nur drei Schritte:
1.) wechsle zur Arduino-IDE drücke Strg-T für automtatisches formatieren
2.) mache mit der Maus einen Rechtsklick und wähle "für Forum kopieren
3.wechsle zur Forum-Texteingabe und drückte Strg-V um den Inhalt dr Zwischenablage einzufügen.
fertig
Wenn ein Programm als Code-Section eingefügt ist kann man es viel besser lesen
und eine Code-Section kann man mit einem einzigen Mausklick in die Zwischenablage kopieren.
vgs