Не хватает цифровых выводов Ардуино? Используем I2C!

При подключении дополнительных устройств к Ардуино используются цифровые вывода, по которым осуществляется обмен данными. Чем больше устройств используется в проекте, тем больше этих цифровых выводов необходимо контроллеру. Поэтому рано или поздно, каждый программист – разработчик проектов на Ардуино столкнется с нехваткой выводов. Я не стал исключением. Решение проблемы — протокол I2C.

При разработке проекта «Ардуино и баня», нужно подключить: светодиодную ленту (3 вывода), датчик влажности DHT 11 (1 вывод), датчик температуры DS18B20 (1 вывод) и дисплей LCD1602 (6 выводов). Итого 11 выводов, 6 из которых ШИМ.

3 ШИМ зарезервированы на дисплей LCD 1602, еще 3 ШИМ нужны для регулировки яркости светодиодной ленты, остается 0 ШИМ.

Всего же в контроллере Arduino UNO R3 14 цифровых выводов. С ними пока проблем нет, а вот ШИМ тают на глазах. Поэтому лучше заранее побеспокоиться об их свободном количестве.

Основным «пожирателем выводов» в проекте является дисплей LCD 1602 (для работы нужно 6 выводов), с него и начнем. Оказывается, в природе существует версия дисплея с волшебной платой на борту (LCD 1602 + I2C). Небольшая плата позволяет организовать работу дисплея по двух выводам, да еще и аналоговым: А4, А5. В сумме освободится 6 цифровых выводов. Вот таким образом была решена проблема нехватки цифровых выводов платы Ардуино.

 

Подключение LCD 1602 + I2C к Arduino UNO R3:

 

LCD 1602 + I2C Arduino UNO R3
SCL A5
SDA A4
VCC +5V
GND GND

SCL — последовательная линия тактирования

SDA — последовательная линия данных

VCC — плюс питания

GND — минус питания

На фотографии можно посмотреть, как выглядят контакты платы I2С

Метки: Метки