INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Füllstand mit RGB visualisieren [FRAGE]
27.12.2020, 10:56 (Dieser Beitrag wurde zuletzt bearbeitet: 27.12.2020 11:29 von Dukopfo.)
Beitrag #1
Füllstand mit RGB visualisieren [FRAGE]
Hallo Arduino Community,

ich arbeite aktuell an einer Füllstandsmessung mit einem Ultraschallsensor. Die Grundidee ist, wenn Abstand x größer gleich y dann sende eine SMS mit der Nachricht "Blabla". Ich habe zusätzlich eine RGB LED im System, der denn Füllstand Visuell darstellen soll. Funktioniert auch, solange ich mich auf zwei Farben beschränke. Ich möchte allerdings drei Farben (rot > Abstand größer gleich z.B. 30 cm, orange zwischen 15 und 30, grün unter 15 cm).

Vorweg sei gesagt, dass ich Arduino Anfänger bin und vieles durch Trial and Error hinbekommen habe. Hier komme ich allerdings nicht weiter. Wie muss ich genau die IF Funktion programmieren?

Hier der Code:

Code:
#include <Wire.h>               //Die I2C-Bibliothek wird abgerufen
#include <LiquidCrystal_I2C.h>  //Die LCD-Bibilothek wird abgerufen
#include <SoftwareSerial.h>     //Die Bibliothek für die Serielle Schnittstelle
#include "SIM900.h"             //Die GSM-Bibliothek wird abgerufen
#include "sms.h"
#include <RGBLED.h>

RGBLED rgbLed(51,49,47,COMMON_CATHODE);


// Definiert die Pin-Belegungen
const int trigPin = 32;
const int echoPin = 30;


// Definiert Variablen
long duration;            //long?
int distance;             //int?
int safetyDistance;
LiquidCrystal_I2C lcd(0x27, 16, 2);


void setup() {
pinMode(trigPin, OUTPUT);   // Setzt den trigPin als Ausgang
pinMode(echoPin, INPUT);    // Setzt den echoPin als Eingang
Serial.begin(9600);         // Startet die serielle Kommunikation
lcd.begin();                // Startet das LCD

    
}


void loop() {
// Löscht den trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(20);

// Setzt den trigPin für 10 Mikrosekunden in den HIGH-Zustand
digitalWrite(trigPin, HIGH);
delayMicroseconds(100);
digitalWrite(trigPin, LOW);

// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);

// Calculating the distance
distance= duration*0.034/2;

safetyDistance = distance;

if (safetyDistance >= 30){
  rgbLed.writeRGB(255,0,0);
}
  
if ((safetyDistance < 30) && (safetyDistance >= 15)){
    rgbLed.writeRGB(0,0,255);
}

else{
  rgbLed.writeRGB(0,255,0);
}

// Prints the distance on the Serial Monitor
Serial.print("Distance is: ");
Serial.println(distance);

// Print distance on LCD
lcd.print("Distance is:");
lcd.setCursor(0 , 1);
lcd.print(distance);
lcd.print(" cm");
delay(100);
lcd.clear();

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.12.2020, 11:06 (Dieser Beitrag wurde zuletzt bearbeitet: 27.12.2020 11:06 von Tommy56.)
Beitrag #2
RE: Füllstand mit RGB visualisieren [FRAGE]
Und was passiert derzeit? Du hast nur rot, blau, grün programmiert.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.12.2020, 11:28 (Dieser Beitrag wurde zuletzt bearbeitet: 27.12.2020 11:34 von Dukopfo.)
Beitrag #3
RE: Füllstand mit RGB visualisieren [FRAGE]
(27.12.2020 11:06)Tommy56 schrieb:  Und was passiert derzeit? Du hast nur rot, blau, grün programmiert.

Gruß Tommy

Derzeit ist es so, dass das System erst garnicht rot schaltet, sondern nur blau und grün. Kleiner als 15 cm grün. Zwischen 15 und 30cm blau und über 30 cm wieder grün.

Hier mal ein kurzes Video:





Gruß Dukopfo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.12.2020, 13:53
Beitrag #4
RE: Füllstand mit RGB visualisieren [FRAGE]
Probier mal:
Code:
Serial.print("safetyDistance: ");
Serial.println(safetyDistance);
if (safetyDistance >= 30){
  rgbLed.writeRGB(255,0,0);
  Serial.println(">= 30 rot");
}
else if (safetyDistance >= 15){
  rgbLed.writeRGB(0,0,255);
  Serial.println(">= 15 blau");
}
else{
  rgbLed.writeRGB(0,255,0);
  Serial.println("<= 15 gruen");
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Anfänger Frage zu code Beispiel peter_schmieg 4 480 03.03.2021 12:24
Letzter Beitrag: Tommy56
  grundelegende Frage: int vs const int mhoeting 4 389 27.01.2021 14:37
Letzter Beitrag: mhoeting
  Frage zu Delay-Alternative Holzwurm56 13 957 24.01.2021 21:55
Letzter Beitrag: Franz54
  Frage zur <Adafruit_PWMServoDriver.h> Christian_Moba-Arduino 7 737 16.10.2020 12:32
Letzter Beitrag: Tommy56
  Generelle Frage zum Schlafen legen DO3GE 3 596 02.10.2020 10:56
Letzter Beitrag: Tommy56
  Frage zu Speicherplatzverbrauch Retian 3 742 04.08.2020 19:11
Letzter Beitrag: Tommy56
  Eine Frage zu einer neuen ino Datei Elly 22 2.460 01.06.2020 19:59
Letzter Beitrag: Elly
Smile Frage zu Font und Auswahl Sulawesi 5 1.316 25.05.2020 12:12
Letzter Beitrag: hotsystems
Sad Frage zu Daten die vom Nextion kommen Lampe 2 1.005 26.04.2020 12:53
Letzter Beitrag: Lampe
  Frage zu "void" Lampe 7 1.219 14.04.2020 18:06
Letzter Beitrag: Lampe

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste