Advertisement
mod4

Ultrahangos mérés

Aug 24th, 2017
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.32 KB | None | 0 0
  1. /*
  2. Parkolóradar SFR04 ultrahangos szenzorral és 3 LED-del
  3. a debreceni Megtestesülés Plébánia Hobbielektronika csoportja és Durucz Béla, Magyar Arduino csoport segítségével
  4. */
  5. #define ECHO_PIN 2                 // Echo láb Digital PIN2-re kötve
  6. #define TRIGGER_PIN 3              //Trigger láb Digital PIN3-ra kötve
  7.  
  8. unsigned long echoTime = 0; // az Echo labon megjeleno jel hosszat tartalmazo valtozo
  9. unsigned long tavolsag = 0; // a mert tavolsagot tartalmazo valtozo
  10. unsigned int ledIdozites; // ez méri hogy mennyi ideig van a 350mm-es zónában valami
  11.  
  12. int pirosLed = 12; //piros
  13. int sargaLed = 11; //sárga
  14. int zoldLed = 10; //zöld
  15.  
  16. void setup()
  17. {
  18.   ledIdozites = 0;
  19.   pinMode(TRIGGER_PIN, OUTPUT); // Trigger láb kimenet
  20.   pinMode(ECHO_PIN, INPUT); // Echo láb bemenet
  21.   Serial.begin(9600); // 9600 baud-sebessegű soros kommunikacios port beallitása
  22.   pinMode(pirosLed, OUTPUT);
  23.   pinMode(sargaLed, OUTPUT);
  24.   pinMode(zoldLed, OUTPUT);
  25. }
  26. void loop()
  27. {
  28.   digitalWrite(TRIGGER_PIN, HIGH); // a szenzornak 10 mikroszekundumos jel küldése a Trigger lábra
  29.   delayMicroseconds(10);
  30.   digitalWrite(TRIGGER_PIN, LOW);
  31.   echoTime = pulseIn(ECHO_PIN, HIGH); // az Echo lábon a magas állapot idejének mérése
  32.   tavolsag = 10 * echoTime / 58; // a céltárgy távolságanak kiszámitása (mm-ben)
  33.   Serial.print(tavolsag, DEC); // az eredmény elküldése a soros porton keresztül a PC-re
  34.   Serial.println(" mm"); // mm kiirása az eredmény után
  35.  
  36.   if(tavolsag <= 350 )
  37.   {
  38.     if(ledIdozites < 100)  
  39.     {
  40.       ledIdozites++;
  41.       digitalWrite(pirosLed,HIGH); //LED bekapcsolva
  42.       digitalWrite(sargaLed,LOW); //LED kikapcsolva
  43.       digitalWrite(zoldLed,LOW);
  44.     }
  45.     else
  46.     {
  47.       digitalWrite(pirosLed, LOW); // piros LED aludjon ki 100 kör után (~ 10 másodperc)
  48.     }
  49.   }
  50.   else if(tavolsag >= 350 && tavolsag < 650)
  51.   {
  52.     digitalWrite(pirosLed,LOW);
  53.     digitalWrite(sargaLed,HIGH);
  54.     digitalWrite(zoldLed,LOW);
  55.   }
  56.   else if(tavolsag >= 650 && tavolsag < 1650)
  57.   {
  58.     digitalWrite(pirosLed,LOW);
  59.     digitalWrite(sargaLed,LOW);
  60.     digitalWrite(zoldLed,HIGH);
  61.   }
  62.   else
  63.   {
  64.     digitalWrite(pirosLed,LOW);
  65.     digitalWrite(sargaLed,LOW);
  66.     digitalWrite(zoldLed,LOW);
  67.   }
  68.  
  69.   if(tavolsag > 350)
  70.   {
  71.     ledIdozites = 0;
  72.   }
  73.  
  74.   delay(100);
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement