ArduinoでCD74HC4067マルチプレクサを使用する方法

How to Use the CD74HC4067 Multiplexer with Arduino

CD74HC4067は、16チャンネルのアナログ/デジタルマルチプレクサ/Demultiplexerであり、Arduinoの入力または出力ピンの数を拡大できるようにします。ピンの使用を最小限に抑えながら、複数のセンサー、ボタン、またはLEDを必要とするプロジェクトで特に役立ちます。このチュートリアルでは、ArduinoとCD74HC4067を接続および使用することをガイドします。


あなたが必要とするもの

  1. CD74HC4067マルチプレクサモジュールまたはIC
  2. Arduino委員会(例:UNO、MEGA、NANO)
  3. テスト用のセンサー、ボタン、またはLED
  4. ブレッドボードとジャンパーワイヤ
  5. Arduino IDEがインストールされたコンピューター

ステップ1:CD74HC4067の理解

CD74HC4067は、16の入力/出力ピンの1つを単一の共通ピンに接続するスイッチとして機能します。 4つのコントロールピン(S0〜S3)を使用してアクティブなチャネルを制御できます。

ピンアウト

ピン 関数
VCC 電源(3.3Vまたは5V)
GND 地面
S0、S1、S2、S3 コントロールピン(アクティブチャネルを選択するため)
en PINを有効にする(アクティブロー; GNDに接続して有効にする)
com 一般的なI/Oピン(Arduinoに接続)
CH0-CH15 チャンネル0〜15(センサー、ボタン、またはLEDに接続)

ステップ2:CD74HC4067をArduinoに配線します

CD74HC4067をArduino UNOに接続する方法は次のとおりです。

CD74HC4067ピン Arduino Pin
VCC 5V
GND GND
S0 ピン8
S1 ピン9
S2 ピン10
S3 ピン11
en GND
com A0(アナログ信号を読むため)
CH0-CH15 センサー、LED、またはボタン

ステップ3:コードをアップロードします

次の例は、CD74HC4067に接続されたセンサーからアナログ値を読み取る方法を示しています。

例コード

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
}

ステップ4:セットアップをテストします

  1. USBを介してArduinoをコンピューターに接続します。
  2. Arduino IDEを開き、正しいものを選択します ボード そして ポート の下 ツール メニュー。
  3. クリックしてコードをアップロードします アップロード.
  4. シリアルモニターを開きます(ツール > シリアルモニター)そして、ボーレートをに設定します 9600.
  5. シリアルモニターに表示される各チャネルのアナログ値を観察します。

オプション:LEDの制御

チャネルに接続されたLEDを制御するには、コードを変更して、アナログ入力を読み取る代わりにデジタル信号を出力します。例えば:

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
  }
}

CD74HC4067のアプリケーション

  1. アナログおよびデジタル入力/出力の拡大
  2. 限られたピンを備えた複数のセンサーを読み取ります
  3. 大きなボタンマトリックスの構築
  4. 複数のLEDまたはリレーの制御

トラブルシューティング

  • チャネルからの応答はありません: コントロールピン接続を確認し、を確認します EN ピンはGNDに接続されています。
  • 間違ったチャネル選択: を確認してください selectChannel() S0-S3ピンを設定するためのロジック。
  • 不安定な測定値: センサーに適切な接地と安定した電源を確保します。

結論

CD74HC4067マルチプレクサーとArduinoをインターフェースすることに成功しました。この汎用性の高いモジュールを使用すると、Arduinoの入力および出力機能を大幅に拡張できるため、複数のセンサー、ボタン、またはLEDを含むプロジェクトに最適です。さまざまな構成を試して、その最大限の可能性を探りましょう!

コメントを残す

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.