Getting Started with the Raspberry Pi Pico Microcontroller and Arduino IDE [EP4]

ในตอนที่ 4 เป็นการทดลองเกี่ยวกับการสร้างสัญญาณพัลซ์วิดธ์มอดูเลตชั่น (PWM Signal) ของบอร์ด Raspberry Pi Pico โดยในการทดลองนี้จะใช้ขา GPIO 16 ในการส่งสัญญาณพัลซ์วิดธ์มอดูเลตชั่นออกมา สำหรับนำไปใช้งานในด้านต่างๆ ทั้งนี้การส่งสัญญาณพัลซ์วิดธ์มอดูเลตชั่นออกมานั้น เราสามารถนำไปควบคุมการทำงานโหลดต่างๆ ได้มากมายเช่น มอเตอร์ไฟฟ้ากระแสตรง, การปรับความค่าร้อน, การปรับความสว่างของแสงและแหล่งจ่ายกำลังไฟฟ้าต่างๆ เป็นต้น

ในการทดลองนี้จะเป็นการเขียนโปรแกรมด้วยคำสั่งพื้นฐานทั่วไป เพื่อให้บอร์ด Raspberry Pi Pico สร้างสัญญาณพัลซ์วิดธ์มอดูเลตชั่นออกมาได้ และสามารถปรับขนาดความกว้างพัลซ์วิดธ์มอดูเลตชั่นได้ตามที่กำหนด ซึ่งนอกจากคำสั่งพื้นฐานแล้ว ยังมีคำสั่งเพิ่มเติมเพื่อกำหนดลักษณะพัลซ์วิดธ์มอดูเลตชั่นได้ เช่น การกำหนดความถี่ของสัญญาณพัลซ์วิดธ์มอดูเลตชั่น การกำหนดความละเอียดในการปรับขนาดพัลซ์วิดธ์มอดูเลตชั่น เป็นต้น โดยตัวอย่างโปรแกรมในการทดลองดังแสดงข้างล่าง
int SETpwm = 0;
void setup() {
Serial.begin(9600);
pinMode(16, OUTPUT); // PWM Pin
//--- SET PWM Signal ---
// analogWriteFreq(1000);
// analogWriteRange(65535);
// analogWriteResolution(16);
}
void loop() {
Serial.println(" PWM = 0");
SETpwm = 0;
analogWrite(16,SETpwm);
delay(500);
Serial.println(" PWM = 64");
SETpwm = 64;
analogWrite(16,SETpwm);
delay(500);
Serial.println(" PWM = 128");
SETpwm = 128;
analogWrite(16,SETpwm);
delay(500);
Serial.println(" PWM = 192");
Serial.println(" ");
SETpwm = 192;
analogWrite(16,SETpwm);
delay(500);
}
ในโปรแกรมทดลองสร้างสัญญาณพัลซ์วิดธ์มอดูเลตชั่น จะใช้คำสั่งการสร้างสัญญาณที่ความถี่เริ่มต้น (Default value) จากนั้นการกำหนดความกว้างของพัลซ์วิดธ์มอดูเลตชั่นจะใช้คำสั่ง analogWrite(16,SETpwm); ที่ตัวแปร SETpwm โดยจะเปลี่ยนค่าตั้งแต่ 0, 64, 128 และ 192 ตามลำดับ ซึ่งในการทดลองจะสังเกตได้จากความสว่างของแอลอีดีที่มาต่อระหว่างขา GPIO 16 และ GND


Raspberry Pi Pico PWM : https://wokwi.com/projects/470735923773973505
รูปที่ 3 เป็นการทดลองโปรแกรมคำสั่ง Arduino และวงจรที่เว็บไซต์ https://wokwi.com เพื่อสังเกตการทำงานอีกครั้งและแชร์ผลการทดลองให้กับผู้อ่าน โดยในการทดลองจะเห็นระดับความสว่างที่แตกต่างกันและการแสดงข้อความ PWM = 0, 64, 128, 192 ตามลำดับ และผลการทดลองที่ได้เป็นไปอย่างถูกต้อง สำหรับในการทดลองสร้างสัญญาณพัลซ์วิดธ์มอดูเลตชั่นกับบอร์ดควบคุม Raspberry Pi Pico ครั้งนี้ จะเป็นพื้นฐานสำหรับนำไปใช้งานในรูปแบบต่างๆ ต่อไป
Reference
- https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html
- https://randomnerdtutorials.com/
- https://github.com/micropython/micropython/wiki
- https://pip-assets.raspberrypi.com/categories/610-raspberry-pi-pico/documents/RP-008355-DS-1-raspberry-pi-pico-python-sdk.pdf
- https://projecthub.arduino.cc/angadiameya007/getting-started-with-raspberry-pi-pico-in-arduino-ide-5e13ee
- https://th.cytron.io/p-edu-project-and-innovation-kits-for-pico-w
- https://wokwi.com/pi-pico
- https://thonny.org/