

در این ساختنی قصد داریم با استفاده از ماژول HC-SR04 و برد آردوینو یک فاصله سنج بسازیم و نحوه کار کرد این ماژول را بدون استفاده از کامپیوتر نشان دهیم.همچنین اشاره میکنم که در این ساختنی از LED هایی استفاده شده تا بتوانیم مدار را بدون استفاده از کامپیوتر تست کنیم و میزان فاصله و دقت سنسورها را به ما نشان دهد.
مرحله اول : لیست قطعات
- آردوینو UNO R3 (ما از Adafuit mount استفاده کردیم)
- یک سنسور آلتراسونیک HC-SR04
- یک ال ای دی قرمز
- یک ال ای دی سبز
- دو مقاومت ۵۶۰ اهم (سبز آبی قهوه ای طلایی)
- نصف یک برد بورد
- ۸ عدد سیم برد بورد نری به نری
- یک خط کش با واحد سانتی متر( یا استفاده از مانیتور کردن پورت سریال)
مرحله دوم: اتصال قطعات فاصله سنج
سیم ها و قطعات را مانند دو تصویر بالا به هم وصل کنید.
مرحله سوم: آپلود کردن Sketch
Sketch زیر را در بر روی آردوینو پروگرام کنید و ال ای دی های چشمک زن را ببینید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
/* HC-SR04 Ping distance sensor] VCC to arduino 5v GND to arduino GND Echo to Arduino pin 13 Trig to Arduino pin 12 Red POS to Arduino pin 11 Green POS to Arduino pin 10 ۵۶۰ ohm resistor to both LED NEG and GRD power rail More info at: http://goo.gl/kJ8Gl Original code improvements to the Ping sketch sourced from Trollmaker.com Some code and wiring inspired by http://en.wikiversity.org/wiki/User:Dstaub/robotcar */ #define trigPin 13 #define echoPin 12 #define led 11 #define led2 10 void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(led, OUTPUT); pinMode(led2, OUTPUT); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); // Added this line delayMicroseconds(2); // Added this line digitalWrite(trigPin, HIGH); // delayMicroseconds(1000); - Removed this line delayMicroseconds(10); // Added this line digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance < 4) { // This is where the LED On/Off happens digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off digitalWrite(led2,LOW); } else { digitalWrite(led,LOW); digitalWrite(led2,HIGH); } if (distance >= 200 || distance <= ){ Serial.println("Out of range"); } else { Serial.print(distance); Serial.println(" cm"); } delay(500); } |
ببخشید، برای نوشتن دیدگاه باید وارد بشوید