/* Anschluß LCD-Display: SDA --> A4; SCL --> A5 */
#include <LiquidCrystal_I2C.h>
#include <NewPing.h>
const int trigger_Pin = 7;
const int echo_Pin = 8;
const int maxDistanz = 80;
LiquidCrystal_I2C lcd(0x27,16,2);
NewPing sonar(trigger_Pin,echo_Pin,maxDistanz);
// Umlaute darstellen
void printx(const char a[]){
int i=0;
while (true) {
char ch = a[i++];
if (ch == 0) return;
if (ch == '&') {
ch = a[i++];
switch (ch) {
case 'a': lcd.write(0xE1);
break;
case 'o': lcd.write(0xFE);
break;
case 'u': lcd.write(0xF5);
break;
default: if (ch<128) lcd.write(ch);
}
} else if (ch<128) {
lcd.write(ch);
}
}
}
void setup() {
pinMode(trigger_Pin, OUTPUT);
digitalWrite(trigger_Pin, LOW);
lcd.init();
lcd.backlight();
}
void abstand() {
int cm = sonar.ping_cm();
lcd.clear();
if (cm) {
lcd.print(cm); lcd.print(" cm");
} else {
lcd.print("Maximale Distanz");
lcd.setCursor(0,1);
printx("&uberschritten!");
}
}
void loop() {
abstand();
delay(1000);
}