/*
תוכנית זו מדמה פעולת חיישן רוורס ברכב
התוכנית משתמשת בחיישן מדידת מרחק אולטראסוני ובזמזם
התוכנית מודדת מרחק מעצם שלפני החיישן
אם המרחק מעל מטר אחד אז הזמזם שקט
אם המרחק קטן ממטר אחד הזמזם מתחיל להשמיע קול במרווחי זמן בהתאם למרחק
ככל שהמרחק קטן מרווחי הזמן בין הקולות קטן
*/
#define trigPin 4
#define echoPin 5
#define buzPin 9
long distance, duration;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzPin, OUTPUT);
Serial.println("*************** S T A R T ***********************************");
}
void loop() {
// יצירת פולס קול אולטראסוני
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// המתנה על לשמיעת ההד המוחזר מהעצם בו פגעו גלי הקול
duration = pulseIn(echoPin, HIGH);
// חישוב המרחק ביחידות של סנטימטר
distance = duration / 59 / 2;
if (distance > 100) {
// אם המרחק גדול ממטר אחד המערכת מדפיסה ערך למסך והזמזם שקט
Serial.println("distance [cm]=" + String(distance));
}
else {
//אם המרחק קטן ממטר אחד המערכת מדפיסה ערך למסך
Serial.println("distance [cm]=" + String(distance));
// מחשבים משך השהייה בין זמזומים על ידי הכפלת המרחק ב-10
int dly = distance * 10;
// השמעת זימזום בתדר קבוע למשך מאתיים מילישניות
tone(buzPin, 4000);
delay(200);
// השתקת הזמזם למשך הזמן המחושב
noTone(buzPin);
delay(dly);
}
}
Comments