Arduino CD4051
тел. +7(499)347-04-82
Описание Arduino CD4051
Отличный выбор! CD4051 (а также его аналог 74HC4051) — это один из самых популярных и доступных аналоговых мультиплексоров/демультиплексоров для Arduino и других микроконтроллеров. Он незаменим, когда нужно увеличить количество доступных аналоговых или цифровых входов/выходов.
Краткое описание
CD4051 — это 8-канальный аналоговый мультиплексор/демультиплексор. Проще говоря, это "электронный переключатель", который позволяет по очереди подключать один общий вывод (COM) к одному из восьми независимых каналов (Ch 0...7). Управление выбором канала осуществляется с помощью трех адресных пинов (A, B, C) и пина разрешения (INH).
Основная идея для Arduino: С помощью всего 4-х цифровых пинов Arduino (3 для адреса + 1 для разрешения) вы можете поочередно читать сигналы с 8 аналоговых датчиков (например, потенциометров, фоторезисторов) через один единственный аналоговый вход (A0) Arduino. Или наоборот — управлять 8 устройствами с одного ШИМ-выхода.
Технические характеристики (CD4051B / 74HC4051)
| Параметр | Значение | Комментарий |
| :--- | :--- | :--- |
| Тип микросхемы | Аналоговый мультиплексор/демультиплексор 1x8 | "1 к 8" или "8 к 1" |
| Количество каналов | 8 независимых каналов + 1 общий (COM) | |
| Логика управления | 3 адресных входа (A, B, C), 1 вход ингибирования (INH) | A — младший бит, C — старший. INH=1 — все каналы выключены. |
| Напряжение питания (VDD) | CD4051: 3В - 15В
74HC4051: 2В - 10В | CD4051 работает от широкого диапазона, включая 5В. |
| Аналоговый диапазон (VEE) | 0В - (VDD) | Может коммутировать сигналы в пределах от VEE до VDD. Для коммутации отрицательных сигналов на VEE подают отрицательное напряжение. |
| Сопротивление в открытом состоянии (Ron) | ~70 - 1000 Ом (зависит от VDD и типа) | При 5В: ~70-120 Ом для 74HC4051, ~200-400 Ом для CD4051. |
| Время переключения | ~30 - 250 нс | Достаточно быстро для большинства датчиков и аудиосигналов (низких частот). |
| Потребляемый ток (статический) | ~1 - 10 мкА | Очень низкое энергопотребление. |
| Тип корпуса | PDIP-16 (для макетной платы), SOIC-16, TSSOP-16 | Для Arduino чаще всего используют DIP-16. |
| Температурный диапазон | -55°C до +125°C (военный) / 0°C до +70°C (коммерческий) | |
Ключевые отличия между CD4051 и 74HC4051
- CD4051 (серия 4000): "Старая" КМОП-логика. Более устойчива к статике, работает от широкого диапазона напряжений (3-15В), но имеет большее сопротивление канала и меньшее быстродействие.
- 74HC4051 (серия HC): "Современная" высокоскоростная КМОП-логика. Работает при 2-6В (реже до 10В), имеет меньшее сопротивление канала и быстрее переключается. Чаще рекомендуется для новых проектов на 5В/3.3В.
Для 5В Arduino лучше выбрать 74HC4051. Для питания от 9В или специфичных задач — CD4051.
Номера выводов (Pinout) для DIP-16
┌───┬───┐
Ch 4 │1 └─┐ 16│ VDD (+5V)
Ch 6 │2 15│ Ch 2
Ch 7 │3 14│ Ch 1
Ch 5 │4 13│ Ch 0
INH │5 12│ Ch 3
VEE │6 11│ A (Addr. LSB)
VSS │7 10│ B (Addr.)
COM │8 9│ C (Addr. MSB)
└───────┘
- VDD: Плюс питания (+5В).
- VSS, VEE: Земля (GND). Обычно оба соединяют с GND, если не требуется коммутация отрицательных сигналов.
- INH (Inhibit): Когда на этом выводе HIGH (1), все каналы отключены. Для работы должен быть LOW (0).
- A, B, C: Адресные входы. Их двоичный код (CBA) определяет, какой канал (0-7) подключен к COM.
000-> Канал 0001-> Канал 1- ...
111-> Канал 7
Парт-номера и совместимые модели
Прямые аналоги (функционально идентичны, 1x8):
- Texas Instruments: CD4051B, 74HC4051, SN74HC4051
- NXP (Philips): HEF4051, 74HC4051
- ON Semiconductor: MC74HC4051, CD4051B
- Renesas: 74HC4051
- Soviet/Russian: К561КТ3 (аналог CD4051)
Модели в других корпусах:
- CD4051BE / 74HC4051N — классический DIP-16.
- CD4051BM / 74HC4051PW — поверхностный монтаж (SOIC, TSSOP).
Расширенные/совместимые версии:
- CD4052 / 74HC4052: Сдвоенный 4-канальный мультиплексор (2x4). Идеально для стереосигналов (коммутирует 2 сигнала одновременно).
- CD4053 / 74HC4053: Строенный 2-канальный мультиплексор (3x2). Подходит для коммутации сигналов в аудиотрактах.
- 74HCT4051: Версия с TTL-совместимыми уровнями входов (порог ~1.6В вместо ~2.5В для HC), если управляется от микросхем TTL-логики (для Arduino не актуально).
- ADG708, ADG728: Современные аналоги от Analog Devices с更低шим сопротивлением и быстродействием, но дороже.
Типовое подключение к Arduino
Цель: Чтение 8 потенциометров через один аналоговый пин A0.
Схема подключения:
- VDD -> 5V Arduino
- VSS, VEE -> GND Arduino
- INH -> GND Arduino (или к цифровому пину для программного отключения)
- A, B, C -> Цифровые пины Arduino (например, D2, D3, D4)
- COM -> Аналоговый пин A0 Arduino
- Сигналы с датчиков -> Каналы Ch0...Ch7
Простой скетч:
const int adrA = 2; // Адрес A (LSB)
const int adrB = 3; // Адрес B
const int adrC = 4; // Адрес C (MSB)
const int comPin = A0; // Общий вывод на аналоговый вход
void setup() {
pinMode(adrA, OUTPUT);
pinMode(adrB, OUTPUT);
pinMode(adrC, OUTPUT);
Serial.begin(9600);
}
void loop() {
for (int channel = 0; channel < 8; channel++) {
// Устанавливаем адрес канала на выводах A, B, C
digitalWrite(adrA, bitRead(channel, 0)); // Младший бит
digitalWrite(adrB, bitRead(channel, 1));
digitalWrite(adrC, bitRead(channel, 2)); // Старший бит
delay(1); // Небольшая задержка для стабилизации сигнала
int sensorValue = analogRead(comPin); // Читаем значение с выбранного канала
Serial.print("Канал ");
Serial.print(channel);
Serial.print(": ");
Serial.println(sensorValue);
}
Serial.println("-----");
delay(1000);
}
Сфера применения с Arduino: Мультиплексирование датчиков (температура, свет, потенциометры), клавиатурные матрицы, управление множеством светодиодов или зуммеров, последовательное считывание кнопок, создание простых осциллографов или аудиосвитчеров.