Itu CD74HC4067 adalah multiplexer analog/digital 16-channel yang memungkinkan raspberry pi untuk berinteraksi dengan hingga 16 input atau output hanya menggunakan beberapa pin GPIO. Ini sempurna untuk memperluas kemampuan I/O Raspberry Pi Anda saat bekerja dengan beberapa sensor atau perangkat.
Apa yang Anda Butuhkan
- Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
- Multiplexer CD74HC4067
- Perangkat input analog atau digital (mis., Sensor, sakelar)
- Papan tempat memotong papan dan kabel jumper
- Python terpasang di raspberry pi
Langkah 1: Memahami CD74HC4067
CD74HC4067 memiliki:
- 16 saluran input/output (S0-S15)
- 4 Pin kontrol (S0, S1, S2, S3) untuk memilih saluran aktif.
- 1 Aktifkan pin (en) untuk mengaktifkan multiplexer (aktif rendah).
- Satu Pin com (umum) untuk komunikasi bersama.
Tabel kebenaran untuk pemilihan saluran
S3 | S2 | S1 | S0 | Saluran aktif |
---|---|---|---|---|
0 | 0 | 0 | 0 | S0 |
0 | 0 | 0 | 1 | S1 |
0 | 0 | 1 | 0 | S2 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | S15 |
Langkah 2: Kabel CD74HC4067 ke Raspberry Pi
Hubungkan multiplexer ke raspberry pi sebagai berikut:
Pin CD74HC4067 | Raspberry Pi Pin |
---|---|
Vcc | 3.3V (pin 1) |
Gnd | GND (pin 6) |
S0 | GPIO17 (pin 11) |
S1 | Gpio27 (pin 13) |
S2 | Gpio22 (pin 15) |
S3 | Gpio23 (pin 16) |
En | GND (aktif rendah) |
Com | GPIO18 (pin 12, input/output analog) |
S0-S15 | Hubungkan sensor/perangkat |
Langkah 3: Instal perpustakaan yang diperlukan
Perbarui Raspberry Pi Anda dan instal pustaka Python untuk kontrol GPIO.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Langkah 4: Kode Python untuk membaca data dari multiplexer
Berikut skrip Python untuk mengontrol CD74HC4067 dan membaca data dari saluran yang terhubung.
Contoh Kode Python
import RPi.GPIO as GPIO
import time
# Define GPIO pins
S0 = 17
S1 = 27
S2 = 22
S3 = 23
COM = 18 # Common pin for input/output
# Initialize GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup([S0, S1, S2, S3], GPIO.OUT)
GPIO.setup(COM, GPIO.IN) # Set COM pin as input for reading data
# Function to select a channel
def select_channel(channel):
GPIO.output(S0, channel & 0x01)
GPIO.output(S1, (channel >> 1) & 0x01)
GPIO.output(S2, (channel >> 2) & 0x01)
GPIO.output(S3, (channel >> 3) & 0x01)
try:
while True:
for channel in range(16):
select_channel(channel)
time.sleep(0.1) # Small delay for channel stabilization
value = GPIO.input(COM) # Read data from the active channel
print(f"Channel {channel}: {value}")
time.sleep(1)
except KeyboardInterrupt:
print("Exiting...")
finally:
GPIO.cleanup()
Langkah 5: Aplikasi CD74HC4067 dengan Raspberry Pi
- Membaca banyak sensor: Antarmuka dengan hingga 16 sensor (mis., Suhu, kelembaban, atau cahaya).
- Memperluas I/O Digital: Kelola beberapa sakelar, LED, atau relay.
- Integrasi Sensor Analog: Baca sinyal dari potensiometer, joystick, atau sensor kelembaban tanah.
- Otomatisasi Rumah: Mengontrol banyak perangkat seperti lampu, kipas, atau peralatan.
Pemecahan masalah
-
Tidak ada data dari saluran:
- Verifikasi kabel pin kontrol S0-S3 dan pin com.
- Pastikan sensor/perangkat terhubung dengan benar ke pin S0-S15.
-
Pemilihan saluran yang salah:
- Periksa tabel kebenaran untuk konfigurasi S0-S3.
- Pastikan PIN EN terhubung ke GND untuk aktivasi.
-
Bacaan yang terputus -putus:
- Tambahkan penundaan kecil (
time.sleep(0.1)
) antara saluran switching untuk memungkinkan stabilisasi sinyal.
- Tambahkan penundaan kecil (
Kesimpulan
Itu Multiplexer CD74HC4067 adalah cara yang kuat dan hemat biaya untuk memperluas kemampuan input/output Raspberry Pi. Dengan mengikuti panduan ini, Anda dapat dengan mudah berinteraksi dengan hingga 16 perangkat analog atau digital hanya menggunakan 4 pin GPIO. Eksperimen dengan berbagai sensor dan aplikasi untuk memanfaatkan modul serbaguna ini! 🚀