เนื่องจากพอร์ตที่ใช้งาน Analog โดยบอร์ดหลักของ Lotus Nano Bot สามารถใชงานกับเซนเซอร์ตรวจจับเส้น Lotus T3แบบ Analog ได้ทั้งหมด 5 พอร์ต(ใช้งานได้เฉพาะA0,A1,A2,A3และA6 เนื่องจากตัวบอร์ดได้ใช้พอร์ต A4 และ A5 พ่วงต่อกับจอ OLED I2C และ A7 ใช้กับตัวต้านทานปรับค่าได้ ดังนั้นทั้ง 3 พอร์ตนี้จึงสงวนการใช้งานเฉพาะทาง ) หากผู้ใช้งานทำการติดตั้งโมดูล ADS1015-ADS1115 ก็จะสามารถเพิ่มจำนวนพอร์ต Analog ได้เพิ่มอีก 4 ช่อง(AA0,AA1,AA2และAA3)สัญญาณAnalogที่ใช้งานได้จะรวมเป็นทั้งสิ้น 9 พอร์ต เราสามารถเพิ่มจำนวนพอร์ตและใช้งนได้ตามรูปและวีดีโอข้างล่าง
การใช้งานพอร์ต Analog I2C โดยโมดูล ADS1015-ADS1115 สามารถเรียกใช้งานตาม Code ตัวอย่างข้างล่างดังต่อไปนี้
Arduino Code IDE
//////// ผนวกไลบรารี่ ////////////
#include <Wire.h>
#include <SPI.h>
#include <MechaQMC5883.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_ADS1015.h>
#include <Servo.h>
Adafruit_SSD1306 OLED(-1);
MechaQMC5883 qmc;
Adafruit_ADS1115 ads1115;
void setup() {
OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C); // กำหนดแอดเดรสของพอร์ตจอเป็น 0x3C (for the 128x64)
ads1115.begin(); // เปิดการใช้งาน ADS1115
}
void loop(){
int16_t adc0, adc1, adc2, adc3;
adc0 = ads1115.readADC_SingleEnded(0);
adc1 = ads1115.readADC_SingleEnded(1);
adc2 = ads1115.readADC_SingleEnded(2);
adc3 = ads1115.readADC_SingleEnded(3);
/////////// ทำการ Map ค่าเซนเซอร์ Analog ที่ได้ค่าเหมาะสมกับเซนเซอร์ Lotus T3 /////
int AA0 = map(adc0,0,27000,0,1023);
int AA1 = map(adc1,0,27000,0,1023);
int AA2 = map(adc2,0,27000,0,1023);
int AA3 = map(adc3,0,27000,0,1023);
//////////////////////////////////////////////////////////////////////////////
OLED.clearDisplay();
OLED.setTextColor(WHITE, BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ
OLED.setCursor(0, 0); // เซตตำแหน่ง 0,0
OLED.setTextSize(1); // เซตขนาดอักษรมีขนาดเป็น 1
OLED.println(" ANALOG I2C TEST");
OLED.print(" AA0 = "); OLED.println(AA0); /// แสดงผลค่าอะนาล็อกMapที่พอร์ต AA0
OLED.print(" AA1 = "); OLED.println(AA1); /// แสดงผลค่าอะนาล็อกMapที่พอร์ต AA1
OLED.print(" AA2 = "); OLED.println(AA2); /// แสดงผลค่าอะนาล็อกMapที่พอร์ต AA2
OLED.print(" AA3 = "); OLED.println(AA3); /// แสดงผลค่าอะนาล็อกMapที่พอร์ต AA3
OLED.display();
delay(50);
}
ตัวอย่างวีดีโอการทำงาน