Tuesday, December 18, 2018

ทดสอบ Relay



อุปกรณที่ใช้


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