โมดูลเซ็นเซอร์ IR Infrared
เซ็นเซอร์ตรวจจับวัตถุ IR Infrared เป็นโมดูลเซ็นเซอร์ตรวจจับวัตถุระยะใกล้ มีหลักการทำงานโดยให้หลอด Infrared LED ทำการส่งสัญญาณ เป็นแสงอินฟราเรดออกไปตกกระทบกับวัตถุที่ตรวจพบในระยะ และทำการสะท้อนกลับมายังตัวหลอดโฟโต้ไดโอดที่ทำหน้าที่รับแสงอินฟราเรด โดยจะให้ค่า output ออกมาเป็น Analog signal ใช้ในการปรับความไวต่อการตรวจจับแสงอินฟราเรด ซึ่งจะส่งผลต่อระยะในการตรวจพบวัตถุของตัวเซนเซอร์ ตัวโมดูลนี้ก็มีราคาถูก ขนาดเล็ก สะดวกในการนำไปใช้ติดตั้งกับงานจำพวก หุ่นยนต์, Smart car, หุ่นยนต์หลบสิ่งกีดขวาง
ใช้หลักการสะท้อนของแสงในการตรวจจับ โดยมีหลอด LED อินฟาเรดส่งแสง และมีโฟโต้ทรานซิสเตอร์ในการรับแสง
สามารถแยกสีขาว – ดำ ได้ดี
ค่าที่ ส่งออกมา 0-4095
การต่อสาย Sensor
#include <ESP32Servo.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int s0,s1,s2,s3 ;
void setup() {
// put your setup code here, to run once:
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
}
void loop() {
while (true) {
s0 = analogRead(14);
s1 = analogRead(25);
s2 = analogRead(26);
s3 = analogRead(27);
display.clearDisplay();
display.setTextColor(WHITE, BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ
display.setCursor(0, 0); // เซตตำแหน่ง 0,0
display.setTextSize(1); // เซตขนาดอักษรมีขนาดเป็น 1
display.print(" S0 = "); display.println(s0); // แสดงค่าเซนเซอร์ S0
display.print(" S1 = "); display.println(s1); // แสดงค่าเซนเซอร์ S1
display.print(" S2 = "); display.println(s2); // แสดงค่าเซนเซอร์ S2
display.print(" S3 = "); display.println(s3); // แสดงค่าเซนเซอร์ S3
display.display();
delay(50);
}
}
เนื่องจากเราต้องการทำหุ่นยนต์ภารกิจเดินตามเส้น เราจึงจำเป็นต้องอ่านค่าพื้นของสนามและเส้นสนาม เพื่อนำไปใช้เป็นค่าอ้างอิงในการแยกเส้นและพื้นสนาม Sensor ที่ใช้เป็นเซนเซอร์แบบ analog ค่าที่อ่านได้จึงอยู่ระหว่าง 0 - 4095 โดยหาค่ากลางของพื้นและเส้นสนาม
ตัวอย่างการบันทึกค่าแสงที่วัดได้
Pin สีดำ สีขาว (สีดำ+สีขาว)/2
A0 500 3800 2400
A1 600 4000 2600
A2 550 3900 2500
A3 400 3500 2150