Jak używać multipleksera CD74HC4067 z Arduino

How to Use the CD74HC4067 Multiplexer with Arduino

CD74HC4067 jest 16-kanałowym multiplekserem/cyfrowym multiplekserem/demultiplekserem, który umożliwia zwiększenie liczby pinów wejściowych lub wyjściowych na Arduino. Jest to szczególnie przydatne w projektach wymagających wielu czujników, przycisków lub diod LED, jednocześnie minimalizując użycie kinowe. Ten samouczek poprowadzi Cię przez połączenie i korzystanie z CD74HC4067 z Arduino.


Czego będziesz potrzebować

  1. CD74HC4067 Moduł multiplekserowy lub IC
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Czujniki, przyciski lub diody LED do testowania
  4. Druty chleba i skoczków
  5. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie CD74HC4067

CD74HC4067 działa jako przełącznik, który łączy jeden z 16 pinów wejściowych/wyjściowych z pojedynczym wspólnym pinem. Możesz kontrolować, który kanał jest aktywny przy użyciu 4 pinów kontrolnych (S0 do S3).

Pinout

Szpilka Funkcjonować
VCC Zasilacz (3,3 V lub 5 V)
GND Grunt
S0, S1, S2, S3 Piny kontrolne (aby wybrać aktywny kanał)
En Włącz pin (aktywny niski; podłącz do GND, aby włączyć)
Com Wspólny pin we/wy (połącz się z Arduino)
CH0-CH15 Kanały od 0 do 15 (podłącz do czujników, przycisków lub diod LED)

Krok 2: Okablowanie CD74HC4067 do Arduino

Oto jak podłączyć CD74HC4067 z Arduino Uno:

Pin CD74HC4067 PIN Arduino
VCC 5v
GND GND
S0 Pin 8
S1 Pin 9
S2 Pin 10
S3 Pin 11
En GND
Com A0 (do czytania sygnałów analogowych)
CH0-CH15 Czujniki, diody LED lub przyciski

Krok 3: Prześlij kod

Poniższy przykład pokazuje, jak odczytać wartości analogowe z czujników podłączonych do CD74HC4067:

Przykładowy kod

const int s0 = 8; // Control pin S0
const int s1 = 9; // Control pin S1
const int s2 = 10; // Control pin S2
const int s3 = 11; // Control pin S3
const int comPin = A0; // Common pin connected to A0

void setup() {
  pinMode(s0, OUTPUT);
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  for (int i = 0; i < 16; i++) {
    selectChannel(i); // Select the active channel
    int sensorValue = analogRead(comPin); // Read the value from the sensor
    Serial.print("Channel ");
    Serial.print(i);
    Serial.print(": ");
    Serial.println(sensorValue);
    delay(500); // Small delay for readability
  }
}

void selectChannel(int channel) {
  digitalWrite(s0, channel & 0x01); // Set S0
  digitalWrite(s1, (channel >> 1) & 0x01); // Set S1
  digitalWrite(s2, (channel >> 2) & 0x01); // Set S2
  digitalWrite(s3, (channel >> 3) & 0x01); // Set S3
}

Krok 4: Przetestuj konfigurację

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod, klikając Prześlij.
  4. Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
  5. Obserwuj wartości analogowe dla każdego kanału wyświetlanego w monitorze szeregowym.

Opcjonalnie: kontrolowanie diod LED

Aby kontrolować diody LED podłączone do kanałów, zmodyfikuj kod do wyjściowych sygnałów cyfrowych zamiast odczytu analogowych wejść. Na przykład:

Przykładowy kod LED

void loop() {
  for (int i = 0; i < 16; i++) {
    selectChannel(i);
    digitalWrite(comPin, HIGH); // Turn on LED on the active channel
    delay(500);
    digitalWrite(comPin, LOW); // Turn off LED
  }
}

Zastosowania CD74HC4067

  1. Rozszerzanie wejść/wyjść analogowych i cyfrowych
  2. Czytanie wielu czujników z ograniczonymi szpilkami
  3. Budowanie dużych macierzy przycisków
  4. Kontrolowanie wielu diod LED lub przekaźników

Rozwiązywanie problemów

  • Brak odpowiedzi z kanałów: Sprawdź połączenia pinu sterowania i upewnij się EN Pin jest podłączony do GND.
  • Nieprawidłowy wybór kanału: Sprawdź selectChannel() Logika do ustawiania pinów S0-S3.
  • Niestabilne odczyty: Zapewnij odpowiednie uziemienie i stabilny zasilacz dla czujników.

Wniosek

Z powodzeniem połączyłeś multiplekser CD74HC4067 z Arduino. Ten wszechstronny moduł umożliwia znaczne rozszerzenie możliwości wejściowych i wyjściowych Arduino, dzięki czemu idealnie nadaje się do projektów obejmujących wiele czujników, przycisków lub diod LED. Eksperymentuj z różnymi konfiguracjami i zbadaj jego pełny potencjał!

Zostaw komentarz

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.