วันอาทิตย์ที่ 25 มีนาคม พ.ศ. 2561

ส่งงานครั้งที่12

Door Alarm using Arduino and Ultrasonic Sensor


#include <NewPing.h> // สั่งเปิด library NewPing.h
#define TRIGGER_PIN  12  
#define ECHO_PIN     11  .
#define MAX_DISTANCE 500 // กำหนดค่าสูงสุด 500

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // กำหนดค่า TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE โดยตัวแปร NewPing

unsigned int pingSpeed = 50; // ให้ pingSpeed เเสดงค่าเท่ากับ 50
unsigned long pingTimer;
int flag = 0; // กำหนดใชช้ ping ต่อไป

void setup() {
  Serial.begin(115200); // กำหนดอัตราการรับส่งข้อมูล 115200 บิต/วินาที
  pingTimer = millis();
  pinMode(10, OUTPUT); 

}

void loop() {
  if (millis() >= pingTimer) {   // ถ้ามิลลิวินาทีมากกว่าหรือเท่ากับ pingTimer
    pingTimer += pingSpeed;      //ให้ไปที่ pingต่อไป
    sonar.ping_timer(echoCheck); // ส่ง Ping ให้เรียกฟังก์ชัน "echoCheck" ทุกๆ 24uS ซึ่งคุณสามารถตรวจสอบสถานะ ping ได้
  }
  if (flag == 1)
  {
    digitalWrite(10, HIGH);

    delay(500);
    digitalWrite(10, LOW);

    delay(500);
    digitalWrite(10, HIGH);

    delay(500);
    digitalWrite(10, LOW);

    delay(500);
  }
  else
  {
    digitalWrite(10, LOW);
  }
}

void echoCheck() { 
  if (sonar.check_timer()) { // เชคว่าได้รับ ping หรือไม่
    Serial.print("Ping: "); 
    Serial.print(sonar.ping_result / US_ROUNDTRIP_CM); // Ping ส่งคืนผลลัพธ์ uS ใน ping_result แปลงเป็น cm โดยใช้ US_ROUNDTRIP_CM
    Serial.println("cm");
    if ((sonar.ping_result / US_ROUNDTRIP_CM) < 50) //ถ้า sonar.ping_result / US_ROUNDTRIP_CM มีค่าน้อยกว่า 50
      flag = 1;
    else if ((sonar.ping_result / US_ROUNDTRIP_CM) > 50) //ถ้าsonar.ping_result / US_ROUNDTRIP_CM มีค่ามากกว่า 50
      flag = 0;
  }
}



Arduino Burglar Alarm Circuit Diagram using Ultrasonic Sensor

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Mini Project

 Control Lamp 220v  With LDR const int lamp = 12; const int ldrPin=A0; #include <Wire.h> #include <LiquidCrystal_I2C.h&g...