#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // pixel ความกว้าง
#define SCREEN_HEIGHT 64 // pixel ความสูง
// กำหนดขาต่อ I2C กับจอ OLED
#define OLED_RESET -1 //ขา reset เป็น -1 ถ้าใช้ร่วมกับขา Arduino reset
Adafruit_SSD1306 OLED(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int var = 0; // ตัวแปรสำหรับทดสอบแสดงผล
const int muxSIG = A0;
const int muxS0 = 3;
const int muxS1 = 4;
const int muxS2 = 5;
const int muxS3 = 6;
int SetMuxChannel(byte channel)
{
digitalWrite(muxS0, bitRead(channel, 0));
digitalWrite(muxS1, bitRead(channel, 1));
digitalWrite(muxS2, bitRead(channel, 2));
digitalWrite(muxS3, bitRead(channel, 3));
}
void setup(){
pinMode(muxS0, OUTPUT);
pinMode(muxS1, OUTPUT);
pinMode(muxS2, OUTPUT);
pinMode(muxS3, OUTPUT);
Serial.begin(9600);
if (!OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // สั่งให้จอ OLED เริ่มทำงานที่ Address 0x3C
Serial.println("SSD1306 allocation failed");
} else {
Serial.println("ArdinoAll OLED Start Work !!!");
}
delay(1000);
}
void loop(){
SetMuxChannel(7);
int val = analogRead(muxSIG);
float val1 = val * (5.0 / 1023.0);
SetMuxChannel(8);
int val2 = analogRead(muxSIG);
float val3 = val2 * (5.0 / 1023.0);
OLED.clearDisplay(); // ลบภาพในหน้าจอทั้งหมด
OLED.setTextColor(WHITE, BLACK); //กำหนดข้อความสีขาว ฉากหลังสีดำ
OLED.setCursor(0, 0); // กำหนดตำแหน่ง x,y ที่จะแสดงผล
OLED.setTextSize(2); // กำหนดขนาดตัวอักษร
OLED.println("OLED"); // แสดงผลข้อความ ALL
OLED.setTextSize(1);
OLED.print("welcome to");
OLED.println(" All");
OLED.setTextColor(BLACK, WHITE); //กลับสีข้อความกับพื้นหลัง
OLED.print("www.arduinoall.com");
OLED.setTextColor(WHITE, BLACK);
OLED.setCursor(60, 0);
OLED.setTextSize(2);
OLED.println(var, DEC);
OLED.setCursor(0, 40);
OLED.setTextSize(2);
OLED.println(val1); // แสดงผลข้อความ ALL
OLED.display(); // สั่งให้จอแสดงผล
Serial.print(val1);
Serial.print("\t");
Serial.println(val3);
delay(100);
}
Loading
cd74hc4067
cd74hc4067