Ang CD74HC4067 ay isang 16-channel analog/digital multiplexer na nagbibigay-daan sa Raspberry Pi na makipag-ugnayan sa hanggang 16 na input o output gamit lamang ang ilang GPIO pin. Perpekto ito para sa pagpapalawak ng kakayahan sa I/O ng iyong Raspberry Pi kapag gumagamit ng maraming sensor o device.
Mga Kakailanganin Mo
- Raspberry Pi (anumang model na may suporta sa GPIO, hal. Pi 3, Pi 4)
- CD74HC4067 Multiplexer
- Mga Analog o Digital Input Device (hal. mga sensor, switch)
- Breadboard at Jumper Wire
- Python na naka-install sa Raspberry Pi
Hakbang 1: Pag-unawa sa CD74HC4067
Ang CD74HC4067 ay may:
- 16 na Input/Output Channel (S0-S15)
- 4 na Control Pin (S0, S1, S2, S3) para piliin ang aktibong channel.
- 1 Enable Pin (EN) para i-activate ang multiplexer (active LOW).
- Isang COM (common) pin para sa nakabahaging komunikasyon.
Truth Table para sa Pagpili ng Channel
| S3 | S2 | S1 | S0 | Aktibong Channel |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | S0 |
| 0 | 0 | 0 | 1 | S1 |
| 0 | 0 | 1 | 0 | S2 |
| ... | ... | ... | ... | ... |
| 1 | 1 | 1 | 1 | S15 |
Hakbang 2: Pag-wire ng CD74HC4067 sa Raspberry Pi
Ikonekta ang multiplexer sa Raspberry Pi gaya ng sumusunod:
| CD74HC4067 Pin | 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 (Active LOW) |
| COM | GPIO18 (Pin 12, Analog Input/Output) |
| S0-S15 | Ikonekta ang mga sensor/device |
Hakbang 3: I-install ang mga Kinakailangang Library
I-update ang iyong Raspberry Pi at i-install ang mga Python library para sa kontrol ng GPIO.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Hakbang 4: Python Code para Magbasa ng Data mula sa Multiplexer
Narito ang isang Python script para kontrolin ang CD74HC4067 at magbasa ng data mula sa mga nakakonektang channel.
Halimbawa ng Python Code
import RPi.GPIO as GPIO
import time
# Tukuyin ang mga GPIO pin
S0 = 17
S1 = 27
S2 = 22
S3 = 23
COM = 18 # Common pin para sa input/output
# I-initialize ang GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup([S0, S1, S2, S3], GPIO.OUT)
GPIO.setup(COM, GPIO.IN) # Itakda ang COM pin bilang input para sa pagbabasa ng data
# Function para pumili ng 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) # Maikling delay para sa stabilization ng channel
value = GPIO.input(COM) # Basahin ang data mula sa aktibong channel
print(f"Channel {channel}: {value}")
time.sleep(1)
except KeyboardInterrupt:
print("Lumalabas...")
finally:
GPIO.cleanup()
Hakbang 5: Mga Aplikasyon ng CD74HC4067 kasama ang Raspberry Pi
- Pagbabasa ng Maramihang Sensor: Makipag-ugnayan sa hanggang 16 na sensor (hal. temperatura, humidity, o liwanag).
- Pagpapalawak ng Digital I/O: Pamahalaan ang maraming switch, LED, o relay.
- Integrasyon ng Analog Sensor: Magbasa ng mga signal mula sa mga potentiometer, joystick, o soil moisture sensor.
- Home Automation: Kontrolin ang maraming device gaya ng mga ilaw, fan, o appliance.
Troubleshooting
-
Walang Data mula sa mga Channel:
- I-verify ang wiring ng mga S0-S3 control pin at ng COM pin.
- Siguraduhing maayos na nakakonekta ang mga sensor/device sa mga S0-S15 pin.
-
Maling Pagpili ng Channel:
- Suriin ang truth table para sa mga configuration ng S0-S3.
- Siguraduhing ang EN pin ay nakakonekta sa GND para sa activation.
-
Pabago-bagong Readings:
- Magdagdag ng maikling delay (
time.sleep(0.1)) sa pagitan ng paglipat ng mga channel para hayaang mag-stabilize ang signal.
- Magdagdag ng maikling delay (
Konklusyon
Ang CD74HC4067 multiplexer ay isang makapangyarihan at matipid na paraan para palawakin ang kakayahan sa input/output ng Raspberry Pi. Sa pagsunod sa gabay na ito, madali kang makakapag-interface sa hanggang 16 na analog o digital device gamit lamang ang 4 na GPIO pin. Mag-eksperimento sa iba't ibang sensor at aplikasyon para masulit ang versatile na module na ito! 🚀





