สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: สร้างวงจรของคุณ
- ขั้นตอนที่ 3: สร้างสคริปต์เพื่อควบคุมและทดสอบไฟ LED
- ขั้นตอนที่ 4: การเพิ่มความยืดหยุ่นโดยใช้พารามิเตอร์และคำสั่งเงื่อนไข
วีดีโอ: การควบคุม LED หลายดวงด้วย Python และ GPIO Pins ของ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
คำแนะนำนี้สาธิตวิธีควบคุมพิน 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
บน 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 เปิดทั้งหมด
ทำไมไม่ลองดูและโพสต์คำตอบของคุณในส่วนความคิดเห็นด้านล่าง
แนะนำ:
การควบคุม LED ของ Google Assistant โดยใช้ Raspberry Pi: 3 ขั้นตอน
การควบคุม LED ของ Google Assistant โดยใช้ Raspberry Pi: เฮ้! ในโครงการนี้ เราจะใช้การควบคุมด้วย Google Assistant ของ LED โดยใช้ Raspberry Pi 4 โดยใช้ HTTP ใน Python คุณสามารถเปลี่ยน LED เป็นหลอดไฟได้ (แน่นอนว่าไม่ใช่อย่างแท้จริง คุณจะต้องมีโมดูลรีเลย์ในระหว่างนั้น) หรือบ้านอื่นๆ
วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude เป็น Bit-bang-program DIMP 2 หรือ DA PIMP 2: 9 ขั้นตอน
วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude to Bit-bang-program DIMP 2 หรือ DA PIMP 2: นี่เป็นคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีใช้ Raspberry Pi และคำสั่งโอเพ่นซอร์สฟรี avrdude เป็น bit-bang - โปรแกรม DIMP 2 หรือ DA PIMP 2 ฉันคิดว่าคุณคุ้นเคยกับ Raspberry Pi และบรรทัดคำสั่ง LINUX คุณไม่จำเป็นต้อง
การควบคุมความสว่าง การควบคุม LED ตาม PWM โดยใช้ปุ่มกด Raspberry Pi และ Scratch: 8 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมความสว่าง การควบคุม LED แบบ PWM โดยใช้ปุ่มกด Raspberry Pi และ Scratch: ฉันพยายามหาวิธีที่จะอธิบายว่า PWM ทำงานอย่างไรกับนักเรียนของฉัน ดังนั้นฉันจึงตั้งค่าตัวเองให้พยายามควบคุมความสว่างของ LED โดยใช้ 2 ปุ่ม - ปุ่มหนึ่งเพิ่มความสว่างของ LED และอีกปุ่มหนึ่งหรี่ลง ในการโปรแกรม
การควบคุม WiFi ของ Model Train โดยใช้ MQTT: 9 ขั้นตอน
การควบคุม WiFi ของ Model Train โดยใช้ MQTT: มีระบบโมเดล TT Scale Train แบบเก่า ฉันมีแนวคิดว่าจะควบคุม locos แยกกันอย่างไร เมื่อคำนึงถึงสิ่งนี้ ฉันได้ก้าวไปอีกขั้นและค้นพบว่าสิ่งที่จำเป็นไม่เพียงแต่ควบคุมรถไฟเท่านั้น แต่มีข้อมูลเพิ่มเติมเกี่ยวกับ
การควบคุม LED โดยใช้ Blynk App และ Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
การควบคุม LED โดยใช้ Blynk App และ Arduino: ในโครงการนี้ เรากำลังจะรู้จักการเปิด/ปิด LED ด้วย Arduino โดยใช้แอป blynk แทนที่จะใช้โมดูล Wifi, โมดูล Bluetooth, โมดูล GSM ฯลฯ เป็นอีกวิธีหนึ่งในการใช้อินเทอร์เน็ตของสิ่งต่างๆ Don' ไม่คิดว่ายาก เรียนง่าย ถ้าไม่