ИМС HEF4051B (4051) представляет собой 8 канальный аналоговый CMOS мультиплексор/демультиплексор. HEF4051B можно применить для увеличения числа аналоговых входов Arduino, для этого будет задействован одни аналоговый вход и три цифровых входа Arduino.
#include <HEF4051.h> // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=748&download=1 HEF4051 hef(A0,2,3,4);// analog_input A0, D2,D3,D4 void setup() { Serial.begin(9600); } void loop() { for(byte i=0;i<8;i++){ Serial.println("ADC" + String(i) + " = " + String(hef.Read(i))); } Serial.println(); delay(1000); }
Для вывода значения аналогового выхода служит функция hef.Read(i), где i от 0 до 7 — номер аналогового входа мультиплексора.
Аналогично можно использовать мультиплексор для увеличения числа цифровых входов, например для увеличения числа подключаемых кнопок.
#include <HEF4051.h> HEF4051 hef(7,2,3,4);// input - D7 ,D2,D3,D4 void setup() { Serial.begin(9600); pinMode(13,OUTPUT); } void loop() { if(hef.d_Read(0)==HIGH){digitalWrite(13,HIGH);}else{digitalWrite(13,LOW);} }
Для увеличения числа цифровых входов используется функция hef.d_Read(x), где х номер входа от 0 до 7.
В показанном выше скетче при нажатии кнопки 0 (13 ножка мультиплексора), загорается светодиод расположенный на плате Arduino.