Advertisement
RybaSG

Untitled

Sep 5th, 2016
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.74 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2. #define trig 12
  3. #define echo 11
  4. #define buzz 10
  5. #define left A0
  6. #define right A1
  7.  
  8. int leftP = 0, rightP = 0; // zmienne pomocnicze do skalowania
  9.  
  10. LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // podłączenie wyświetlacza
  11.  
  12. void setup()
  13. {
  14.  lcd.begin(16, 2); // deklaracja typu wyświetlacza
  15.  pinMode(trig, OUTPUT); // triger jako wyjście
  16.  pinMode(echo, INPUT); // echo jako wejście
  17.  pinMode(buzz, OUTPUT); // buzzer
  18. }
  19.  
  20. void loop()
  21. {
  22.   leftP = analogRead(left); // odczyt z lewego potencjometru
  23.   rightP = analogRead(right); // odczyt z lewego potencjometru
  24.  
  25.   leftP = map(leftP, 0, 1023, 0, 50 ); // przeskalowanie odczytu z lewego potencjometru na (0-50cm)
  26.   rightP = map(rightP, 0, 1023, 0, 50 ); // przeskalowanie odczytu z prawego potencjometru na (0-50cm)
  27.   range(leftP, rightP);
  28.   screen(leftP, rightP);
  29.  
  30. }
  31.  
  32. void range(int left, int right)
  33. {
  34.   int range = measure(); // odleglosc
  35.  
  36.   if( range >= left && range <= right ) // wybor zakresu ( potencjometry )
  37.   {
  38.     digitalWrite(buzz, HIGH); // buzer on
  39.     }
  40.   else
  41.   {
  42.     digitalWrite(buzz, LOW); // buzzer off
  43.     }
  44.  
  45.   }
  46.  
  47. int measure()
  48. {
  49.   long Time, distance;
  50.  
  51.   digitalWrite(trig, LOW); /*   Pomiar     */
  52.   delayMicroseconds(2);                      
  53.   digitalWrite(trig, HIGH);
  54.   delayMicroseconds(10);
  55.   digitalWrite(trig, LOW);
  56.  
  57.   Time = pulseIn(echo, HIGH);
  58.   distance = Time / 58; // obliczenie odleglosci w cm
  59.  
  60.   return distance; // zwrocenie wartosci odleglosci
  61. }
  62.  
  63. void screen(int leftP, int rightP)
  64. {
  65.   lcd.setCursor(0, 0); // ustawienie kursora na poczatku  
  66.   lcd.print(leftP); // wyswietlenie dolnego zakresu
  67.   lcd.print("         ");
  68.   lcd.print(rightP); // wyswietlenie górnego zakresu  
  69.   delay(100);
  70.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement