การเริ่มต้นใช้งานบอร์ด WeMos ESP32-C3 Pico#
▷ WeMos ESP32-C3 Pico#
บทความนี้กล่าวถึง การทดลองใช้งานบอร์ดไมโครคอนโทรลเลอร์ WeMos ESP32-C3 Pico ของบริษัท Wemos.cc ในเบื้องต้น
รูป: บอร์ด WeMos ESP32-C3 Pico v1.0.0 (มุมมองจากด้านหน้าและด้านหลัง)
รูป: แผนผังแสดงตำแหน่งขา (PinOut) ของบอร์ด WeMos ESP32-C3 Pico
ข้อมูลเกี่ยวกับบอร์ด
- ชิปตัวประมวลผล: Espressif ESP32-C3FH4 SoC
- Single-Core RISC-V CPU, 160MHz
- IEEE 802.11 b/g/n 2.4GHz WiFi / BLE 5.0
- มีหน่วยความจำแบบแฟลชรวมไว้ในชิปเดียวกัน: Embedded SPI Flash (4MB)
- เชื่อมต่อด้วยคอนเนกเตอร์ Type-C USB
- ใช้ตัวสร้างความถี่ Crystal Oscillator 40MHz
- ไม่มีชิป USB-to-Serial Bridge ดังนั้นต้องใช้งานแบบ USB-CDC สำหรับการรับส่งข้อมูลกับคอมพิวเตอร์ของผู้ใช้
- ใช้ไอซีควบคุมแรงดันคงที่: MC6211C33 LDO Voltage Regulator (3.3V)
- ใช้สายอากาศแบบ Ceramic Chip Antenna (SMD)
- มีปุ่มกด BOOT (10k pullup, GPIO-9)
- มีปุ่มกด RESET (10k pullup, CHIP_EN)
- มีไอซีสำหรับชาร์จแบตเตอรี: On-board Battery Charging IC (TP4054)
- 500mA Charging Current (max.)
- Red LED (Charging Status)
- 12x I/O Pins
- 6x ADC Input Pins (A0 .. A5)
- 1x WS2812 RGB LED (GPIO-7, 3.3V)
- 1x LOLIN I2C Port (4-pin)
- 1x Battery Connector (PH2.0 Connector)
- ใช้งานได้ร่วมกับโมดูล WeMos LOLIN D1-mini shields
- ถ้ามีการบัดกรีด้วยขา Pin Headers ก็สามารถเสียบขาลงบนเบรดบอร์ดได้ (Breadboard-Friendly)
รูป: ผังวงจรของบอร์ด Wemos C3 Pico (Schematic)
ขา VIN ซึ่งเป็นแรงดันไฟเลี้ยงและนำไปต่อกับไอซี 3.3V LDO Regulator จะได้ไฟเลี้ยงจากสองแหล่งจ่าย
- VBUS (5V) จากพอร์ต USB Type-C หรือ
- VBAT ซึ่งเป็นแรงดันไฟเลี้ยงจากแบตเตอรี่ (ถ้ามีการต่อใช้งาน 3.7V LiPo)
ถ้าเชื่อมต่อกับแบตเตอรี่ LiPo และไม่เสียบสาย USB Type-C วงจรบนบอร์ดจะได้รับแรงดันไฟเลี้ยงจาก VBAT
รูป: บางส่วนของผังวงจรที่แสดงให้เห็นวงจรสำหรับแหล่งจ่ายไฟเลี้ยงบนบอร์ด
ถ้าบัดกรีเชื่อมต่อที่ตำแหน่ง Solder Jumper JP1 ก็จะใช้ขา GPIO3 เป็นขาแอนะล็อกอินพุต ซึ่งต่อผ่านวงจรแบ่งแรงดัน (ใช้ตัวต้านทาน 100k จำนวน 2 ตัว ต่ออนุกรมกัน) ได้ค่าเท่ากับ VBAT/2 และสามารถใช้ ADC ภายในชิป เพื่อวัดระดับแรงดันแบตเตอรี่ได้
ข้อสังเกต: บอร์ด ESP32-C3 ของ Wemos.cc อีกบอร์ดหนึ่งคือ WeMos C3 Mini (v2.1.0) แต่มีขนาดใหญ่กว่า WeMos C3 Pico ใช้สายอากาศแบบ PCB Antenna และไม่มีวงจรชาร์จแบตเตอรี่
บทความที่เกี่ยวข้อง: "การเริ่มต้นใช้งานบอร์ด WeMos LOLIN C3 Mini"
▷ Arduino Sketch Demo#
ถัดไปเป็นตัวอย่างโค้ด Arduino Sketch สำหรับทดลองใช้งานกับ Arduino IDE
โดยจะต้องมีการติดตั้ง Arduino Core for ESP32 ไว้แล้ว
(เพิ่มรายการสำหรับไฟล์ package_esp32_index.json
ใน Arduino Board Manager
แล้วติดตั้งแพคเกจสำหรับ ESP32)
URL: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
void setup() {
Serial.begin(115200);
while(!Serial);
delay(1000);
Serial.println("\nWemos ESP32 C3 Mini / Pico Demo...\n");
}
#define SEP_LINE "====================================="
void loop() {
Serial.println( SEP_LINE SEP_LINE );
Serial.printf("Espressif IDF: %s\n", ESP.getSdkVersion() );
Serial.printf("Chip Revision %lu\n", ESP.getChipRevision() );
Serial.printf("Cpu Freq. %lu MHz\n", ESP.getCpuFreqMHz() );
Serial.printf("Heap (total/free): %lu / %lu bytes\n",
ESP.getHeapSize(), ESP.getFreeHeap());
Serial.printf("PSRAM (toal/free): %lu / %lu bytes\n",
ESP.getPsramSize(), ESP.getFreePsram());
Serial.printf("Flash Size: %lu MB, Flash Speed: %lu MHz\n",
ESP.getFlashChipSize()/(1024*1024UL),
ESP.getFlashChipSpeed()/(uint32_t) 1e6 );
// more info...
Serial.printf("Espressif chip model: %s\n",
ESP.getChipModel() );
Serial.printf("Number of CPU Cores: %d\n",
ESP.getChipCores() );
String str;
switch(ESP.getFlashChipMode()) {
case FM_QIO: str = "QIO"; break;
case FM_QOUT: str = "QOUT"; break;
case FM_DIO: str = "DIO"; break;
case FM_DOUT: str = "DOUT"; break;
default: str = "Unknown"; break;
}
Serial.printf("Flash model: %s\n", str.c_str() );
Serial.printf( "Arduino ESP32 Core v%u.%u.%u\n",
ESP_ARDUINO_VERSION_MAJOR,
ESP_ARDUINO_VERSION_MINOR,
ESP_ARDUINO_VERSION_PATCH );
Serial.println( SEP_LINE SEP_LINE );
delay(4000);
}
รูป: ตัวอย่างการตั้งค่าเพื่อเลือกบอร์ดใช้งานสำหรับ Arduino IDE
รูป: ตัวอย่างข้อความเอาต์พุต
▷ กล่าวสรุป#
บทความนี้ได้นำเสนอการใช้งานบอร์ด Wemos C3 Pico และมีตัวอย่างโค้ดสำหรับการเขียนโปรแกรมด้วย Arduino IDE สำหรับการทดลองในเบื้องต้น
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Created: 2023-09-17 | Last Updated: 2023-09-17