Пришли PCF8574AP
Хочу с их помощью увеличит количество входов и выходов. Но чет разобраться не могу. Как например кнопочки подцепить через них или светодиоды зажечь?
Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…
9 комментариев на «“PCF8574AP”»
а что не получается? податащиту — PCF8574AP — это i2c IO-экстендер. Для общения с которым нужно использовать стандартную библиотеку Wire
Да чет ничего не получается.
Ноги А0, А1, А2 и 8 ногу — зацепил на массу
SCL и SDA ноги — к 4 и 5 аналоговому выходу на Ардуино
ну и VDD на +5
в произвольный выход втыкаю светодиод и он тускло светиться.
#include <Wire.h>
void setup(){
Wire.begin();
}
void loop(){
Wire.beginTransmission(B01110000); //Адрес PCF8574A
Wire.send(B11111111); //В теории на всех выходах должно быть +5
Wire.endTransmission();
}
И ничего не происходит. Где чего не правильно?
хм. Подтянул к SCL и SDA через 4,7к резисторы +5 и диодик заморгал согласно программе. Но как то тускло он мыргает.
Усе. разобрался ))))
вот
#include <Wire.h>
void setup(){
Wire.begin();
}
void loop(){
Wire.beginTransmission(B0111000);
Wire.send(B11111111);
Wire.endTransmission();
delay(1000);
Wire.beginTransmission(B0111000);
Wire.send(B00000000);
Wire.endTransmission();
delay(1000);
}
поздравляю 🙂 получается — нужно было завершать передачу вызовом
? 🙂
Не. Я неправильно адрес забил и резисторы не подтянул. Как все сделал оно и заработало. Теперь вот сижу с кнопочкой разбираюсь. Пока безуспешно. Понять не могу в каком виде должно быть сообщение о том что на таком то порту кнопка нажата.
победил
#include <Wire.h>
void setup(){
Wire.begin();
Serial.begin(9600);
}
void loop(){
Wire.requestFrom(B0111111,1);
Serial.print(Wire.receive(), BIN);
Serial.println();
delay(1000);
}
Кнопку прикрутил через массу.
А INT — это чего за нога?
Пытаюсь заставить две микросхемы вместе работать. Там есть подводные камни в подключении?
На этой ноге появляется сигнал если кай-то из входов изменил своё состояние — предпологается что он (сигнал) подаётся на контроллер и генерирует прерывание. В прерывании же надо опросить микросхему и узнать что там изменилось.(какая кнопка нажалась-отпустилась)
По совместной работе никаких сложностей не должно быть — только надо адреса разные микросхемам задать ну и опрашивать каждую по своему адресу, естественно.