De CD74HC4067 is een 16-kanaals analoge/digitale multiplexer waarmee een Raspberry Pi kan interface 16 ingangen of uitgangen Gebruik slechts enkele GPIO -pinnen. Het is perfect voor het uitbreiden van de I/O -mogelijkheden van uw Raspberry Pi bij het werken met meerdere sensoren of apparaten.
Wat u nodig hebt
- Raspberry Pi (Elk model met GPIO -ondersteuning, bijvoorbeeld PI 3, PI 4)
- CD74HC4067 multiplexer
- Analoge of digitale invoerapparaten (bijv. Sensoren, schakelaars)
- Breadboard en jumper draden
- Python geïnstalleerd Op de Raspberry Pi
Stap 1: Inzicht in de CD74HC4067
De CD74HC4067 heeft:
- 16 Input/outputkanalen (S0-S15)
- 4 controlepinnen (S0, S1, S2, S3) om het actieve kanaal te selecteren.
- 1 Schakel pin in (en) om de multiplexer te activeren (actief laag).
- Een enkele Com (gemeenschappelijke) pin voor gedeelde communicatie.
Waarheidstabel voor kanaalselectie
S3 | S2 | S1 | S0 | Actief kanaal |
---|---|---|---|---|
0 | 0 | 0 | 0 | S0 |
0 | 0 | 0 | 1 | S1 |
0 | 0 | 1 | 0 | S2 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | S15 |
Stap 2: De CD74HC4067 bedraden naar de Raspberry Pi
Sluit de multiplexer als volgt aan op de Raspberry Pi:
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) |
Eng | GND (actief laag) |
Com | Gpio18 (pin 12, analoge ingang/uitgang) |
S0-S15 | Verbind sensoren/apparaten |
Stap 3: Installeer vereiste bibliotheken
Werk uw Raspberry Pi bij en installeer Python -bibliotheken voor GPIO -besturingselement.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Stap 4: Python -code om gegevens van de multiplexer te lezen
Hier is een Python -script om de CD74HC4067 te besturen en gegevens van de verbonden kanalen te lezen.
Python Code Voorbeeld
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()
Stap 5: Toepassingen van de CD74HC4067 met Raspberry Pi
- Meerdere sensoren lezen: Interface met maximaal 16 sensoren (bijv. Temperatuur, vochtigheid of licht).
- Uitbreiding van digitale I/O: Beheer meerdere schakelaars, LED's of relais.
- Analoge sensorintegratie: Lees signalen van potentiometers, joysticks of bodemvochtsensoren.
- Home Automation: Besturing van meerdere apparaten zoals lichten, fans of apparaten.
Problemen oplossen
-
Geen gegevens van kanalen:
- Controleer de bedrading van S0-S3-besturingpennen en de COM-pin.
- Zorg ervoor dat sensoren/apparaten correct zijn verbonden met de S0-S15-pinnen.
-
Onjuiste kanaalselectie:
- Controleer de waarheidstabel voor S0-S3-configuraties.
- Zorg ervoor dat de EN -pin is verbonden met GND voor activering.
-
Intermitterende lezingen:
- Voeg een kleine vertraging toe (
time.sleep(0.1)
) Tussen schakelkanalen om signaalstabilisatie mogelijk te maken.
- Voeg een kleine vertraging toe (
Conclusie
De CD74HC4067 multiplexer is een krachtige en kosteneffectieve manier om de invoer-/uitvoermogelijkheden van de Raspberry Pi uit te breiden. Door deze gids te volgen, kunt u eenvoudig communiceren met maximaal 16 analoge of digitale apparaten met slechts 4 GPIO -pinnen. Experimenteer met verschillende sensoren en toepassingen om het meeste uit deze veelzijdige module te halen! 🚀