LAB 5 จอ Oled อ่านค่า Sensor analog
LAB 5 จอ Oled อ่านค่า Sensor analog
เนื่องจากเราต้องการทำหุ่นยนต์ภารกิจเดินตามเส้น เราจึงจำเป็นต้องอ่านค่าพื้นของสนามและเส้นสนาม เพื่อนำไปใช้เป็นค่าอ้างอิงในการแยกเส้นและพื้นสนาม
เนื่องจาก Sensor ที่ใช้เป็นเซนเซอร์แบบ analog ค่าที่อ่านได้จึงอยู่ระหว่าง 0 - 1023 โดยหาค่ากลางของพื้นและเส้นสนาม
ตัวอย่างการบันทึกค่าแสงที่วัดได้
Pin สีดำ สีขาว (สีดำ+สีขาว)/2
A2 200 900 550
A3 200 950 575
ต่อสายเซนเซอร์เข้าที่ Pin 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 display(display_RESET);void setup() { display.begin(SSD1306_SWITCHCAPVCC,0x3C); // กำหนดแอดเดรสของพอร์ตจอเป็น 0x3C (for the 128x64) }void loop(){ int S1 = analogRead(2); // กำหนดตัวแปรเพื่อเก็บค่า Analog Pin2 int S2 = analogRead(3); // กำหนดตัวแปรเพื่อเก็บค่า Analog Pin3 display.clearDisplay(); //ล้างหน้าจอ display.setTextColor(WHITE,BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ จอที่ใช้ไม่สามารถเปลี่ยนสีได้ display.setCursor(0, 0); // เซตตำแหน่ง 0,0 display.setTextSize(1); // เซตขนาดอักษรมีขนาดเป็น 2 display.print(" S1 : "); // แสดงข้อความ S1 : display.print(S1,DEC); // แสดงค่า S1 display.print(" S2 : "); // แสดงข้อความ S2 : display.println(S2,DEC); // แสดงค่า S2 display.display(); // สั่งให้ จอแสดงผลdelay(100);}