//Display SCL,SDA #include // Display 1.3" oder Display 0.96" - Library Includes all graphics procedures (https://github.com/olikraus/u8g2/) #include //Standard Bibliothek //Display 128x64 Pixel, umfangreiche grafische Funktionen U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); //Variablen für Ultraschall definieren int trigger=0; //Trigger Pin GPIO0, D3, Ausgang int echo=14; //Echo Pin GPIO14, D5, Eingang, Vorsicht nur 3,3V erlaubt long dauer=0; //Zeit die eine Schallwelle bis zur Reflektion und zurück benötigt long entfernung=0; //berechnete Entfernung void setup() { // put your setup code here, to run once: Serial.begin(9600); //Seriellen Monitor vorbereiten //Ultraschallsensor HC SR04 pinMode(trigger, OUTPUT); //Trigger Pin GPIO0, D3, Ausgang pinMode(echo, INPUT); //Echo Pin GPIO14, D5, Eingang, Vorsicht nur 3,3V erlaubt //Display vorbereiten u8g2.begin(); u8g2.clearBuffer(); //Display löschen u8g2.setFont(u8g2_font_courB10_tf); //Font (Schriftart) auswählen (Courier 10 pixel hoch) https://github.com/olikraus/u8g2/wiki/fntlistall u8g2.drawStr(0,10,"Ultraschall"); //den Text am Display anzeigen, Position, x=0, y=10, angegeben in Pixeln u8g2.sendBuffer(); //Übertragen aufs Display delay(1000); } void loop() { //Hauptschleife // put your main code here, to run repeatedly: digitalWrite(trigger, LOW); delay(5); digitalWrite(trigger, HIGH); //Ultraschallwelle lossenden delay(10); //dauer 10 Millisekunden digitalWrite(trigger, LOW); //Ultraschall aus dauer = pulseIn(echo, HIGH); //Zeit bis der Schall zurückkommt entfernung = (dauer/2) * 0.03432; //Wert multipliziert man mit der Schallgeschwindigkeit in der Einheit Zentimeter/Mikrosekunde --> Entfernung in cm if (entfernung >= 500 || entfernung <= 0) // die zwei senkrechten Zeichen || entsprechen einem 'oder' { Serial.println("Kein Messwert"); } else { Serial.print("Entfernung "); Serial.print(entfernung); Serial.println(" cm"); } delay(1000); u8g2.clearBuffer(); //Display löschen u8g2.drawStr(0, 10, "Entfernung"); //den Text am Display anzeigen, Position, x=0, y=10, angegeben in Pixeln u8g2.setCursor (20,35); //Cusrsor setzen u8g2.print(entfernung); //Variable anzeigen u8g2.setCursor (50,35); //Cusrsor setzen u8g2.print(" cm"); u8g2.sendBuffer(); //Übertragen aufs Display, Display updaten delay(50); }