สารบัญ:

การควบคุม LED หลายดวงด้วย Python และ GPIO Pins ของ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)
การควบคุม LED หลายดวงด้วย Python และ GPIO Pins ของ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การควบคุม LED หลายดวงด้วย Python และ GPIO Pins ของ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การควบคุม LED หลายดวงด้วย Python และ GPIO Pins ของ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Raspberry Pi Workshop Kit Tutorials – 2 LED On & Off 2024, พฤศจิกายน
Anonim
การควบคุม LED หลายดวงด้วย Python และ GPIO Pins ของ Raspberry Pi
การควบคุม LED หลายดวงด้วย Python และ GPIO Pins ของ Raspberry Pi

คำแนะนำนี้สาธิตวิธีควบคุมพิน GPIO หลายอันบน RaspberryPi ของคุณเพื่อจ่ายไฟ 4 LEDs นอกจากนี้ยังจะแนะนำคุณเกี่ยวกับพารามิเตอร์และคำสั่งเงื่อนไขใน Python

คำแนะนำก่อนหน้าของเราโดยใช้พิน GPIO ของ Raspberry Pi เพื่อควบคุม LED สาธิตวิธีการเปิดและปิด LED เดียวโดยใช้คำสั่ง GPIO.output คำแนะนำนี้สร้างขึ้นจากความรู้นั้นเพื่อสอนวิธีควบคุมวงจรของคุณให้มากขึ้น

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ

สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

- RaspberryPi ที่มี Raspbian ติดตั้งไว้แล้ว คุณจะต้องสามารถเข้าถึง Pi ได้โดยใช้จอภาพ เมาส์ และคีย์บอร์ด หรือผ่านทางเดสก์ท็อประยะไกล คุณสามารถใช้ Raspberry Pi ได้ทุกรุ่น หากคุณมีรุ่น Pi Zero คุณอาจต้องการบัดกรีหมุดส่วนหัวบางตัวเข้ากับพอร์ต GPIO

- ไฟ LED สีแดง สีน้ำเงิน สีเหลือง และสีเขียว

- เขียงหั่นขนมต้นแบบ Solderless

- ตัวต้านทาน 4 x 330 โอห์ม

- สายจัมเปอร์ชายกับหญิง

ขั้นตอนที่ 2: สร้างวงจรของคุณ

สร้างวงจรของคุณ
สร้างวงจรของคุณ
สร้างวงจรของคุณ
สร้างวงจรของคุณ

สร้างวงจรด้านบนบนเขียงหั่นขนมของคุณ ตรวจสอบให้แน่ใจว่าไม่มีส่วนประกอบใดที่นำไปสู่สัมผัส และไฟ LED เชื่อมต่ออย่างถูกวิธี

คุณจะระบุลีดที่เป็นบวกและลบ (ขั้ว) บน LED ของคุณได้อย่างไร? หากคุณดู LED อย่างใกล้ชิด คุณจะเห็นว่ามีโลหะเล็กๆ สองชิ้นอยู่ภายในปลอกสี เหล่านี้เรียกว่าแอโนดและแคโทด แคโทดมีขนาดใหญ่ที่สุดในทั้งสองและยังเชื่อมต่อกับตะกั่วเชิงลบของ LED

เมื่อคุณตรวจสอบวงจรแล้ว ให้ต่อสายจัมเปอร์กับพิน GPIO ของ Raspberry Pi โดยทำตามแผนภาพด้านบน

ขั้นตอนที่ 3: สร้างสคริปต์เพื่อควบคุมและทดสอบไฟ LED

สร้างสคริปต์เพื่อควบคุมและทดสอบ LEDs
สร้างสคริปต์เพื่อควบคุมและทดสอบ LEDs

บน Raspberry Pi ของคุณ ให้เปิด IDLE (เมนู > การเขียนโปรแกรม > Python 2 (IDLE))

เปิดโครงการใหม่ไปที่ ไฟล์ > ไฟล์ใหม่ จากนั้นพิมพ์ (หรือคัดลอกและวาง) รหัสต่อไปนี้:

นำเข้า RPi. GPIO เป็น GPIO

เวลานำเข้า GPIO.setmode(GPIO. BCM) GPIO.setup(17, GPIO. OUT) GPIO.setup(18, GPIO. OUT) GPIO.setup(22, GPIO. OUT) GPIO.setup(23, GPIO. OUT) GPIO.output(17, True) time.sleep(3) GPIO.output(17, False) time.sleep(1) GPIO.output(18, True) time.sleep(3) GPIO.output(18, False) time.sleep(1) GPIO.output(22, True) time.sleep(3) GPIO.output(22, False) time.sleep(1) GPIO.output(23, True) time.sleep(3) GPIO. เอาต์พุต (23, เท็จ)

บันทึกโครงการของคุณเป็น multilights.py (ไฟล์ > บันทึกเป็น) ในโฟลเดอร์เอกสาร Raspberry Pis

บน Raspberry Pi ของคุณให้เปิด Terminal (เมนู > อุปกรณ์เสริม > Terminal) และไปที่โฟลเดอร์เอกสารของคุณโดยพิมพ์ข้อความต่อไปนี้:

cd /home/pi/Documents

ขณะนี้คุณสามารถเรียกใช้สคริปต์ใหม่ได้โดยพิมพ์ข้อความต่อไปนี้:

หลาม multilights.py

ไฟจะสลับไปมาเพื่อเปิดและปิด สคริปต์ด้านบนใช้คำสั่ง time.sleep เพื่อสร้างการหยุดชั่วคราวระหว่างแต่ละขั้นตอน ทำให้แต่ละไฟติดค้าง 3 วินาทีและรอ 1 วินาทีก่อนที่จะเปิดไฟดวงถัดไป

ขั้นตอนที่ 4: การเพิ่มความยืดหยุ่นโดยใช้พารามิเตอร์และคำสั่งเงื่อนไข

ด้วยการใช้ Parameters and Conditional Statements เราสามารถทำให้สคริปต์ข้างต้นมีความยืดหยุ่นมากขึ้น

พารามิเตอร์ช่วยให้คุณเก็บค่าที่คุณสามารถใช้ได้ในภายหลังในสคริปต์ ประเภทของค่าที่พบบ่อยที่สุดคือสตริง (ข้อความ) จำนวนเต็ม (จำนวนเต็ม) หรือทศนิยม (ตัวเลขทศนิยม)

คำชี้แจงแบบมีเงื่อนไขจะกำหนดว่าควรดำเนินการส่วนของรหัสหรือไม่โดยตรวจสอบว่าตรงตามเงื่อนไขที่กำหนดหรือไม่ เงื่อนไขยังสามารถเกี่ยวข้องกับพารามิเตอร์

เปิด IDLE บน Raspberry Pi ของคุณและเปิดโปรเจ็กต์ใหม่ (ไฟล์ > ไฟล์ใหม่) จากนั้นพิมพ์ต่อไปนี้ โปรดใช้ความระมัดระวังเพื่อให้แน่ใจว่าการเยื้อง (แท็บ) ทั้งหมดถูกรวมไว้โดยใช้ปุ่มแท็บ:

นำเข้า RPi. GPIO เป็น GPIO

เวลานำเข้าจาก sys นำเข้า argv ซึ่งled=argv[1] ledaction = argv[2] LEDa=17 LEDb=18 LEDc=22 LEDd=23 GPIO.setmode(GPIO. BCM) GPIO.setup(LEDa, GPIO. OUT) GPIO setmode(GPIO. BCM) GPIO.setup(LEDb, GPIO. OUT) GPIO.setmode(GPIO. BCM) GPIO.setup(LEDc, GPIO. OUT) GPIO.setmode(GPIO. BCM) GPIO.setup(LEDd, GPIO. ตั้งค่าโหมด OUT) if ledaction=="off": if whichled=="a": GPIO.output(LEDa, False) if whichled=="b": GPIO.output(LEDb, False) if whichled=="c": GPIO.output(LEDc, False) if whichled=="d": GPIO.output(LEDd, False) if whichled=="all": GPIO.output(LEDa, False) GPIO.output(LEDb, False) GPIO output(LEDc, False) GPIO.output(LEDd, False) if ledaction=="on": if whichled=="a": GPIO.output(LEDa, True) if whichled=="b": GPIO.output(LEDb, True) if whichled=="c": GPIO.output(LEDc, True) if whichled=="d": GPIO.output(LEDd, True) if whichled=="all": GPIO.output(LEDa, จริง) GPIO.output(LEDb, True) GPIO.output(LEDc, True) GPIO.output(LEDd, True)

บันทึกโครงการของคุณเป็น controllight.py (ไฟล์ > บันทึกเป็น) ในโฟลเดอร์เอกสารของคุณ ตอนนี้เปิด Terminal (เมนู > อุปกรณ์เสริม > Terminal) แล้วพิมพ์คำสั่งต่อไปนี้:

หลาม controllight.py b on

ไฟ LED ที่สองควรเปิดขึ้น ตอนนี้พิมพ์ต่อไปนี้:

หลาม controllight.py b ปิด

ไฟ LED ที่สองควรปิด

ในบรรทัดที่ 5, 6, 7 และ 8 เราสร้างพารามิเตอร์ LEDa, LEDb, LEDc และ LEDd เพื่อจัดเก็บพิน GPIO ที่เราเชื่อมต่อกับ LED ใด ซึ่งช่วยให้เราใช้พิน GPIO ทางเลือกโดยไม่ต้องทำการเปลี่ยนแปลงที่สำคัญกับสคริปต์

ตัวอย่างเช่น หากเราต้องเชื่อมต่อ LED ตัวแรกที่นำไปสู่ Pin 3 (GPIO 2) แทน เราจะต้องเปลี่ยนบรรทัดที่ 5 เป็นดังนี้:

LEDa=2

บรรทัดที่ 4 เก็บค่าที่คุณพิมพ์หลังจาก controllight.py ลงในพารามิเตอร์ซึ่ง (c) และ ledaction (เปิด) จากนั้นสคริปต์จะใช้พารามิเตอร์เหล่านี้ควบคู่ไปกับคำสั่งเงื่อนไขต่างๆ เพื่อตัดสินใจว่า LED ใดที่จะควบคุมและจะเปิดหรือปิด

บรรทัดที่ 16 (ถ้า ledaction=="on":) เป็นคำสั่งแบบมีเงื่อนไข บรรทัดเยื้องที่ตามหลังคำสั่งนี้จะรันก็ต่อเมื่อตรงตามเงื่อนไขของคำสั่ง ในสถานการณ์สมมตินี้ เงื่อนไขคือ ledaction มีข้อความอยู่

เมื่ออ่านคำสั่งเงื่อนไขอื่นๆ ของสคริปต์ คุณสามารถคาดการณ์ว่าจะเกิดอะไรขึ้นเมื่อคุณพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัล

หลาม controllight.py เปิดทั้งหมด

ทำไมไม่ลองดูและโพสต์คำตอบของคุณในส่วนความคิดเห็นด้านล่าง

แนะนำ: