อุปกรณที่ใช้
1. บอร์ด Arduino UNO R3
2. Sensor Shield V5.0
3. จอแสดงผล LCD
4. แผ่นอะคริลิค ขนาด 15 x 30 เซนติเมตร
5. สกรูหัวกลม+น็อตตัวเมีย ขนาด 3 มม. ยาว 12 มม.
6. เสารองแผ่นพีซีบีแบบโลหะ ยาว 25 มม.
7. Jumper 30cm Female to Female
8. อัลตร้าโซนิค เซนเซอร์ SRF05
9. Relay 5 VDC 4 Channel
10. สายไฟแดงดำ
11. มอเตอร์แกนชัก 500 นิวตัน 12VDC
12. เกียร์มอเตอร์ 12 VDC 1,000 rpm
13. แบตเตอรี่ขนาด 12VDC
ขั้นตอนการทำงาน
1. เชื่อมต่อ Relay เข้ากับ Sensor Shield V5.0
Shield <-> Relay
7 <-> IN4
8 <-> IN3
9 <-> IN2
10 <-> IN1
G <-> GND
V <-> VCC
2. เชื่อมต่อ มอเตอร์ เข้ากับ Relay
เขียนโค้ดดังนี้
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
String My_Object;
const unsigned int TRIG_PIN = A2;
const unsigned int ECHO_PIN = A3;
const unsigned int BAUD_RATE = 9600;
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(BAUD_RATE);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
delay(15000);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
delay(100);
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
const unsigned long duration = pulseIn(ECHO_PIN, HIGH);
int distance = duration / 29 / 2;
if ((distance > 1) && (distance < 20)) {
My_Object = "Have Bottle " + String (distance) + " cm";
lcd.begin();
lcd.backlight();
lcd.print(My_Object);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
delay(14000);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
delay(3600);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
delay(120);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
delay(120);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
delay(120);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
delay(120);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
delay(7500);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
else {
My_Object = "No Bottle " + String (distance) + "cm";
lcd.begin();
lcd.backlight();
lcd.print(My_Object);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
}
No comments:
Post a Comment