Infrared Obstacle Avoidance Sensor Modul KY-032
Infrared IR Sensor Obstacle Avoidance Sensor ให้สัญญาณออกมาเป็น TTL Lavelระยะในการตรวจจับวัตถุ 2 ถึง 40 เซ็นติเมตรสามารถตรวจจับวัตถุความไวสูงๆได้ใช้แรงดันในการทำงานได้ตั้งแต่ 3.3 ถึง 5V มีตัวต้านทานปรับค่าได้บนโมดูล 2 ตัว ตัวแรกใช้ปรับความถี่ให้ได้ 38KHz (ไม่ควรปรับ) ส่วนความต้านทานตัวที่สองปรับระยะทาง มีประสิทธิ์ภาพในการตรวจจับดีกว่ารุ่น Reflective Photoelectric ข้อเสียของรุ่น Reflective Photoelectric คือการตรวจจับอาจจะผิดพลาดได้ หากนำไปใช้งานกลางแจ้ง หรือสถานที่ที่มีแสงอินฟาเรด รุ่นนี้จะแก้ปัญหาโดยใช้ตัวรับที่เป็นไอซี(ตัวสีดำ3ขา) มาใช้แทนตัวรับที่เป็นโฟโต้ทรานซิสเตอร์แบบเดิม ทำให้มีประสิทธิ์ภาพในการใช้งานที่สูงกว่า และไม่มีปัญหาเรื่องแสงอินฟาเรดจากภายนอกเข้ามารบกวน
Product Description
- Working voltage: DC 3.3V-5V
- Working current: 20mA
- Working temperature: -10degree+50degree
- Detection distance : 2-40cm
- IO interface: 4 line (-/+/S/EN)
- Output signal: TTL Level
- Adjusting mode: Multi resistance regulation
- Effective angle: 35
- Size: 4.5x1.1cm(approx)
*ทดสอบ โดยประมาณ 40 cm sensor ตรวจจับได้ตามสเป็ก โดยปรับที่ Distance
ตัว vr frequency มาจากโรงงาน ก็ต้องปรับเหมือนกัน 38Khz ตามรูป
CODE:
/*
Arduino with Test B027 Infrared Obstacle Avoidance Sensor Modul sensor distance
For complete project details visit:Arduinoshop99
*/
int led = 13; // the pin that the LED is atteched to
int sensor = 2; // the pin that the sensor is atteched to
int state = HIGH; // by default no motion detected
int val = 0; // variable to store the sensor status (value)
void setup() {
pinMode(led OUTPUT); // initalize LED as an output
pinMode(sensor INPUT); // initialize sensor as an input
Serial.begin(115200); // initialize serial
}
void loop(){
val = digitalRead(sensor); // read sensor value
if (val == LOW) { // check if the sensor is LOW
digitalWrite(led LOW); // turn LED OFF
delay(100); // delay 100 milliseconds
if (state == HIGH) {
Serial.println( Warning Detect );
Serial.println();
state = LOW; // update variable state to C
}
}
else {
digitalWrite(led HIGH); // turn LED ON
delay(200); // delay 200 milliseconds
if (state == LOW){
Serial.println(Clear OK);
Serial.println();
state = HIGH; // update variable state to HIGH
}
}
}