البرمجة
قم برفع الكود التالي على الاردوينو :
int tonePin = 4; //Tone - Red Jumper
int trigPin = 10; //Trig - violet Jumper
int echoPin = 9; //Echo - yellow Jumper
int clockPin = 11; //IC Pin 11 - white Jumper
int latchPin = 12; //IC Pin 12 - Blue Jumper
int dataPin = 13; //IC Pin 14 - Green Jumper
byte possible_patterns[9] = {
B00000000,
B00000001,
B00000011,
B00000111,
B00001111,
B00011111,
B00111111,
B01111111,
B11111111,
};
int proximity=0;
int duration;
int distance;
void setup() {
//Serial Port
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(tonePin, OUTPUT);
}
void loop() {
digitalWrite(latchPin, LOW);
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
proximity=map(distance, 0, 45, 8, 0);
//Serial.println(proximity);
if (proximity <= 0){
proximity=0;
}
else if (proximity >= 3 && proximity <= 4){
tone(tonePin, 200000, 200);
}
else if (proximity >= 5 && proximity <= 6){
tone(tonePin,5000, 200);
}
else if (proximity >= 7 && proximity <= 8){
tone(tonePin, 1000, 200);
}
shiftOut(dataPin, clockPin, MSBFIRST, possible_patterns[proximity]);
digitalWrite(latchPin, HIGH);
delay(600);
noTone(tonePin);
}
لمحة سريعة عن الكود:
لإستخدام الحساس يتم ارسال نبضة (HIGH Level)على Trig Pin لمدة تزيد عن 10 Microseconds,ثم بعد ذلك LOW, وهذه تمثل الموجه فوق الصوتية المرسلة .
digitalWrite(trigPin, HIGH); delayMicroseconds(1000); digitalWrite(trigPin, LOW);
إذا تم الكشف عن جسم ما أمام جهاز الاستشعار(ستصبح قيمة Echo Pin =HIGH Level)، يتم حساب مدة بقاء الإشارةHIGH المستقبلة عن Echo pin .
duration = pulseIn(echoPin, HIGH);
و بعد ذلك يتم حساب المسافة التي يبعد عنها الجسم عن حساس الأمواج فوق الصوتية ويتم تحولها الى رقم بوحدة السنتيميتر
distance = (duration/2) / 29.1;
حساب المسافة :
- المسافة الكلية = الزمن x السرعة
- ومن المعروف ان سرعة الصوت في الهواء ثابت و يساوي 343 م/ث
- وباستخدام المعادله اعلاه يمكننا حساب المسافة التي قطعتها الموجه فوق الصوتية ذهابا و اياب و لتحديد بعد الجسم عن مصدر الأمواج فوق الصوتية فلابد من القسمه على اثنان
- بعد الجسم عن مصدر الأمواج الفوق صوتية =( الزمن x السرعة)/2

