البرمجة
قم برفع الكود التالي على الاردوينو :
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