สารบัญ:

Raspberry Pi - PCA9536 บทช่วยสอน Python อินพุต/เอาต์พุต Expander: 4 ขั้นตอน
Raspberry Pi - PCA9536 บทช่วยสอน Python อินพุต/เอาต์พุต Expander: 4 ขั้นตอน

วีดีโอ: Raspberry Pi - PCA9536 บทช่วยสอน Python อินพุต/เอาต์พุต Expander: 4 ขั้นตอน

วีดีโอ: Raspberry Pi - PCA9536 บทช่วยสอน Python อินพุต/เอาต์พุต Expander: 4 ขั้นตอน
วีดีโอ: Raspberry Pi MCP9808 Temperature Sensor Python Tutorial 2024, พฤศจิกายน
Anonim
Image
Image

PCA9536 เป็นอุปกรณ์ CMOS 8 พินที่ให้การขยายอินพุต/เอาต์พุตแบบขนานวัตถุประสงค์ทั่วไป (GPIO) จำนวน 4 บิตสำหรับแอปพลิเคชัน I2C-bus/SMBus ประกอบด้วยรีจิสเตอร์การกำหนดค่า 4 บิตเพื่อรองรับวัตถุประสงค์ของการเลือกอินพุตหรือเอาต์พุต รีจิสเตอร์พอร์ตอินพุต 4 บิต รีจิสเตอร์พอร์ตเอาต์พุต 4 บิต และการลงทะเบียนการผกผันของขั้ว 4 บิตที่เปิดใช้งาน HIGH หรือการทำงาน LOW ที่ใช้งานอยู่ นี่คือการสาธิตด้วย raspberry pi โดยใช้รหัส python

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

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

1. ราสเบอร์รี่ปี่

2. PCA9536

3. สายเคเบิล I²C

4. I²C Shield สำหรับ Raspberry Pi

5. สายเคเบิลอีเธอร์เน็ต

ขั้นตอนที่ 2: การเชื่อมต่อ:

การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ

ใช้เกราะป้องกัน I2C สำหรับ raspberry pi แล้วค่อยๆ ดันไปบนหมุด gpio ของ raspberry pi

จากนั้นเชื่อมต่อปลายสาย I2C ด้านหนึ่งกับเซ็นเซอร์ PCA9536 และปลายอีกด้านหนึ่งเข้ากับแผงป้องกัน I2C

เชื่อมต่อสายอีเทอร์เน็ตกับ pi หรือคุณสามารถใช้โมดูล WiFi ได้

การเชื่อมต่อแสดงในภาพด้านบน

ขั้นตอนที่ 3: รหัส:

รหัส
รหัส

รหัสหลามสำหรับ PCA9536 สามารถดาวน์โหลดได้จากที่เก็บ github ของเรา - DCUBE Store

นี่คือลิงค์

เราใช้ไลบรารี SMBus สำหรับโค้ด python ขั้นตอนในการติดตั้ง SMBus บน raspberry pi ได้อธิบายไว้ที่นี่:

pypi.python.org/pypi/smbus-cffi/0.5.1

คุณสามารถคัดลอกรหัสจากที่นี่ได้ดังนี้:

# จัดจำหน่ายด้วยใบอนุญาตอิสระ

# ใช้งานตามที่คุณต้องการ ไม่ว่าจะมีกำไรหรือฟรี หากเข้ากับใบอนุญาตของงานที่เกี่ยวข้อง

#PCA9536

# รหัสนี้ออกแบบมาเพื่อทำงานกับ PCA9536_I2CIO I2C Mini Module #

นำเข้า smbus

เวลานำเข้า

# รับรถบัส I2C

รถบัส = smbus. SMBus(1)

# PCA9536 ที่อยู่ 0x41 (65)

# เลือกการลงทะเบียนการกำหนดค่า 0x03 (03)

# 0xFF(255) พินทั้งหมดกำหนดค่าเป็นอินพุต

bus.write_byte_data(0x41, 0x03, 0xFF)

# ส่งออกไปยังหน้าจอ

พิมพ์ "สถานะพินทั้งหมดอยู่ในระดับสูง"

เวลานอน(0.5)

# PCA9536 ที่อยู่ 0x41 (65)

# อ่านข้อมูลย้อนหลังตั้งแต่ 0x00(00), 1 byte

ข้อมูล = bus.read_byte_data(0x41, 0x00)

# แปลงข้อมูลเป็น 4 บิต

ข้อมูล = (ข้อมูล & 0x0F)

สำหรับฉันในช่วง (0, 4):

ถ้า (ข้อมูล & (2 ** i)) == 0:

พิมพ์ "I/O Pin %d State is LOW" %i

อื่น:

พิมพ์ "I/O Pin %d State is HIGH" %i

เวลานอน(0.5)

ขั้นตอนที่ 4: การใช้งาน:

PCA9536 สามารถใช้เป็นตัวขยาย I/O ได้ ให้วิธีแก้ปัญหาง่ายๆ เมื่อต้องการอินพุต/เอาต์พุตเพิ่มเติม มักใช้ในระบบที่ต้องการขยายสำหรับสวิตช์ไฟ ACPI, เซ็นเซอร์, ปุ่มกด, ไฟ LED, พัดลม ฯลฯ

แนะนำ: