Doc_Arduino:
Hallo,
habe das einmal komplett zusammengestrichen, wenns funktioniert und Ablauf verstanden, kannste deine Mittelwertbildung wieder einbauen.
const byte pinLed = 3; //aktuell noch nur led später pumpe für relais
const byte pinWasserSchalter = 13;
const byte pinBatterie = A7;
void setup()
{
Serial.begin(9600);
pinMode(pinLed, OUTPUT);
pinMode(pinWasserSchalter, INPUT);
pinMode(pinBatterie, INPUT_PULLUP);
}
void loop()
{
if (trigger(2000) ) // aller 2s
{
bool pegel = getWasserstand(pinWasserSchalter);
float voltage = getBattery(pinBatterie);
anzeigeLed(pinLed, pegel, voltage);
anzeigeSerial(pegel, voltage);
}
}
float getBattery(const byte pin)
{
unsigned int x = analogRead(pin); // Rohwert (0-1023) über Analogpin auf Basis von 5V (=1023)
float BatVoltage = 5.0 * x / 1024;
return BatVoltage;
}
bool getWasserstand(const byte pin)
{
bool schalter = digitalRead(pin);
return schalter;
}
void anzeigeLed(const byte pin, const bool wasserstand, const float spannung)
{
if (wasserstand && (spannung >= 2.5) )
{
digitalWrite(pin, HIGH);
}
else
{
digitalWrite(pin, LOW);
}
}
void anzeigeSerial(const bool wasserstand, const float spannung)
{
Serial.print("Batteriespannung ");
Serial.print(spannung);
Serial.print("V");
Serial.print("\t");
Serial.print("Pumpe ");
Serial.println(wasserstand);
}
bool trigger (const unsigned long interval)
{
bool trigger = false;
static unsigned long lastMillis = 0;
const unsigned long ms = millis();
if (ms - lastMillis >= interval)
{
lastMillis = ms;
trigger = true;
}
return trigger;
}
Ich habe mir den Code angeschaut und bin in mir in Arduino am beschreiben also //blabliblubb damit ich ihn für mich verständlich machen kann. jetzt ist mir allerdings eine sache aufgefallen sollte bei Spannung nicht voltage stehen weil es ja eigentlich in den globalen nicht deklariert ist oder hat man durch den aufruf nach
--------void anzeigeLed(const byte pin, const bool wasserstand, const float spannung)-------------
neue funktionsinterne variablen?
ich hätte jetzt von meinem aktuellen wissensstand gesagt das Spannung in dem falle durch voltage getauscht werden müsste oder bin ich jetzt falsch??
{
if (wasserstand && ([s]spannung[/s][b]voltage[/b] >= 2.5) )
{
digitalWrite(pin, HIGH);
}
else
{
digitalWrite(pin, LOW);
}
}
Danke und Danke auch für die Hilfestellungen