Advertisement
gabbyshimoni

reverseDriveSensor

Jun 2nd, 2019
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. /*
  2.   תוכנית זו מדמה פעולת חיישן רוורס ברכב
  3.   התוכנית משתמשת בחיישן מדידת מרחק אולטראסוני ובזמזם
  4.   התוכנית מודדת מרחק מעצם שלפני החיישן
  5.   אם המרחק מעל מטר אחד אז הזמזם שקט
  6.   אם המרחק קטן ממטר אחד הזמזם מתחיל להשמיע קול במרווחי זמן בהתאם למרחק
  7.   ככל שהמרחק קטן מרווחי הזמן בין הקולות קטן
  8. */
  9.  
  10. #define trigPin 4
  11. #define echoPin 5
  12. #define buzPin 9
  13. long distance, duration;
  14. void setup() {
  15.   Serial.begin(9600);
  16.   pinMode(trigPin, OUTPUT);
  17.   pinMode(echoPin, INPUT);
  18.   pinMode(buzPin, OUTPUT);
  19.   Serial.println("*************** S T A R T ***********************************");
  20. }
  21.  
  22. void loop() {
  23.   // יצירת פולס קול אולטראסוני
  24.   digitalWrite(trigPin, LOW);
  25.   delayMicroseconds(2);
  26.   digitalWrite(trigPin, HIGH);
  27.   delayMicroseconds(10);
  28.   digitalWrite(trigPin, LOW);
  29.  
  30.   // המתנה על לשמיעת ההד המוחזר מהעצם בו פגעו גלי הקול
  31.   duration = pulseIn(echoPin, HIGH);
  32.  
  33.   // חישוב המרחק ביחידות של סנטימטר
  34.   distance = duration / 59 / 2;
  35.  
  36.   if (distance > 100) {
  37.     // אם המרחק גדול ממטר אחד המערכת מדפיסה ערך למסך והזמזם שקט
  38.     Serial.println("distance [cm]=" + String(distance));
  39.   }
  40.   else {
  41.     //אם המרחק קטן ממטר אחד המערכת מדפיסה ערך למסך
  42.     Serial.println("distance [cm]=" + String(distance));
  43.     // מחשבים משך השהייה בין זמזומים על ידי הכפלת המרחק ב-10
  44.     int dly = distance * 10;
  45.     // השמעת זימזום בתדר קבוע למשך מאתיים מילישניות
  46.     tone(buzPin, 4000);
  47.     delay(200);
  48.     // השתקת הזמזם למשך הזמן המחושב
  49.     noTone(buzPin);
  50.     delay(dly);
  51.   }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement