Le CD74HC4067 est un multiplexeur analogique / numérique à 16 canaux qui permet à un Raspberry Pi de s'interfacer avec jusqu'à 16 entrées ou sorties en utilisant seulement quelques broches GPIO. Il est parfait pour étendre les capacités d'E / S de votre framboise PI lorsque vous travaillez avec plusieurs capteurs ou appareils.
Ce dont vous aurez besoin
- Raspberry Pi (Tout modèle avec le support GPIO, par ex., PI 3, PI 4)
- Multiplexeur CD74HC4067
- Appareils d'entrée analogiques ou numériques (par exemple, capteurs, commutateurs)
- Fils de planche à pain et de cavalier
- Python installé sur le Raspberry Pi
Étape 1: Comprendre le CD74HC4067
Le CD74HC4067 a:
- 16 canaux d'entrée / sortie (S0-S15)
- 4 broches de contrôle (S0, S1, S2, S3) Pour sélectionner le canal actif.
- 1 Activer la broche (en) pour activer le multiplexeur (actif bas).
- Un seul COM (Common) PIN pour la communication partagée.
Table de vérité pour la sélection des canaux
S3 | S2 | S1 | S0 | Canal actif |
---|---|---|---|---|
0 | 0 | 0 | 0 | S0 |
0 | 0 | 0 | 1 | S1 |
0 | 0 | 1 | 0 | S2 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | S15 |
Étape 2: Câblage du CD74HC4067 au Raspberry Pi
Connectez le multiplexeur au Raspberry Pi comme suit:
Pin CD74HC4067 | Pin de framboise PI |
---|---|
VCC | 3.3V (broche 1) |
GND | GND (broche 6) |
S0 | GPIO17 (broche 11) |
S1 | GPIO27 (broche 13) |
S2 | GPIO22 (broche 15) |
S3 | GPIO23 (broche 16) |
En | GND (actif bas) |
Com | GPIO18 (broche 12, entrée / sortie analogique) |
S0-S15 | Connectez les capteurs / appareils |
Étape 3: Installez les bibliothèques requises
Mettez à jour votre Raspberry Pi et installez les bibliothèques Python pour le contrôle GPIO.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Étape 4: code python pour lire les données du multiplexeur
Voici un script Python pour contrôler le CD74HC4067 et lire les données des canaux connectés.
Exemple de code 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()
Étape 5: Applications du CD74HC4067 avec Raspberry Pi
- Lire plusieurs capteurs: Interface avec jusqu'à 16 capteurs (par exemple, température, humidité ou lumière).
- Expansion des E / S numériques: Gérez plusieurs commutateurs, LED ou relais.
- Intégration du capteur analogique: Lisez les signaux des potentiomètres, des joysticks ou des capteurs d'humidité du sol.
- Automatisation: Contrôlez plusieurs appareils tels que des lumières, des ventilateurs ou des appareils.
Dépannage
-
Aucune donnée des canaux:
- Vérifiez le câblage des broches de commande S0-S3 et de la broche COM.
- Assurez-vous que les capteurs / périphériques sont correctement connectés aux broches S0-S15.
-
Sélection de canaux incorrects:
- Vérifiez la table de vérité pour les configurations S0-S3.
- Assurez-vous que la broche EN est connectée à GND pour l'activation.
-
Lectures intermittentes:
- Ajouter un petit retard (
time.sleep(0.1)
) entre les canaux de commutation pour permettre la stabilisation du signal.
- Ajouter un petit retard (
Conclusion
Le Multiplexeur CD74HC4067 est un moyen puissant et rentable d'élargir les capacités d'entrée / sortie de Raspberry Pi. En suivant ce guide, vous pouvez facilement interfacer avec jusqu'à 16 appareils analogiques ou numériques en utilisant seulement 4 broches GPIO. Expérimentez avec divers capteurs et applications pour tirer le meilleur parti de ce module polyvalent! 🚀