การใช้งาน ขาอินพุตและเอาท์พุต ของ raspberri pi3

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

prakon
PHP Sr. Member
PHP Sr. Member
โพสต์: 65
ลงทะเบียนเมื่อ: 02/07/2018 10:45 am

การใช้งาน ขาอินพุตและเอาท์พุต ของ raspberri pi3

โพสต์โดย prakon » 02/07/2018 5:40 pm

    บทความนี้เป็นบทความที่จัดทำขึ้นเพื่อแนะนำการใช้งานเบื้องต้น 'ขาอินพุตและเอาท์พุตของบอร์ด raspberri pi3 (ราสเบอรรี่ ไพ3)' ซึ่งเป็นความรู้พื้นฐานในการใช้งานบอร์ดนี้
หรือแม้แต่บอร์ด Rasberri Pi รุ่นอื่นๆ ทั้งนี้สามารถดูรายละเอียด TIP ต่างๆ ได้ที่นี่ครับ การใช้ GPIO ของบอร์ด Raspberry Pi ด้วยภาษา Python
บอร์ด raspbeery pi3 นั้นมีขาให้ต่อใช้งาน 40 ขา ดังภาพด้านล่าง
gpio1..jpg
gpio1..jpg (62.04 KiB) เปิดดู 57 ครั้ง

หรือจะให้ดูง่ายกว่านั้นก็ดูตามภาพนี้นะครับ
gpio2.jpg
gpio2.jpg (56.13 KiB) เปิดดู 57 ครั้ง

หลักๆที่ทุกท่านน่าจะทราบอยู่แล้วคือ จุดต่อไฟ 5 V , 3.3V, และกราวด์ และขาสำหรับต่ออุปกรณ์เพื่อรับค่าอินพุตหรือส่งค่าเอาต์พุต ออกไป
และยังมีขาที่พิเศษๆ นั่นก็คือ ขาสำหรับเชื่อมต่อ I2C(ขา3และ5) ที่จะทำให้บอร์ดสามารถสื่อสารกับอุปกรณ์ภายนอกได้มีประสิทธิภาพมากขึ้น(สื่อสารกับอุปกรณ์ 2 ทิศทาง) และพอร์ตสำหรับสัญญาณ pwm(พี่ดับเบิ้ลยูเอ็ม) 1 ขา(ขา4) อาจจะน้อยแต่เราสามารถค้นหาไลบารี่ที่ทำให้ ขา pwm เยอะขึ้นจาก google ได้ โดยขา pwm นี้ส่วนมากจะไปใช้งานในการควบคุมความเร็วมอเตอร์หรือควบคุมservoมอเตอร์ได้
    ในการเขียนโปรแกรมควบคุมขาของบอร์ดนั้นผู้ใช้จะต้องกำหนดว่าจะใช้มาตรฐานไหนในการเรียกใช้ขาของอุปกรณ์ จะมี 2 มาตรฐานก็คือ BOARD และ BCM
BOARD คือ หมายเลขขาที่อยู่ในกรอบสีแดง
ฺBCM คือ หมายเลยขาที่อยู่ด้านนอกกรอบสีแดงที่ขึ้นต้นด้วยคำว่า GPIO

ตัวอย่างโค้ดภาษาไพธอนที่ใช้ร่วมกับบอร์ด
1.โค้ดไฟกระพริบโดยใช้LED(แอล-อี-ดี)

โค้ด: เลือกทั้งหมด

import RPi.GPIO  as GPIO #อิมพอร์ตไลบารี่ในการควบคุมขาอุปกรณ์
import time #อิมพอร์ตฟังชั่น time สำหรับ การหน่วงเวลา
GPIO.setmode(GPIO.BCM) #มาตรฐานขาของอุปกรณ์ในที่นี้เลือก BCM
GPIO.setup(22,GPIO.OUT) #กำหนดให้ GPIO 22 เป็นเอาต์พุต
GPIO.output(22,GPIO.LOW) #LED ดับ
while 1: #ลูปที่ไม่สิ้นสุด
   GPIO.output(22,GPIO.HIGH) #LED ติด
   time.sleep(1)                      #หน่วงเวลาเพื่อไม่ให้ดับหรือติดเร็วเกินจนตามองไม่ทัน
   GPIO.output(22,GPIO.LOW) #LED ดับ
   time.sleep(1)
   



อ้างอิงจาก
thaiopensource
NEW PROJECT

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 6 และ บุคคลทั่วไป 0 ท่าน