Gamit ang CD74HC4067 multiplexer kasama ang Raspberry Pi

Using the CD74HC4067 Multiplexer with the Raspberry Pi

Ang CD74HC4067 ay isang 16-channel analog/digital multiplexer na nagbibigay-daan sa isang raspberry pi na makialam sa hanggang sa 16 mga input o output Gamit lamang ang ilang mga GPIO pin. Ito ay perpekto para sa pagpapalawak ng mga kakayahan ng I/O ng iyong Raspberry Pi kapag nagtatrabaho sa maraming mga sensor o aparato.


Ano ang kakailanganin mo

  1. Raspberry Pi (Anumang modelo na may suporta sa GPIO, hal., PI 3, PI 4)
  2. CD74HC4067 Multiplexer
  3. Analog o Digital Input Device (hal., Sensor, switch)
  4. Mga wire ng tinapay at jumper
  5. Naka -install ang Python Sa Raspberry Pi

Hakbang 1: Pag -unawa sa CD74HC4067

Ang CD74HC4067 ay may:

  • 16 mga channel ng input/output (S0-S15)
  • 4 control pin (S0, S1, S2, S3) Upang piliin ang aktibong channel.
  • 1 Paganahin ang pin (en) Upang maisaaktibo ang multiplexer (aktibong mababa).
  • Isang solong Com (karaniwang) pin para sa ibinahaging komunikasyon.

Talahanayan ng katotohanan 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: Ang mga kable ng CD74HC4067 sa Raspberry Pi

Ikonekta ang multiplexer sa Raspberry Pi tulad 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 (aktibong mababa)
Com GPIO18 (pin 12, analog input/output)
S0-S15 Ikonekta ang mga sensor/aparato

Hakbang 3: I -install ang mga kinakailangang aklatan

I -update ang iyong Raspberry Pi at i -install ang mga aklatan ng Python para sa kontrol ng GPIO.

sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio

Hakbang 4: Python Code upang mabasa ang data mula sa multiplexer

Narito ang isang script ng Python upang makontrol ang CD74HC4067 at basahin ang data mula sa mga konektadong channel.

Halimbawa ng Python Code

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()

Hakbang 5: Ang mga aplikasyon ng CD74HC4067 na may Raspberry Pi

  1. Pagbasa ng maraming mga sensor: Interface na may hanggang sa 16 sensor (hal., Temperatura, kahalumigmigan, o ilaw).
  2. Pagpapalawak ng digital I/O.: Pamahalaan ang maraming mga switch, LED, o relay.
  3. Pagsasama ng Analog Sensor: Basahin ang mga signal mula sa mga potentiometer, joystick, o sensor ng kahalumigmigan sa lupa.
  4. Home Automation: Kontrolin ang maraming mga aparato tulad ng mga ilaw, tagahanga, o kasangkapan.

Pag -aayos

  1. Walang data mula sa mga channel:

    • Patunayan ang mga kable ng S0-S3 control pin at ang com pin.
    • Tiyakin na ang mga sensor/aparato ay maayos na konektado sa mga S0-S15 pin.
  2. Maling pagpili ng channel:

    • Suriin ang talahanayan ng katotohanan para sa mga pagsasaayos ng S0-S3.
    • Tiyakin na ang EN PIN ay konektado sa GND para sa pag -activate.
  3. Intermittent Readings:

    • Magdagdag ng isang maliit na pagkaantala (time.sleep(0.1)) sa pagitan ng mga paglilipat ng mga channel upang payagan ang pag -stabilize ng signal.

Konklusyon

Ang CD74HC4067 Multiplexer ay isang malakas at epektibong paraan upang mapalawak ang mga kakayahan ng input/output ng Raspberry Pi. Sa pamamagitan ng pagsunod sa gabay na ito, madali mong mai -interface na may hanggang sa 16 na analog o digital na aparato gamit lamang ang 4 na GPIO pin. Eksperimento sa iba't ibang mga sensor at aplikasyon upang masulit ang maraming nalalaman module na ito! 🚀

Mag -iwan ng komento

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.