เนื่องจากเราต้องการทำหุ่นยนต์ภารกิจเดินตามเส้น เราจึงจำเป็นต้องอ่านค่าพื้นของสนามและเส้นสนาม เพื่อนำไปใช้เป็นค่าอ้างอิงในการแยกเส้นและพื้นสนาม
และ Sensor ที่ใช้เป็นเซนเซอร์แบบ analog ค่าที่อ่านได้จึงอยู่ระหว่าง 0 - 1023 โดยหาค่ากลางของพื้นและเส้นสนาม
ตัวอย่างการบันทึกค่าแสงที่วัดได้
Pin สีดำ สีขาว (สีดำ+สีขาว)/2
A2 200 900 550
A3 200 950 575
บอร์ด TKL Nano Learning
เซนเซอร์ analog
สายไฟต่อเซนเซอร์
ต่อสายเซนเซอร์เข้าที่ Pin A0 A1 A2 และ A3 โดยให้
สายสีขาวต่อกับขา S
สายสีแดง ขา + (V)
สายสีดำขา - (G)
#include <Wire.h> //เรียกใช้ Library Wire เป็นการเชื่อม รูปแบบ I2C
#include <SPI.h> //เรียกใช้ Library SPI เป็นการเชื่อม รูปแบบ SPI
#include <Adafruit_GFX.h> //เรียกใช้ Library Adafruit_GFX เพื่อใช้วาดงานกราฟฟิคบนจอ
#include <Adafruit_SSD1306.h> //เรียกใช้ Library Adafruit_SSD1306 เพื่อใช้งานที่ใช้ ชิพ SSD1306
#define display_RESET 4
Adafruit_SSD1306 Oled(Oled_RESET);
void setup() {
Oled.begin(SSD1306_SWITCHCAPVCC,0x3C); // กำหนดแอดเดรสของพอร์ตจอเป็น 0x3C (for the 128x64)
}
void loop(){
int S0 = analogRead(0); // กำหนดตัวแปรเพื่อเก็บค่า Analog Pin2
int S1 = analogRead(1); // กำหนดตัวแปรเพื่อเก็บค่า Analog Pin3
Oled.clearDisplay(); //ล้างหน้าจอ
Oled.setTextColor(WHITE,BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ จอที่ใช้ไม่สามารถเปลี่ยนสีได้
Oled.setCursor(0, 0); // เซตตำแหน่ง 0,0
Oled.setTextSize(1); // เซตขนาดอักษรมีขนาดเป็น 2
Oled.print(" S1 : "); // แสดงข้อความ S1 :
Oled.print(S1); // แสดงค่า S1
Oled.print(" S2 : "); // แสดงข้อความ S2 :
Oled.println(S2); // แสดงค่า S2
Oled.display(); // สั่งให้ จอแสดงผล
delay(100);
}