PCF8574AP

Пришли PCF8574AP
Хочу с их помощью увеличит количество входов и выходов. Но чет разобраться не могу. Как например кнопочки подцепить через них или светодиоды зажечь?
  • 0
  • 19 апреля 2010, 13:18
  • vqd

Комментарии (9)

RSS свернуть / развернуть
+
0
а что не получается? по датащиту — PCF8574AP — это i2c IO-экстендер. Для общения с которым нужно использовать стандартную библиотеку Wire
avatar

noonv

  • 20 апреля 2010, 21:51
+
0
Да чет ничего не получается.

Ноги А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();
}

И ничего не происходит. Где чего не правильно?
avatar

vqd

  • 21 апреля 2010, 07:21
+
0
хм. Подтянул к SCL и SDA через 4,7к резисторы +5 и диодик заморгал согласно программе. Но как то тускло он мыргает.
avatar

vqd

  • 21 апреля 2010, 09:09
+
+1
Усе. разобрался ))))

вот
#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);
}
avatar

vqd

  • 21 апреля 2010, 09:36
+
0
поздравляю :) получается — нужно было завершать передачу вызовом
Wire.endTransmission();
? :)
avatar

noonv

  • 21 апреля 2010, 10:17
+
+1
Не. Я неправильно адрес забил и резисторы не подтянул. Как все сделал оно и заработало. Теперь вот сижу с кнопочкой разбираюсь. Пока безуспешно. Понять не могу в каком виде должно быть сообщение о том что на таком то порту кнопка нажата.
avatar

vqd

  • 21 апреля 2010, 10:27
+
0
победил

#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);
}

Кнопку прикрутил через массу.
avatar

vqd

  • 21 апреля 2010, 12:46
+
0
А INT — это чего за нога?
Пытаюсь заставить две микросхемы вместе работать. Там есть подводные камни в подключении?
avatar

vqd

  • 21 апреля 2010, 13:41
+
+1
На этой ноге появляется сигнал если кай-то из входов изменил своё состояние — предпологается что он (сигнал) подаётся на контроллер и генерирует прерывание. В прерывании же надо опросить микросхему и узнать что там изменилось.(какая кнопка нажалась-отпустилась)
По совместной работе никаких сложностей не должно быть — только надо адреса разные микросхемам задать ну и опрашивать каждую по своему адресу, естественно.
avatar

Zoltberg

  • 21 апреля 2010, 16:41

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.