Mini Project ตลับเมตรไร้สาย แสดงบนจอ LCD พัฒนาด้วย Arduino IDE
1 เดือนที่ผ่านมา
โดย เจ้าของร้าน
ในบทความนี้เราจะมาสอนเกี่ยวกับ การใช้งาน Sensor อัลตราโซนิก HC-SR4 ในการวัดระยะทางกัน โดยใช้ Nodemcu V.3 พัฒนาด้วยโปรแกรม Arduino IDE หลักการทำงานของ Sensor อัลตราโซนิก .
อัลตราโซนิก ก็คือคลื่นเสียงชนิดหนึ่งย่านความถี่ หนึ่ง ปกติ หูของมนุษย์จะได้ยินควาามถี่ ระหว่าง 20 เฮิรตซ์ -20 กิโลเฮิรตซ์ หากความถี่ต่ำ หรือสูงกว่านี้ เราก็จะไม่ได้ยิน ช่วงประมาณ 18กิโลเฮิรตซ์ขึ้นไป เราจะเรียกความถี่ช่วงนั้นว่า คลื่นอันตร้าโซนิค เราสามารถนำคลื่นนี้ไปใช้งานได้หลากหลายเช่นการไล่แมว หมา หนู หรือใช้แรงสั่นในการล้างอุปกรณ์ ออกนอกเรื่องมากันเยอะแล้ว เข้าเรืองเลยแล้วกันครับ
หลักการทำงานของ Sensor อัลตราโซนิก นำมาใช้วัดระยะทางโดยตัว Sensor จะส่งเสียงออกแล้วแล้วสะท้อนวัตถุกลับมาจากนั้นจะมาคำนวนระยะเวลาที่เสียงเดินทางกลับมา กลายเป็นระยะทางที่วัดได้
อุปกรณ์มีดังต่อไปนี้ ราคาไม่เกิน 500 บาท
- Nodemcu V.3
- Shield V1.0 For Nodemcu V.3
- Sensor HC-SR-04
- จอ LCD I2C 1602
- สายไฟแบบ Female to Female 20CM จำนวน 10 เส้น
- Adapter 9V สำหรับนำไปใช้งานจริงไม่ต้องต่อกับ Computer
การต่ออุปกรณ์สามารถต่อได้ดังนี้

มาถึงส่วนของ Code กันเลย
| #include <LiquidCrystal_I2C.h> | |
| LiquidCrystal_I2C lcd(0x27, 16, 2); //Module IIC/I2C Interface บางรุ่นอาจจะใช้ 0x3f | |
| #define trigPin D5 | |
| #define echoPin D6 | |
| void setup() { | |
| Serial.begin (9600); | |
| pinMode(trigPin, OUTPUT); | |
| pinMode(echoPin, INPUT); | |
| lcd.begin(); | |
| lcd.backlight(); | |
| lcd.home(); | |
| lcd.print("Distance "); | |
| } | |
| void loop() { | |
| long duration, distance; | |
| digitalWrite(trigPin, LOW); // Added this line | |
| delayMicroseconds(2); // Added this line | |
| digitalWrite(trigPin, HIGH); | |
| delayMicroseconds(10); // Added this line | |
| digitalWrite(trigPin, LOW); | |
| duration = pulseIn(echoPin, HIGH); | |
| distance = (duration/2) / 29.1; | |
| lcd.setCursor(0, 1); | |
| if (distance >= 200 || distance <= 0){ | |
| Serial.println("Out of range"); | |
| lcd.print("Out of range"); | |
| } else { | |
| Serial.print(distance); | |
| Serial.println(" cm"); | |
| lcd.print(distance); | |
| lcd.print(" CM "); | |
| } | |
| delay(500); | |
| } |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น