ภาพที่ 1 GPIO Numbers
ที่มา : http://thaiopensource.org/มาเล่น-gpio-บน-raspbery-pi-กัน/
สั่งเปิด-ปิดไฟ LED
วันนี้ เราจะทำลองใช้ GPIO ของบอร์ด Raspberry Pi สั่งเปิด-ปิดไฟ LED กันนะครับ ซึ่งเป็นการเรียนรู้การใช้งาน GPIO เบื้องต้น โดยใช้ภาษา python
อุปกรณ์ฮาร์ดแวร์ที่ต้องใช้
โปรโตบอร์ด
สายจั๊มแบบผู้-เมีย และแบบผู้-ผู้
ตัวต้านทาน
หลอดไฟ LED
ภาพที่ 2 Raspberry Pi
ที่มา : http://www.orbit-maker.com/?page_id=4859
ขั้นตอนการต่อวงจร ไฟกระพริบ (Blink LED)
ใช้ ขา 6 (GND) ต่อตัวต้านทาน 330 โอมห์ และต่อ ขาลบของ LED โดยอ้างอิงจากภาพที่ 1
ใช้ ขา 8 (GP14) ต่อเ้ข้ากับขาบวกของ LED โดยอ้างอิงจากภาพที่ 1
ภาพที่ 3 แผนผังการต่อวงจร
ที่มา : https://medium.com/sathittham
เริ่มต้นการเขียนโปรแกรมกัน
เข้าโปรแกรม Menu > Programming > Python 3
เข้าเมนู File > New Window
ภาพที่ 4 การเข้าโปรแกรม Python 3
ที่มา : https://www.raspberrypi.org/documentation/usage/python
โปรแกรมไฟกระพริบ (Blink LED)
import RPi.GPIO as GPIO //นำไลบรารี GPIO มาใช้
import time //นำไลบรารี Time มาใช้
GPIO.setwarnings(False) //ปิดการแจ้งเตือน
GPIO.setmode(GPIO.BOARD) //เลือกชนิดของบอร์ดเป็นแบบ BCM
GPIO.setup(8,GPIO.OUT) //ตั้งค่า ขา GPIO 8 เป็นขา OUTPUT
while True: //วนซ้ำ
GPIO.output(8,1) //จ่ายลอจิก 1 ให้ขา 8 เพื่อให้ LED ติด
time.sleep(0.5) //หน่วงเวลา 0.5 วินาที
GPIO.output(8,0) // จ่ายลอจิก 0 ให้ขา 8 เพื่อให้ LED ดับ
time.sleep(0.5) //หน่วงเวลา 0.5 วินาที
เข้า File > Save As > Save
บันทึกไฟล์ชื่อว่า LED.py ไว้ที่ /home/pi (ตำแหน่ง Default)
การทดสอบโปรแกรม
เข้าที่ Terminal พิมพ์คำสั่ง
ภาพที่ 4 Terminal raspberry pi
ที่มา : https://www.howtogeek.com/138281/the-htg-guide-to-getting-started-with-raspberry-pi/
ให้พิมพ์คำสั่งดังนี้
sudo python LED.py จากนั้นกด Enter จะเห็นว่า ไฟ LED จะติดดับครั้งละ 1 วินาที
เมื่อต้องการออกให้กด CTRL+Z เพื่อยกเลิกการทำงานของโค๊ด
อ้างอิง
บริษัท วีนัส ซัพพลาย. (ม.ป.ป.). มาเล่น-gpio-บน-raspbery-pi-กัน. [ออนไลน์] ค้นหาเมื่อวันที่ 30 ธันวาคม พ.ศ. 2559 จาก http://thaiopensource.org/มาเล่น-gpio-บน-raspbery-pi-กัน/
บริษัท วีนัส ซัพพลาย. (ม.ป.ป.). ตัวอย่างการเขียนโปรแกรมรับ-ส่งข้อมูลผ่านทาง SPI. [ออนไลน์] ค้นหาเมื่อวันที่ 30 ธันวาคม พ.ศ. 2559 จาก http://thaieasyelec.com/article-wiki/embedded-electronics-application/บทความการพัฒนาโปรแกรมบน-raspberry-pi-ด้วย-qt-ตอนที่-8.html
บริษัท วีนัส ซัพพลาย. (ม.ป.ป.). UART / TTL / RS232 / MAX232 / MAX3232 คืออะไร. [ออนไลน์] ค้นหาเมื่อวันที่ 30 ธันวาคม พ.ศ. 2559 จากhttp://www.thaieasyelec.com/article-wiki/basic-electronics/uart-ttl-rs232-max232-max3232.html
(2557). พื้นฐานการใช้งาน GPIO ของ Raspberry Pi ด้วยภาษา Python กับ Module RPi.GPIO. [ออนไลน์] ค้นหาเมื่อวันที่ 30 ธันวาคม พ.ศ. 2559 จาก http://surinidea.blogspot.com/2014/06/gpio-raspberry-pi-python-module-rpigpio.html
Arduitronics. (2558). I2C Communication: Case study of GY-30 (Ambient Light Sensor). [ออนไลน์] ค้นหาเมื่อวันที่ 30 ธันวาคม พ.ศ. 2559 จาก https://www.arduitronics.com/article/47/i2c-communication-case-study-of-gy-30-ambient-light-sensor