Описание
Модуль Аналоговый 16-канальный мультиплексор CD74HC4067
Модуль аналогового мультиплексора на 16 каналов на микросхеме CD74HC4067. Позволяет значительно увеличить количество входов/выходов контроллера. Наличие контакта выбора чипа EN позволяет каскадировать модули для увеличения вводов/выводов.
Характеристики
- Напряжение питания: 2-6 В
- Внутреннее сопротивление ключей: 70 Ом при напряжении питания 4.5 В.
- Скорость срабатывания: 6 нс при напряжении питания 4.5 В;
- Диапазон рабочих температур: -55..125 °C
Назначение выводов
| Контакт | Описание |
| GND | Земля |
| VCC | Питание |
| EN | Выбор кристалла |
| S0..S3 | Выбор канала |
| SIG | Выход выбранного канала |
| C0..C15 | Входы |
Мультиплексор это что-то вроде галетного переключателя, он имеет один сигнальный вход или выход, который подключается к одному из 16 входов или выходов в зависимости от состояния управляющих входов.
Из нее видно, если на управляющих входах Sx логический 0, то сигнальный вход подключен 0 входу мультиплексора, а если 8, то соответственно на 8 вход.
вход Е, это включение микросхемы, если на нем логическая единица, то нечего не к чему не подключено.
#define EN 3
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define SIG A0
void setup(){
Serial.begin(9600);
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
digitalWrite(S0, LOW);
digitalWrite(S1, LOW);
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
pinMode(EN, OUTPUT);
digitalWrite(EN, LOW);
}
void loop(){
//Loop through and read all 16 values
//Reports back Value at channel 6 is: 346
for(int i = 0; i < 16; i ++){
// Serial.print("Value at channel ");
// Serial.print(i);
// Serial.print(": ");
Serial.print(readMux(i));
Serial.print(". ");
}
Serial.println();
delay(100);
}
int readMux(int channel){
int controlPin[] = {S0, S1, S2, S3};
int muxChannel[16][4]={
{0,0,0,0}, //channel 0
{1,0,0,0}, //channel 1
{0,1,0,0}, //channel 2
{1,1,0,0}, //channel 3
{0,0,1,0}, //channel 4
{1,0,1,0}, //channel 5
{0,1,1,0}, //channel 6
{1,1,1,0}, //channel 7
{0,0,0,1}, //channel 8
{1,0,0,1}, //channel 9
{0,1,0,1}, //channel 10
{1,1,0,1}, //channel 11
{0,0,1,1}, //channel 12
{1,0,1,1}, //channel 13
{0,1,1,1}, //channel 14
{1,1,1,1} //channel 15
};
//loop through the 4 sig
for(int i = 0; i < 4; i ++){
digitalWrite(controlPin[i], muxChannel[channel][i]);
}
//read the value at the SIG pin
int val = analogRead(SIG);
//return the value
return val;
}







Отзывы
Отзывов пока нет.