Lab 7 OLED Module

จุดประสงค์การเรียนรู้

สามารถเขียนCodeภาษาCในArduino IDEแสดงผลการทำงานผ่านจอOLED I2Cได้


สาระการเรียนรู้

1. จอแสดงผล OLED I2C

1.1 จอแสดงผล OLED

OLED ย่อมาจากคำว่า Organic Light Emitting Diodes เป็นจอที่มีลักษณะคล้ายกับแผ่นฟิล์ม มีส่วนประกอบของสารอินทรีย์ที่สามารถแปล่งแสงออกมาเมื่อได้รับพลังงานไฟฟ้า ซึ่งเรียกกระบวนการนี้ว่า Electroluminescence โดยทั่วไปจอOLEDจะใช้งานได้ในEmbeded system ได้ทั้งแบบไฟเลี้ยง 3.3v และ 5v

ภาพจอ OLED

1.2 . สัญญาณ I2C

สัญญาณ I2C หรือ IIC ย่อมาจากคำว่า Inter -integrated Circuit คือรูปแบบการสื่อสารข้อมูลด้วยความเร็วต่ำ นิยมใช้กับอุปกรณ์จำพวกไมโครโปเซสเซอร์ และไมโครคอนโทรเลอร์ ประกอบด้วยสัญญาณ 2 เส้นคือ

1) สัญญาณ SDA (Serial Data) คือ สัญญาณรับส่งข้อมูล

2) สัญญาณ SCL (Serial Clock) คือ สัญญาณนาฬิการใช้สำหรับควบคุมการรับส่งข้อมูล

2. คำสั่งการใช้งาน

รูปแบบการใช้งานคำสั่งในภาษาซีของArduino IDEในเนื้อหานี้ จะใช้คำสั่งดังต่อไปนี้

วัสดุอุปกรณ์

1. ไมโครสวิตซ์ ชนิดกดติดปล่อยดับ จำนวน 1 ตัว

2. ตัวต้านทาน 10 กิโลโอห์ม จำนวน 1 ตัว

3. บอร์ด ESP32 Devkit V.1 จำนวน 1 บอร์ด

4. สายMicro USB จำนวน 1 เส้น

5. Breadboard

6. สายแพร Male-Male

7. หลอด LED จำนวน 3 หลอด

8. ตัวต้านทาน 220 โอห์ม จำนวน 3 ตัว

9. ตัวต้านทานปรับค่าได้ Potentiometer จำนวน 1 ตัว

10. ลำโพงBuzzer จำนวน 1 อัน

11. จอแสดงผล OLED I2C จำนวน 1 อัน

วิธีทำการทดลอง

1. ต่อวงจรเพิ่มเติมจากLab1-Lab6 โดยใช้จอแสดงผลOLEDชนิดI2C จำนวน 1 อัน ตาม Datasheetและรูปการต่อวงจรด้านล่าง

2. ทำการCopy Codeด้านล่างก่อนUpload code Arduino IDE ลงไปใบนบอร์ด ESP32 Devkit v1

ควรเลือกที่Tool -> Board -> ESP32 Arduino ->ESP32 Dev Module (ดังภาพประกอบด้านล่าง)

Arduino IDE Code

#include <Wire.h>

#include <SPI.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 OLED(-1);

void setup() {

OLED.begin(SSD1306_SWITCHCAPVCC,0x3C); // กำหนดแอดเดรสของพอร์ตจอเป็น 0x3C (for the 128x64)

}

void loop(){

OLED.clearDisplay();

OLED.setTextColor(WHITE,BLACK);

OLED.setCursor(10,0);

OLED.setTextSize(2);

OLED.println("CiRA CORE");

OLED.println(" ROBOTICS");

OLED.display();

}

3.หลังจากนั้นให้เข้ามาที่ Tool ->Port แล้วเลือกพอร์ตC om portที่เชื่อมกับUSB ดังรูปข้างล่าง

** กรณีใช้งานใน Ubuntu พอร์ตที่ใช้อาจจะเป็นพอร์ตttyUSB0 ซึ่งจะต้องเลือกเป็นพอร์ตชื่อนี้แทนCom port และก่อนกดUpload ให้ทำการเปิดTerminal โดยเข้าไปที่desktop คลิกขวาตรงพื้นที่ว่าง แล้วเลือก Open Terminal หลังจากนั้นให้พิมพ์ข้อความในTerminalดังนี้เพื่อทำการเปิดพอร์ตUSB : sudo chmod 666 /dev/ttyUSB0 หลังจากนั้นให้กดEnter และทำการกรอกรหัสผ่านของเครื่องพร้อมกับกดปุ่มEnterอีกครั้ง หลังจากนั้นก็Upload codeในArduino IDE

4.ทำการกดปุ่มUpload ที่เป็นรูปหัวลูกษร หรือจะกด Ctrl+u ที่คีย์บอร์ดเพื่อทำการUploadโปรแกรมไปที่บอร์ดESP32 ดังรูปข้างล่าง

5.หลังจากที่Uploadโปรแกรมแล้วจะมีการแสดงข้อความดังรูปข้างล่างขึ้นที่จอOLED