Utilisation du multiplexeur CD74HC4067 avec le Raspberry Pi

Using the CD74HC4067 Multiplexer with the Raspberry Pi

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

  1. Raspberry Pi (Tout modèle avec le support GPIO, par ex., PI 3, PI 4)
  2. Multiplexeur CD74HC4067
  3. Appareils d'entrée analogiques ou numériques (par exemple, capteurs, commutateurs)
  4. Fils de planche à pain et de cavalier
  5. 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

  1. Lire plusieurs capteurs: Interface avec jusqu'à 16 capteurs (par exemple, température, humidité ou lumière).
  2. Expansion des E / S numériques: Gérez plusieurs commutateurs, LED ou relais.
  3. Intégration du capteur analogique: Lisez les signaux des potentiomètres, des joysticks ou des capteurs d'humidité du sol.
  4. Automatisation: Contrôlez plusieurs appareils tels que des lumières, des ventilateurs ou des appareils.

Dépannage

  1. 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.
  2. 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.
  3. Lectures intermittentes:

    • Ajouter un petit retard (time.sleep(0.1)) entre les canaux de commutation pour permettre la stabilisation du signal.

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! 🚀

Laissez un commentaire

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.