CD74HC4067は、16チャンネルのアナログ/デジタルマルチプレクサ/Demultiplexerであり、Arduinoの入力または出力ピンの数を拡大できるようにします。ピンの使用を最小限に抑えながら、複数のセンサー、ボタン、またはLEDを必要とするプロジェクトで特に役立ちます。このチュートリアルでは、ArduinoとCD74HC4067を接続および使用することをガイドします。
あなたが必要とするもの
- CD74HC4067マルチプレクサモジュールまたはIC
- Arduino委員会(例:UNO、MEGA、NANO)
- テスト用のセンサー、ボタン、またはLED
- ブレッドボードとジャンパーワイヤ
- 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:セットアップをテストします
- USBを介してArduinoをコンピューターに接続します。
- Arduino IDEを開き、正しいものを選択します ボード そして ポート の下 ツール メニュー。
- クリックしてコードをアップロードします アップロード.
- シリアルモニターを開きます(ツール > シリアルモニター)そして、ボーレートをに設定します
9600
. - シリアルモニターに表示される各チャネルのアナログ値を観察します。
オプション: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のアプリケーション
- アナログおよびデジタル入力/出力の拡大
- 限られたピンを備えた複数のセンサーを読み取ります
- 大きなボタンマトリックスの構築
- 複数のLEDまたはリレーの制御
トラブルシューティング
-
チャネルからの応答はありません: コントロールピン接続を確認し、を確認します
EN
ピンはGNDに接続されています。 -
間違ったチャネル選択: を確認してください
selectChannel()
S0-S3ピンを設定するためのロジック。 - 不安定な測定値: センサーに適切な接地と安定した電源を確保します。
結論
CD74HC4067マルチプレクサーとArduinoをインターフェースすることに成功しました。この汎用性の高いモジュールを使用すると、Arduinoの入力および出力機能を大幅に拡張できるため、複数のセンサー、ボタン、またはLEDを含むプロジェクトに最適です。さまざまな構成を試して、その最大限の可能性を探りましょう!