בפרויקט שלי ניתן למצוא את המרחק בין עצם לחיישן המרחק לפי הצליל שמשמיע הזמזם
כאשר מקרבים עצם לחיישן המרחק, הזמזם משמיע צליל בעוצמה שונה בהתאם למרחק של העצם מעל החיישן. החיישן שולח גל קול שפוגע בעצם וחוזר לחיישן. אם כופלים את המרחק הזה במהירות הקול ומחלקים ב2 (כי הגל עובר פעם אחת עד לעצם ופעם אחת עובר מהעצם בחזרה לחיישן) מוצאים את המרחק של העצם מחיישן המרחק
const int echoPin=2;//באולטרסוניק echo הגדרת חיבור 2 כחיבור לרכיב
const int trigPin=3;//באולטרסוניק trig הגדרת חיבור 3 כחיבור
long duration;//קביעת משתנה לזמן שלוקח לקול מהאולטרסוניק להגיע ל יד ולחזור לאולטרסוניק
int distance;//קביעת משתנה למרחק בין היד לאולטרסוניק
int buzzer=8;//הגדרת חיבור 8 כחיבור לזמזם
void setup() {
// put your setup code here, to run once:
pinMode(trigPin,OUTPUT);//OUTPUT כ trigpin הגדרת
pinMode(echoPin,INPUT);//INPUT כ echopin הגדרת
pinMode(buzzer,OUTPUT);//OUTPUT הגדרת הזמזם כ
Serial.begin(9600);// serial monitor הפעלת ה
Serial.println("Ultrasonic Sensor test");//ואז יורד שורה serial monitor ב "Ultrasonic Sensor test" כותב
Serial.println("with Arduino UNO");//ואז יורד שורה serial monitor ב "with Arduino UNO" כותב
}
void loop() {
// put your main code here, to run repeatedly:
//trigPin לנקות את המצב של ה
digitalWrite(trigPin,LOW);//trigpin לא להזרים חשמל ל
delayMicroseconds(20);//לחכות במשך 20 מליונית שניה
//לשלוח קול במשך 10 מילונית שניה ואז להפסיק
digitalWrite(trigPin,HIGH); //ואז יוצא קול שפוגע בעצם הקרוב אליו ביותר trigpin הזרמת חשמל ל
delayMicroseconds(10);//להמשיך להוציא קול במשך 10 מליונית השנייה
digitalWrite(trigPin,LOW);//ואז לא יוצא קול יותר trigpin לא להזרים חשמל ל
// לקבל את משך הזמן של הקול במרחק הכולל
duration= pulseIn(echoPin,HIGH); //ואז מקבלים את משך הזמן שלקח לקול להגיע לעצם ולחזור echopin להזרים חשמל ל
//חישוב המרחק שעובר הקול מהאולטרסוניק לעצם הקרוב אליו ביותר
distance= duration*0.034/2;//כופלים את משך הזמן במהירות הקול ואז מחלקים ב2 כדי שיהיה רק את המרחק הלוך ולא גם הלוך וגם חזור
//להדפיס את המרחק
Serial.print("Distance: ");//serial monitor ב "Distance: " כותב
Serial.print(distance);//באותה השורה serial monitor ב "Ultrasonic Sensor test" כותב
Serial.println(" cm");//ואז יורד שורה serial monitor ב "Ultrasonic Sensor test" כותב
delay(500);
if (distance<=10){// אם המרחק בין העצם לאולטרסוניק קטן או שווה ל10 ס"מ
tone(buzzer,1046.5,200);//(לכמה זמן להשמיע במאיות השנייה,איזו עוצמה, מה משמיע) האולטרסוניק משמיע צליל לפי מה שהגדרנו בסוגריים
delay(1000);// לחכות שניה
}
else if (distance<=20){//אם המרחק בין העצם לאולטרסוניק קטן או שווה ל20 ס"מ ובעצם גם גדול מ10 ס"מ
tone(buzzer,261.63,200);//(לכמה זמן להשמיע במאיות השנייה,איזו עוצמה, מה משמיע) האולטרסוניק משמיע צליל לפי מה שהגדרנו בסוגריים
delay(1000);// לחכות שניה
}
else if (distance<=30){//אם המרחק בין העצם לאולטרסוניק קטן או שווה ל30 ס"מ
tone(buzzer,65.406,200);//(לכמה זמן להשמיע במאיות השנייה,איזו עוצמה, מה משמיע) האולטרסוניק משמיע צליל לפי מה שהגדרנו בסוגריים
delay(1000);//לחכות שניה
}
else{ //(בכל מקרה אחר לא לעשות כלום (לא להשמיע צליל בכלל
}
}

