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

ในบทความตอนที่ 2 เป็นการทดลองใช้งานขาอินพุตและเอาต์พุตของบอร์ด Raspberry Pi Pico ด้วยการกำหนดเป็นการรับค่าและส่งค่าแบบลอจิก (TTL Level) ด้วยการให้ขาหนึ่งรับสัญญาณเข้าอินพุต จากนั้นก็จะกำหนดให้อีกขาหนึ่งเป็นเอาต์พุต ซึ่งจะทำตามเงื่อนไขของสัญญาณอินพุตที่รับเข้ามา โดยการทดลลองนี้ช่วยให้เข้าใจการใช้คำสั่งด้วยโปรแกรม Arduino IDE และลักษณะผลการทดลองที่เกิดขึ้น

ในการทดลองจะใช้ขา GPIO 16 และ GPIO 17 (ในตำแหน่งกรอบสีแดงรูปที่ 1) โดยให้ขา GPIO 16 ทำหน้าที่เป็นเอาต์พุตสำหรับขับแอลอีดีและให้ขา GPIO 17 ทำหน้าที่รับสัญญาณอินพุตด้วยการรับค่าจากสวิตช์กด ทั้งนี้เพื่อทดลองใช้ตัวอย่างโปรแกรมและสังเกตผลการทดลองที่ได้ ซึ่งตัวอย่างโปรแกรม Arduino ดังแสดงข้างล่าง
const int SwPin = 17;
const int ledPin = 16;
int buttonState = 0;
void setup() {
Serial.begin(9600);
pinMode(SwPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
buttonState = digitalRead(SwPin);
Serial.println(buttonState);
if (buttonState == LOW) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
ในตัวอย่างโปรแกรมสำหรับการทดลองจะรับค่าสัญญาณอินพุตและเอาต์พุตแบบลอจิก โดยเมื่อกดสวิตช์ คำสั่ง if (buttonState == LOW) จะตรวจสอบว่าเงื่อนไขว่าสถานะเป็นจริง ที่ขา GPIO 17 ตามที่ได้ออกแบบวงจรรับสัญญาณได้ถูกต้อง โปรแกรมก็จะกำหนดให้แอลอีดีติดสว่างด้วยคำสั่ง digitalWrite(ledPin, HIGH); (Logic = 1 หรือ ON) ที่ตำแหน่งขา GPIO 16 ในทางกลับกันกรณีที่สวิตช์ไม่ถูกกดแอลอีดีจะกำหนดให้ดับลง ด้วยคำสั่ง digitalWrite(ledPin, LOW); ทั้งนี้การใช้งานคำสั่งโปรแกรมจะเหมือนกับบอร์ดควบคุมในกลุ่ม Arduino ทั่วไป


ในรูปที่ 2 และรูปที่ 3 แสดงผลการทดลองเมื่อสวิตช์ไม่ถูกกด/และถูกกด ในหน้าต่าง COM6 เป็นค่าเป็นลอจิก 1 และ ลอกจิก 0 ให้ทราบ โดยเมื่อทดลองกับบอร์ด Raspberry Pi Pico จริงให้ผลการทดลองได้อย่างถูกต้องดังแสดงในรูปที่ 4 และรูปที่ 5



Raspberry Pi Pico LAB I/O : https://wokwi.com/projects/470695355987591169
รูปที่ 6 เป็นการทดลองโปรแกรมคำสั่ง Arduino และวงจรที่เว็บไซต์ https://wokwi.com เพื่อสังเกตการทำงานอีกครั้งและแชร์ผลการทดลองให้กับผู้อ่าน โดยในการทดลองจะเห็นว่ามีตัวต้านทานขนาด 1 กิโลโอห์ม ที่ต่อระหว่างไฟเลี้ยง 3.3V และขา GPIO 17 เพื่อทำหน้าที่พูลอัพ (PULLUP) อีกครั้ง และเมื่อให้โปรแกรมเริ่มการทำงานที่ (ปุ่มสีเขียว : Start the simulation) แล้วทดลองกดสวิตช์จะให้ผลการทดลองได้อย่างถูกต้องเช่นกัน สำหรับในการทดลองรับค่าสัญญาณอินพุตและเอาต์พุตแบบลอจิกกับบอร์ดควบคุม 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/