สารบัญ:

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

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

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

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

ขั้นตอนที่ 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

นี่คือลิงค์สำหรับสิ่งเดียวกัน:

github.com/DcubeTechVentures/PCA9536/blob/master/Java/PCA9536.java

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

pi4j.com/install.html

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

// แจกจ่ายด้วยใบอนุญาตอิสระ

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

// PCA9536

// รหัสนี้ออกแบบมาเพื่อทำงานกับ PCA9536_I2CIO I2C Mini Module ที่มีจำหน่ายจาก ControlEverything.com

//

นำเข้า com.pi4j.io.i2c. I2CBus;

นำเข้า com.pi4j.io.i2c. I2CDevice;

นำเข้า com.pi4j.io.i2c. I2CFactory;

นำเข้า java.io. IOException;

คลาสสาธารณะ PCA9536

{

โมฆะคงที่สาธารณะหลัก (สตริง args ) พ่นข้อยกเว้น

{

// สร้างบัส I2C

I2CBus บัส = I2CFactory.getInstance(I2CBus. BUS_1);

// รับอุปกรณ์ I2C ที่อยู่ PCA9536 I2C คือ 0x41 (65)

อุปกรณ์ I2CDevice = Bus.getDevice(0x41);

// เลือกการตั้งค่าการลงทะเบียน

// พินทั้งหมดกำหนดค่าเป็นอินพุต

อุปกรณ์.write(0x03, (ไบต์)0xFF);

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

System.out.printf("สถานะพินทั้งหมดสูง %n");

เธรดการนอนหลับ (500);

// อ่านข้อมูล 1 ไบต์

ไบต์ data = ไบต์ใหม่[1];

data[0] = (ไบต์)device.read(0x00);

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

int data1 = (ข้อมูล[0] & 0x0F);

สำหรับ (int i=0; i<4; i++)

{

if((data1 & ((int)Math.pow(2, i))) == 0)

{

System.out.printf("I/O Pin %d State is LOW %n", i);

}

อื่น

{

System.out.printf("I/O Pin %d State is HIGH %n", i);

เธรดการนอนหลับ (500);

}

}

}

}

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

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

แนะนำ: