วันศุกร์ที่ 20 มกราคม พ.ศ. 2560

PIR เซนเซอร์ตรวจจับความเคลื่อนไหว Motion Sensor Module

PIR เซนเซอร์ตรวจจับความเคลื่อนไหว Motion Sensor Module

ตรวจจับความเคลื่อนไหวจากความร้อน เมื่อมีคนเดินผ่านก็จะจับค่าความร้อนที่เปลี่ยนแปลง แล้วส่งค่าสัญญาณมีไฟ ออกมา ในกรณีที่ไม่มีการเปลี่ยนแปลงส่งค่าไม่มีไฟ ออกมา เราสามารถนำค่านี้ไปสั่งควบคุม Arduino ได้ สามารถปรับเวลาหน่วงเวลาในการตรวจจับครั้งต่อไปได้ ปรับระยะทางการตรวจจับได้ 3-7 เมตร มีช่องให้ต่อ LDR เพิ่ม เพื่อให้ทำงานตรวจจับแค่ตอนกลางคืน


รายละเอียด PIR เซนเซอร์ตรวจจับความเคลื่อนไหว Motion Sensor Module

Dimension: 3.2cm x 2.4cm x 1.8cm (approx)Infrared sensor with control circuit boardThe sensitivity and holding time can be adjustedWorking Voltage Range: DC 3V- 5VCurrent drain:<60uAVoltage Output: High/Low level signal:3.3V TTL outputDetection distance: 3--7M(can be adjusted)Detection range: <140°Delay time: 5-200S(can be adjusted, default 5s +-3%)Blockade time: 2.5 S (default)Trigger: L: Non-repeatable trigger  H: Repeat Trigger (default)Work temperature:-20-+80°CTrigger Method: L unrepeatable trigger / H repeatable trigger



ตัวอย่างโคด Code Arduino PIR Motion Sensor Module


  • int ledPin= 13;
    int inputPin= 3;
    void setup(){
      pinMode(ledPin, OUTPUT);
      pinMode(inputPin, INPUT);
    }
    void loop(){
      int valuedigitalRead(inputPin);
      if (value == HIGH)
      {
        digitalWrite(ledPin, HIGH);
        delay(1000) ;
      }
      else
      {
        digitalWrite(ledPin, LOW);
      }
    }

วันเสาร์ที่ 14 มกราคม พ.ศ. 2560

Arduino C++ (ไฟวิ่ง)

บทความตอนนี้จะเป็นการทดลองเขียนไฟวิ่ง 4 ดวงกันครับ โดยจะกำหนดขาใช้งาน ที่จะต่อกับ LED ดังนี้ คือ 
ขา Digital pin 2 จะต่อกับ LED 1 
ขา Digital pin 3 จะต่อกับ LED 2 
ขา Digital pin 4 จะต่อกับ LED 3 
ขา Digital pin 5 จะต่อกับ LED 4 
โดยการทำงานในตอนนี้จะไห้วิ่งแบบเรียงลำดับกันไป จาก LED 1 ไปถึง LED 4 ครับ 
คำสั่งกำหนดสถานะของpin HIGH หรือ LOW
digitalWrite(pinของ Arduino,สถานะมี HIGH และ LOW); 

int led1 = 2; // กำหนดขาใช้งาน 
int led2 = 3; 
int led3 = 4; 
int led4 = 5; 
void setup() 

pinMode(led1, OUTPUT); // กำหนดขาทำหน้าที่ OUTPUT 
pinMode(led2, OUTPUT); 
pinMode(led3, OUTPUT); 
pinMode(led4, OUTPUT); 

void loop() 

digitalWrite(led1,HIGH); // ไฟ LED 1 ติด 500 ms 
delay(500); 
digitalWrite(led1,LOW); // ไฟ LED 1 ดับ500 ms 
delay(500); 
digitalWrite(led2,HIGH); 
delay(500); 
digitalWrite(led2,LOW); 
delay(500); 
digitalWrite(led3,HIGH); 
delay(500); 
digitalWrite(led3,LOW); 
delay(500); 
digitalWrite(led4,HIGH); 
delay(500); 
digitalWrite(led4,LOW); 
delay(500); 

วันพุธที่ 4 มกราคม พ.ศ. 2560

การใช้งาน โมดูลวัดระยะทาง Ultrasonic Module Distance Measuring Transducer Sensor กับ Arduino

การใช้งาน โมดูลวัดระยะทาง Ultrasonic Module Distance Measuring Transducer Sensor กับ Arduino


การวัดระยะทางโดยใช้ โมดูล Ultrasonic ร่วมกับ Arduino สามารถทำได้ง่าย อุปกรณ์โมดูล Ultrasonic มีความแม่นยำในการวัดระยะทาง การทำงานเป็นแบบคลื่นสะท้อนกลับแล้วนำมาคำนวน จึงเหมาะสำหรับมาใช้ในการหลบหลีกสิ่งกีดขวาง ตรวจจับวัตถุที่อยู่ในรัศมีที่ต้องการ


วิธีการต่อขา ใช้งาน โมดูลวัดระยะทาง Ultrasonic Module Distance Measuring Transducer Sensor กับ Arduino

  • Vcc - 5v
  • Gnd - Gnd
  • Trig - 13
  • Echo - 12
ตัวอย่างโคด Arduino ใช้งาน โมดูลวัดระยะทาง Ultrasonic Module Distance Measuring Transducer Sensor
const int pingPin = 13;
    int inPin = 12;

     
    void setup() {
      Serial.begin(9600);
    }
     
    void loop()
    {
      long duration, cm;
     
      pinMode(pingPin, OUTPUT);
     

      digitalWrite(pingPin, LOW);
      delayMicroseconds(2);
      digitalWrite(pingPin, HIGH);
      delayMicroseconds(5);
      digitalWrite(pingPin, LOW);
      pinMode(inPin, INPUT);
      duration = pulseIn(inPin, HIGH);

      cm = microsecondsToCentimeters(duration);

      Serial.print(cm);
      Serial.print("cm");
      Serial.println();     
      delay(100);
    }
     
    long microsecondsToCentimeters(long microseconds)
    {
      // The speed of sound is 340 m/s or 29 microseconds per centimeter.
      // The ping travels out and back, so to find the distance of the
      // object we take half of the distance travelled.
      return microseconds / 29 / 2;
    }