Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- #define trig 12
- #define echo 11
- #define buzz 10
- #define left A0
- #define right A1
- int leftP = 0, rightP = 0; // zmienne pomocnicze do skalowania
- LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // podłączenie wyświetlacza
- void setup()
- {
- lcd.begin(16, 2); // deklaracja typu wyświetlacza
- pinMode(trig, OUTPUT); // triger jako wyjście
- pinMode(echo, INPUT); // echo jako wejście
- pinMode(buzz, OUTPUT); // buzzer
- }
- void loop()
- {
- leftP = analogRead(left); // odczyt z lewego potencjometru
- rightP = analogRead(right); // odczyt z lewego potencjometru
- leftP = map(leftP, 0, 1023, 0, 50 ); // przeskalowanie odczytu z lewego potencjometru na (0-50cm)
- rightP = map(rightP, 0, 1023, 0, 50 ); // przeskalowanie odczytu z prawego potencjometru na (0-50cm)
- range(leftP, rightP);
- screen(leftP, rightP);
- }
- void range(int left, int right)
- {
- int range = measure(); // odleglosc
- if( range >= left && range <= right ) // wybor zakresu ( potencjometry )
- {
- digitalWrite(buzz, HIGH); // buzer on
- }
- else
- {
- digitalWrite(buzz, LOW); // buzzer off
- }
- }
- int measure()
- {
- long Time, distance;
- digitalWrite(trig, LOW); /* Pomiar */
- delayMicroseconds(2);
- digitalWrite(trig, HIGH);
- delayMicroseconds(10);
- digitalWrite(trig, LOW);
- Time = pulseIn(echo, HIGH);
- distance = Time / 58; // obliczenie odleglosci w cm
- return distance; // zwrocenie wartosci odleglosci
- }
- void screen(int leftP, int rightP)
- {
- lcd.setCursor(0, 0); // ustawienie kursora na poczatku
- lcd.print(leftP); // wyswietlenie dolnego zakresu
- lcd.print(" ");
- lcd.print(rightP); // wyswietlenie górnego zakresu
- delay(100);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement