LAB 6 จอ Oled อ่านค่า ADC จาก mcp3008
LAB 6 จอ Oled อ่านค่า ADC จาก mcp3008
เนื่องจากชิว LooKBas Nano ได้ฝังชิบ mcp3008 ไว้เพื่อขยายสัญญาณ analog เพิ่มอีกจำนวน 8 Pin เพื่อให้เพียงพอต่อการใช้งานทำหุ่นยนต์เดินตามเส้นในรูปแบบต่างๆ
ตัวอย่างการบันทึกค่าแสงที่วัดได้
Pin สีดำ สีขาว (สีดำ+สีขาว)/2
Ch0 200 900 550
Ch1 200 950 575
.
.
.
Ch8 200 950 575
เนื่องจาก mcp3008 เป็นการใช้ชิพอีก 1 ตัวเพื่อเพิ่มสัญญาณ ขอความกรณาท่านตรวจเช็8 Library ด้วย ก่อนทำการใช้งาน lab
ต่อสายเซนเซอร์เข้าที่ Pin Ch0 Ch1 Ch2 Ch3
สายสีขาวต่อกับขา S
สายสีแดง ขา + (V)
สายสีดำขา - (G)
#include <SPI.h>#include <Wire.h>#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>#define display_RESET 4 Adafruit_SSD1306 display(display_RESET);#include <Adafruit_MCP3008.h>Adafruit_MCP3008 adc;void setup() { display.begin(SSD1306_SWITCHCAPVCC,0x3C); // กำหนดแอดเดรสของพอร์ตจอเป็น 0x3C (for the 128x64) adc.begin(13, 11, 12, 10);//D12 = MISO D13 = SCK D11 = MOSI D10 = CS}void loop(){ int S1 = adc.readADC(0); // กำหนดตัวแปรเพื่อเก็บค่า ADC Ch0 int S2 = adc.readADC(1); // กำหนดตัวแปรเพื่อเก็บค่า ADC Ch1 int S3 = adc.readADC(2); // กำหนดตัวแปรเพื่อเก็บค่า ADC Ch2 int S4 = adc.readADC(3); // กำหนดตัวแปรเพื่อเก็บค่า ADC Ch3 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.print(" S3 : "); // แสดงข้อความ S3 : display.println(S3,DEC); // แสดงค่า S3 display.print(" S4 : "); // แสดงข้อความ S4 : display.println(S4,DEC); // แสดงค่า S4 display.display(); // สั่งให้ จอแสดงผลdelay(100);}