Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include
- #include "U8g2lib.h"
- #include "HCSR04.h"
- U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset= */ U8X8_PIN_NONE); // für Display
- u8g2_uint_t offset;
- u8g2_uint_t width;
- #define ECHOPIN 12
- #define TRIGPIN 13
- UltraSonicDistanceSensor Abstandssensor(TRIGPIN,ECHOPIN); //Das Objekt "Abstandsensor" vom Typ "UltraSonicDistanceSensor" repräsentiert
- //den Ultraschallsensor. Zur Initialisierung werden nacheinander die Pins für
- //das Trigger- und Echosignal übergeben.
- float INHALT = 0; //nutzbarer Zisterneninhalt
- float MengeJeCM = 47.14; //gibt die Menge in Liter je cm an (Durchmesser = 2,45 m, Pi = 3,14159)
- float MinAbst = 32.40; //gibt den Mindestabstand des Ultraschallgebers zur max. Füllhöhe in cm an
- float UschMessWert = 0.00; //gibt den Ultraschallmesswert der Sonde in cm an
- int UMW = 0;
- int INH = 0;
- void setup(){
- u8g2.begin();
- u8g2.setFont(u8g2_font_luRS12_tf); //u8g2_font_luRS12_tf, gibt die Zeichentyp an
- u8g2.setFontMode(0); // original = 0
- Serial.begin(9600); // 9600 Baud für die serielle Monitor-Anzeige
- }
- void loop() {
- UschMessWert = (Abstandssensor.measureDistanceCm()); //die Funktion "measureDistanceCm()" gibt den Abstand in cm als Fließkomma-
- //wert an die Variable "UschMessWert" (Ultraschallmesswert) weiter
- UMW = UschMessWert * 10; //cm werden in mm umgewandelt und die Kommastellen gestrichen (Integer)
- delay(9000); //verzögert weitere Messungsweitergaben um (xxxx Millisekunden)
- INHALT = MengeJeCM * (120 - (UschMessWert - MinAbst)); //berechnet den nutzbaren Zisterneninhalt in Liter
- INH = INHALT; //Kommastellen werden gestrichen und in einen Integerwert umgewandelt
- if (UschMessWert > 0) { //unterdrückt fehlerhafte, negative Messwerte
- Serial.print("Höhe : "); //Ansteuerung des internen Monitors, z.Z. nur zur Kontrollr
- Serial.print(UMW); //UschMessWert
- Serial.println(" mm");
- Serial.print("Menge: ");
- Serial.print(INH); //INHALT
- Serial.println(" Ltr.");
- u8g2.firstPage(); //Ansteuerung des OLED-Displays 1,3 Zoll
- u8g2.drawUTF8(0,25,"Höhe :");
- // u8g2.drawUTF8(54,25,"1376"); //nur zum testen
- u8g2.drawUTF8(55,25,UMW);
- u8g2.drawUTF8(98,25,"mm");
- u8g2.drawUTF8(0,55,"Inhalt:");
- u8g2.drawUTF8(55,55,INH);
- u8g2.drawUTF8(99,55,"Ltr.");
- u8g2.nextPage();
- u8g2.clearBuffer();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement