Hallo liebes Forum!
Ich bin Azubi der sich gerade versucht seine Anfänger Kenntnisse von Logo auf Arduino aufzubessern, aber für mein aktuelles Projekt habe ich mich aber vermutlich etwas zu weit aus dem Fenster gelehnt. Ich versuche es kurz zu halten:
Ich habe einen kapazitiven Sensor (4mA-20mA) der bei Unterschreitung der bestimmten Füllmenge eine LED zum blinken bringen soll.
Ein Taster soll das Blinken Ausschalten und das Signal soll nach dem drücken 10 min lang nicht abgefragt werden. (Man braucht 10 min um den Füllstand aufzufüllen)
Ich glaube ich bin flexibel, aber ich weiß nicht so richtig, ob ich so ein Programm in einem loop möglich ist? Weil ich will den Sensor permanent abfragen, und er soll nur 10 min pause machen wenn der Taster mal gedrückt wird. Und die LED soll blinken und der Taster soll Sensor und LED ausmachen und dann Sensor abfragen.
( Den Sensor kann ich nicht einfach mit den Werten die er hat an den Arduino anschließen, deswegen, hatte ich überlegt es vielleicht mit einem Komparator in ein eindeutiges Rechteck Signal zu verwandeln, aber leider weiß ich nicht, wie ich das zu berechne. Ein Arduino Nano Pin kann bis zu 40mA/6-12V max ertragen, hab ich das richtig nachgeschaut? Arduino Nano Pin Diagram, Features, Pin Uses & Programming (components101.com)
Sensor ist leider noch nicht eingetroffen, sonst hätte ich mal nachgemessen, was er wirklich ausgibt! )
Um vielleicht eine Basis zu liefern, hab ich mir den Button Sketch und einen Fotowiderstand geholt, um mal den Sensor zu simulieren. Ist zwar nicht das gleiche, aber vielleicht hilft es?
Ich versuchte gerade eine Art "ODER-Funktion" zu programmieren
const int LED = 13;
const int Taster = 12;
const int Sensor = A0;
int Tasterabfrage = 0;
int Sensorabfrage = 0;
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(Taster, INPUT);
}
void loop() {
Sensorabfrage = analogRead(Sensor);
Serial.print("Sensorwert = ");
Serial.print(Sensorabfrage);
if (Sensorabfrage > 70)
{
Tasterabfrage = digitalRead(Taster);
if (Taster == LOW) {
digitalWrite(LED, HIGH);
delay(2000);
digitalWrite(LED,LOW);
}
else {
digitalWrite(LED, LOW);
}
}
else
{
digitalWrite(LED, HIGH);
delay(2000);
digitalWrite(LED,LOW);
}
}
Schonmal vielen Dank für jede Antwort und bleibt gesund!