LAB1 — [M2.1] — Python GPIO Control Raspberry Pi3 Model B+
3 min readMar 28, 2020
ในบทความนี้เราจะทำลองใช้ GPIO ของบอร์ด Raspberry Pi สั่งเปิด-ปิดไฟ LED และการกดปุ่มเพื่อรับอินพุต เป็นการเรียนรู้การใช้งาน GPIO เบื้องต้นนะครับ โดยเราจะเขียนด้วย python
สิ่งที่เราควรทราบ GPIO PIN
เริ่มการทดลอง
➽ การทดลองที่ 1 ไฟกระพริบ (BLINK LED)
- ใช้ขา 6 (GND) ต่อตัวต้านทาน 330 Ω และต่อขาลบของ LED
- ใช้ขา 13 (GPIO27) ต่อเข้ากับขาบวกของ LED
ขั้นตอนการทดลอง
- เข้าโปรแกรม Menu > Programming > Python 3 (IDLE)
- หมายเหตุ ถ้าไม่ขึ้น Python 3 (IDLE) ใช้คำสั่งนี้ลงใน Terminal
$sudo apt-get install idle3
- เข้าเมนู File > New Window
- โค้ดในการรันโปรแกรม
- จากนั้นเข้าไปที่ File ⟹ Save as (Ctrl + S + Shift)
- บันทึกไฟล์ชื่อว่า blink.py ไว้ที่ /home/pi (ตำแหน่ง Default)
การทดสอบ
- เข้าที่ Terminal พิมพ์คำสั่ง
$sudo python blink.py
- จะเห็นว่าไฟ LED จะติดดับครั้งละ 1 วินาที
- เมื่อต้องการออกให้กด Ctrl + C เพื่อยกเลิกการทำงานของโค้ด
➽ การทดลองที่ 2 ปุ่มกด (กด-ติด, ปล่อย-ดับ)
การทดลองนี้จะต่อปุ่มกดแบบ Pull-up โดยต่อจากวงจรเดิมโดยไฟ LED จะดับเมื่อกดปุ่มไฟ LED จะติด
การต่อวงจร
- ใช้ขา 11 (GPIO17) ต่อเข้ากับขาบวกของ LED
- ใช้ขา 6 (GND) ต่อตัวต้านทาน 330 Ω และต่อขาลบของ LED
- ใช้ขา 15 (GPIO22) ต่อเข้ากับขาข้างหนึ่งของปุ่มกด
- ใช้ขาอีกข้างหนึ่งของปุ่มกด แบบ Pull-up ต่อลง GND (ดังภาพ)
- โค้ดในการรันโปรแกรม
- พิมพ์โค้ดที่ให้มาลงไปในโปรแกรม Python 3(IDLE) เหมือนการทดลองแรกแล้ว save file ชื่อว่า button.py
การทดสอบ
เข้าที่ Terminal พิมพ์คำสั่ง
$sudo python button.py
- จะเห็นว่าไฟ LED จะดับ …เมื่อกดปุ่มกดไฟ LED จะติด
- เมื่อต้องการออกให้กด Ctrl + C เพื่อยกเลิกการทำงานของโค้ด
➽ การทดลองที่ 3 ปุ่มกด (กด-ติด, กด-ดับ)
การต่อวงจรคล้ายการทดลองที่ 2 เปลี่ยนเพียงโค้ดการรัน
- โค้ดในการรันโปรแกรม
- พิมพ์โค้ดที่ให้มาลงไปในโปรแกรม Python 3(IDLE) เหมือน การทดลองแรกแล้ว save file ชื่อว่า button2sts.py
การทดสอบ
เข้าที่ Terminal พิมพ์คำสั่ง
$sudo python button2sts.py
- จะเห็นว่าเมื่อกดปุ่มไฟ LED จะติด แล้วเมื่อกดปุ่มกดอีกทีไฟ LED จะดับ
- เมื่อต้องการออกให้กด Ctrl + C เพื่อยกเลิกการทำงานของโค้ด
สำหรับบทความนี้คือการเริ่มต้นการใช้งานเบื้องต้นของ PIN GPIO โดยใช้ Python ในการเขียนคำสั่งในการใช้งานครับ