- ส่วนประกอบที่ต้องการ:
- แผนภูมิวงจรรวม:
- กะลงทะเบียน IC 74HC595:
- ขั้นตอนการทำงาน:
- คำอธิบายการเขียนโปรแกรม:
Raspberry Pi เป็นบอร์ดที่ใช้โปรเซสเซอร์สถาปัตยกรรม ARM ที่ออกแบบมาสำหรับวิศวกรอิเล็กทรอนิกส์และมือสมัครเล่น PI เป็นหนึ่งในแพลตฟอร์มการพัฒนาโครงการที่น่าเชื่อถือที่สุดในขณะนี้ ด้วยความเร็วโปรเซสเซอร์ที่สูงขึ้นและ RAM 1 GB PI สามารถใช้กับโปรเจ็กต์ที่มีรายละเอียดสูงมากมายเช่นการประมวลผลภาพและ Internet of Things
สำหรับการทำโครงการที่มีรายละเอียดสูงจำเป็นต้องเข้าใจฟังก์ชันพื้นฐานของ PI เราจะกล่าวถึงฟังก์ชันพื้นฐานทั้งหมด ของ Raspberry Pi ในบทช่วยสอนเหล่านี้ ในแต่ละบทช่วยสอนเราจะพูดถึงฟังก์ชันหนึ่งของ PI ในตอนท้ายของ ซีรีส์การสอน Raspberry Piนี้คุณจะสามารถทำโปรเจ็กต์ระดับสูงได้ด้วยตัวเอง ดูบทช่วยสอนด้านล่าง:
- เริ่มต้นกับ Raspberry Pi
- การกำหนดค่า Raspberry Pi
- ไฟ LED Blinky
- การเชื่อมต่อปุ่ม Raspberry Pi
- Raspberry Pi PWM generation
- การควบคุม DC Motor โดยใช้ Raspberry Pi
- Stepper Motor Control พร้อม Raspberry Pi
ในบทช่วยสอนการลงทะเบียน Raspberry Piนี้เราจะ Interface Shift Register กับ Pi PI มีพิน GPIO 26 พิน แต่เมื่อเราทำโปรเจ็กต์เช่นเครื่องพิมพ์ 3 มิติพินเอาต์พุตที่ให้มาโดย PI นั้นไม่เพียงพอ ดังนั้นเราจึงจำเป็นมากขึ้นขาออกสำหรับการเพิ่มหมุดการส่งออกมากขึ้นในการ PI เราเพิ่มกะชิปสมัครสมาชิกชิป Shift Register รับข้อมูลจากบอร์ด PI แบบอนุกรมและให้เอาต์พุตแบบขนาน ชิปมีขนาด 8 บิตดังนั้นชิปจึงใช้ 8 บิตจาก PI แบบอนุกรมจากนั้นให้เอาต์พุตลอจิก 8 บิตผ่านพินเอาต์พุต 8 พิน
8 บิตกะทะเบียนเราจะใช้IC 74HC595 เป็นชิป 16 PIN การกำหนดค่าพินของชิปมีอธิบายไว้ด้านล่างในบทช่วยสอนนี้
ในบทช่วยสอนนี้เราจะใช้หมุด GPIO ของ PI สามตัวเพื่อรับเอาต์พุตแปดตัวจาก Shift Register Chip โปรดจำไว้ว่า PINS ของชิปมีไว้สำหรับเอาต์พุตเท่านั้นดังนั้นเราจึงไม่สามารถเชื่อมต่อเซ็นเซอร์ใด ๆ กับเอาต์พุตของชิปและคาดว่า PI จะอ่านได้ LED เชื่อมต่อที่เอาต์พุตชิปเพื่อดูข้อมูล 8 บิตที่ส่งจาก PI
เราจะพูดคุยเกี่ยวกับRaspberry Pi GPIO Pinsก่อนที่จะดำเนินการต่อไป
มี 40 GPIO หมุดเอาท์พุทในราสเบอร์รี่ Pi 2 แต่จากทั้งหมด 40 พินสามารถตั้งโปรแกรมได้เพียง 26 พิน GPIO (GPIO2 ถึง GPIO27) หมุดเหล่านี้บางตัวทำหน้าที่พิเศษบางอย่าง ด้วย GPIO พิเศษเราเหลือเพียง 17 GPIO GPIO 17 พินแต่ละตัวสามารถส่งกระแสไฟฟ้าได้สูงสุด 15mA และผลรวมของกระแสจากหมุด GPIO ทั้งหมดต้องไม่เกิน 50mA หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับพิน GPIO ให้ไปที่: LED กะพริบด้วย Raspberry Pi
ส่วนประกอบที่ต้องการ:
ที่นี่เราจะใช้ ราสเบอร์รี่ Pi 2 รุ่น B กับ Raspbian Jessie OS ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์พื้นฐานทั้งหมดได้กล่าวไว้ก่อนหน้านี้คุณสามารถค้นหาได้ในบทนำ Raspberry Pi นอกเหนือจากที่เราต้องการ:
- หมุดเชื่อมต่อ
- 220Ωหรือ1KΩตัวต้านทาน (6)
- ไฟ LED (8)
- 0.01µF ตัวเก็บประจุ
- 74HC595 IC
- คณะกรรมการขนมปัง
แผนภูมิวงจรรวม:
กะลงทะเบียน IC 74HC595:
พูดคุยเกี่ยวกับ PINS ของ SHIFT REGISTER ที่เราจะใช้ที่นี่
ชื่อพิน |
คำอธิบาย |
Q0 - Q7 |
พวกมันคือพินเอาต์พุต (สี่เหลี่ยมผืนผ้าสีแดง) ซึ่งเราได้รับข้อมูล 8 บิตขนานกัน เราจะเชื่อมต่อ LED แปดดวงเข้ากับพวกเขาเพื่อดูเอาต์พุตแบบขนาน |
พินข้อมูล (DS) |
ข้อมูลแรกจะถูกส่งไปที่พินนี้ทีละนิด ในการส่ง 1 เราดึงพิน DATA ให้สูงและในการส่ง 0 เราจะดึงพิน DATA ลง |
เข็มนาฬิกา (SHCP) |
ทุกพัลส์ที่พินนี้บังคับให้รีจิสเตอร์รับข้อมูลหนึ่งบิตจากพิน DATA และจัดเก็บข้อมูล |
กะเอาต์พุต (STCP) |
หลังจากได้รับ 8 บิตเราจะให้พัลส์พินนี้เพื่อดูผลลัพธ์ |
ขั้นตอนการทำงาน:
เราจะทำตาม Flow Chart และเขียนโปรแกรมตัวนับทศนิยมใน PYTHON เมื่อเราเรียกใช้โปรแกรมที่เราเห็นLED นับใช้ปุ่ม Shift ทะเบียนในราสเบอร์รี่ Pi
คำอธิบายการเขียนโปรแกรม:
เมื่อทุกอย่างเชื่อมต่อตามแผนภาพวงจรแล้วเราสามารถเปิด PI เพื่อเขียนโปรแกรมใน PYHTON
เราจะพูดถึงคำสั่งบางอย่างที่เราจะใช้ในโปรแกรม PYHTON
เรากำลังจะนำเข้าไฟล์ GPIO จากไลบรารีฟังก์ชันด้านล่างช่วยให้เราสามารถตั้งโปรแกรมพิน GPIO ของ PI ได้ นอกจากนี้เรายังเปลี่ยนชื่อ "GPIO" เป็น "IO" ดังนั้นในโปรแกรมเมื่อใดก็ตามที่เราต้องการอ้างถึงพิน GPIO เราจะใช้คำว่า 'IO'
นำเข้า RPi.GPIO เป็น IO
บางครั้งเมื่อพิน GPIO ที่เราพยายามใช้อยู่อาจจะทำหน้าที่อื่น ๆ ในกรณีนั้นเราจะได้รับคำเตือนขณะดำเนินการโปรแกรม คำสั่งด้านล่างบอกให้ PI เพิกเฉยต่อคำเตือนและดำเนินการกับโปรแกรม
IO.setwarnings (เท็จ)
เราสามารถอ้างอิงพิน GPIO ของ PI ไม่ว่าจะด้วยหมายเลขพินบนบอร์ดหรือตามหมายเลขฟังก์ชัน เช่นเดียวกับ 'PIN 29' บนกระดานคือ 'GPIO5' เราบอกตรงนี้ว่าเราจะแทนหมุดตรงนี้ด้วย '29' หรือ '5'
IO.setmode (IO.BCM)
เรากำลังตั้งค่าพิน GPIO4, GPIO5 และ GPIO6 เป็นเอาต์พุต
IO.setup (4, IO.OUT) IO.setup (5, IO.OUT) IO.setup (6, IO.OUT)
คำสั่งนี้รันลูป 8 ครั้ง
สำหรับ y ในช่วง (8):
ในขณะที่ 1: ใช้สำหรับอินฟินิตี้ลูป ด้วยคำสั่งนี้คำสั่งภายในลูปนี้จะดำเนินการอย่างต่อเนื่อง
คำอธิบายเพิ่มเติมเกี่ยวกับโปรแกรมมีให้ในส่วนรหัสด้านล่าง เรามีคำแนะนำทั้งหมดที่จำเป็นในการส่งข้อมูลไปยัง SHIFT REGISTER ทันที