Hallo Community,
Ich beschäftige mich jetzt seit ca 1 Woche mit Arduino.
Bei meinem aktuellen Problem bin ich auf folgendes Problem gestoßen:
Ich benutze einen Ultraschall-Sensor um die Entfernung zu messen um diese anschließend auf einem LCD Display anzeigen zu lassen. Zusätzlich kann per Knopfdruck der aktuellen Wert gespeichert und dauerhaft angezeigt werden.
Da der Sensor im nahbereich <5cm und fern >500cm ungenau wird, soll bei diesen Werten eine rote LED aufleuchten.
Nun zu dem Problem:
Im Bereich >500 funktioniert alles einwandfrei.
<5 jedoch leuchtet die LED nicht. (auch wenn im seriellen Monitor klar erkennbar ist, dass die Werte <5 sind)
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include "Ultrasonic.h"
Ultrasonic ultrasonic(8);
LiquidCrystal lcd(12, 11, 10, 7, 6, 5, 4);
int LED = 2;
int Button = 3;
void setup()
{
pinMode(LED,OUTPUT);
pinMode(Button,INPUT);
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop()
{
long RangeInCentimeters;
RangeInCentimeters = ultrasonic.MeasureInCentimeters();
long RealDistance;
RealDistance = RangeInCentimeters+2;
delay(150);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Abstand: ");
lcd.print(RealDistance,DEC);
lcd.print("cm");
int Abfrage;
Abfrage = digitalRead(Button);
static long Speicher;
if (Abfrage == HIGH)
{
Speicher = RealDistance;
}
lcd.setCursor(0,1);
lcd.print("Speicher: ");
lcd.print(Speicher,DEC);
lcd.print("cm");
if (RealDistance < 5)
{
digitalWrite(LED,HIGH);
}
else
{
digitalWrite(LED,LOW);
}
if (RealDistance > 500)
{
digitalWrite(LED,HIGH);
}
else
{
digitalWrite(LED,LOW);
}
Serial.println(RealDistance);
}
Hoffe mir kann jemand helfen.
Liebe Grüße