Se CD74HC4067 on 16-kanavainen analoginen/digitaalinen multiplekseri, jonka avulla vadelma Pi voi liittyä 16 tuloa tai lähtöä käyttämällä vain muutamia GPIO -nastat. Se on täydellinen Raspberry PI: n I/O -ominaisuuksien laajentamiseen työskennellessäsi useiden anturien tai laitteiden kanssa.
Mitä tarvitset
- Raspberry Pi (Mikä tahansa malli, jolla on GPIO -tuki, esim. Pi 3, pi 4)
- CD74HC4067 Multiplekseri
- Analogiset tai digitaaliset syöttölaitteet (esim. Anturit, kytkimet)
- Leipälevy- ja hyppyjohdot
- Python asennettu Raspberry Pi
Vaihe 1: CD74HC4067: n ymmärtäminen
CD74HC4067 on:
- 16 Syöttö/lähtökanavat (S0-S15)
- 4 Ohjaustapit (S0, S1, S2, S3) Aktiivisen kanavan valitseminen.
- 1 Ota nasta (fi) multiplekserin aktivointi (aktiivinen matala).
- Yksi Com (yleinen) jaettavalle viestintälle.
Kanavan valinnan totuustaulukko
S3 | S2 | S1 | S0 | Aktiivinen kanava |
---|---|---|---|---|
0 | 0 | 0 | 0 | S0 |
0 | 0 | 0 | 1 | S1 |
0 | 0 | 1 | 0 | S2 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | S15 |
Vaihe 2: CD74HC4067: n johdotus Raspberry PI: hen
Kytke multiplekseri Raspberry Pi: hen seuraavasti:
CD74HC4067 -nasta | Raspberry Pi -tappi |
---|---|
VCC | 3,3 V (nasta 1) |
Hölynpöly | GND (nasta 6) |
S0 | GPIO17 (nasta 11) |
S1 | GPIO27 (nasta 13) |
S2 | GPIO22 (nasta 15) |
S3 | GPIO23 (nasta 16) |
Fi | GND (aktiivinen matala) |
Com | GPIO18 (nasta 12, analoginen tulo/lähtö) |
S0-S15 | Kytke anturit/laitteet |
Vaihe 3: Asenna vaadittavat kirjastot
Päivitä Raspberry Pi ja asenna Python -kirjastot GPIO -ohjaukseen.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Vaihe 4: Python -koodi lukemaan tietoja multiplekseristä
Tässä on Python -skripti CD74HC4067: n hallitsemiseksi ja tietojen lukeminen kytketyistä kanavista.
Python -koodiesimerkki
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()
Vaihe 5: CD74HC4067: n sovellukset Raspberry PI: llä
- Useiden anturien lukeminen: Rajapinta jopa 16 anturia (esim. Lämpötila, kosteus tai valo).
- Laajeneva digitaalinen I/O: Hallitse useita kytkimiä, LED -levyjä tai releitä.
- Analoginen anturin integraatio: Lue signaaleja potentiometreistä, joystickeistä tai maaperän kosteusantureista.
- Kodin automaatio: Hallitse useita laitteita, kuten valoja, tuulettimia tai laitteita.
Vianetsintä
-
Ei kanavia:
- Varmista S0-S3-ohjaustappien ja COM-ninan johdotus.
- Varmista, että anturit/laitteet on kytketty oikein S0-S15-nastaihin.
-
Väärä kanavan valinta:
- Tarkista totuustaulukko S0-S3-kokoonpanoista.
- Varmista, että EN -nasta on kytketty GND: hen aktivointia varten.
-
Ajoittaiset lukemat:
- Lisää pieni viive (
time.sleep(0.1)
) kytkentäkanavien välillä signaalin vakauttamisen mahdollistamiseksi.
- Lisää pieni viive (
Johtopäätös
Se CD74HC4067 Multiplekseri on tehokas ja kustannustehokas tapa laajentaa Raspberry Pi: n syöttö-/lähtöominaisuuksia. Seuraamalla tätä opasta, voit helposti liittyä jopa 16 analogiseen tai digitaaliseen laitteeseen vain 4 GPIO -nastalla. Kokeile erilaisia antureita ja sovelluksia hyödyntääksesi tätä monipuolista moduulia! 🚀