//-------------------------------------------------- #include LiquidCrystal lcd(12, 11, 10, 7, 6, 5, 4); #define trigPin 3 #define echoPin 2 void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); lcd.begin(20, 4); lcd.print("Entfernung zum"); lcd.setCursor(0, 1); lcd.print("Hindernis:"); } void loop() { int zwischensumme, entfernt, tonTon, warn; digitalWrite(trigPin, HIGH); delayMicroseconds(1000); digitalWrite(trigPin, LOW); zwischensumme = pulseIn(echoPin, HIGH); entfernt = (zwischensumme / 2) / 29.1; tonTon = (zwischensumme) / 29.1; warn = (entfernt * 10); int thisPitch = map(entfernt, 0, 200, 2093, 22); if (entfernt < 30) // Ab hier wird der Warnton ausgegeben { tone(8, thisPitch); delay(warn); noTone(8); } if (entfernt < 4) //Ab hier wird der Warnton penetrant { tone(8, thisPitch); delay(1000); noTone(8); } // zum richtigen Darstellen der Zentimeterzahl lcd.setCursor(0, 2); lcd.print("00 Zentimeter"); if (entfernt >= 100) { lcd.setCursor(0, 2); lcd.print(entfernt); } else if (entfernt >= 10) { lcd.setCursor(1, 2); lcd.print(entfernt); } else { lcd.setCursor(2, 2); lcd.print(entfernt); } // Ab hier wird in der unteren Zeile // eine graphische Darstellung angezeigt. if (entfernt > 12) { lcd.setCursor(0, 3); lcd.print(" "); } else if (entfernt == 12) { lcd.setCursor(0, 3); lcd.print("-|________________|-"); } else if (entfernt == 11) { lcd.setCursor(0, 3); lcd.print("--|______________|--"); } else if (entfernt == 10) { lcd.setCursor(0, 3); lcd.print("---|____________|---"); } else if (entfernt == 9) { lcd.setCursor(0, 3); lcd.print("----|__________|----"); } else if (entfernt == 8) { lcd.setCursor(0, 3); lcd.print("-----|________|-----"); } else if (entfernt == 7) { lcd.setCursor(0, 3); lcd.print("------|______|------"); } else if (entfernt == 6) { lcd.setCursor(0, 3); lcd.print("-------|____|-------"); } else if (entfernt == 5) { lcd.setCursor(0, 3); lcd.print("--------|__|--------"); } else if (entfernt == 4) { lcd.setCursor(0, 3); lcd.print("---------||---------"); } else if (entfernt <= 3) { lcd.setCursor(0, 3); lcd.print(" W A R N U N G "); } delay(100); } //--------------------------------------------------