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