+2 голосов
Здравствуйте,

помогите пожалуйста решить вопрос подключения 8 кнопок к Arduino UNO через расширитель портов PCF8574.

Нужна схема подключения и, желательно, подробное объяснение - я еще новичок.

Есть еще один нюанс - на расширителе есть порт int, который можно использовать для отслеживания события нажатия любой кнопки. Т.е. можно ли подключить порт int расширителя к порту аппаратного прерывания Arduino и считывать состояние кнопок по его срабатыванию.
(13 баллов) 3

1 Ответ

+2 голосов
 
Лучший ответ

Если у вас данная схема присутствует в составе конвертера под дисплей LCD1602

, то можно оставить эту идею, потому что как минимум одна кнопка , подключенная к выводу номер 3 отпрашиваться не может. Так как там стоит транзистор :

(Выводы обозначены буквой Р)

Если же схема не на печатной плате , то вот её распиновка.

Подключение предельно простое:

  • Vcc _+5v
  • Gnd _gnd
  • SDA_SDA
  • SCL_SCL
  • /INT _ D2 или D3

Причем при подключении прерываний указать D2 как 0, а D3 как 1.

Лучше всего для его подключения использовать библиотеку <PCF8574.h>.

#include <PCF8574.h>

#include <Wire.h>

PCF8574 pcf20(0x20);
//------^-------
//Это просто имя, хоть в им Ленина называйте  

void setup() {

pcf20.begin();

//В дальнейшем оно тоже указывается

attachInterrupt(0, read,FALLING);
     //Второй пин


pcf20.write(4, LOW);

pcf20.write(5, LOW);

pcf20.write(6, LOW);

pcf20.write(7, LOW);

}

 

void loop() {

 

}

 

void read()
{//Здесь можно считать состояние всех кнопок по очереди
pcf20.digitalRead(0);

}

(2.5 тыс. баллов) 5 15 38
выбран
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. parovoZZ

    62 балл(ов)

  2. Un_ka

    24 балл(ов)

  3. Тигрыч

    10 балл(ов)

  4. N08I40K

    8 балл(ов)

  5. LeftyDeMilo

    6 балл(ов)

  6. Иван91

    5 балл(ов)

Награды месяца
1-е место: Raspberry Pi 3 Model A+
2-е место: Raspberry Pi Zero W
3-е место: Raspberry Pi Zero

...