kdyz potrebujeme navic az osm digitalnich vstupu/vystupu na Arduinu,
muzeme zkusit expander napr. s cipem PCF8574.
na tom neni nic objevneho.
pokud chcete "lacinku", tak pouzijte tento I2C imodul:
https://www.aliexpress.com/item/1pcs-Se ... 36360f3e62
je sice urceny pro znakovy displej, ale proc ho nepouzit treba pro tlacitka..
schema:
http://www.sunrom.com/p/i2c-lcd-backpack-pcf8574
je videt, ze jeden pin (P3) na hrebinku chybi (vede k ovladani tranzistoru pro spinani podsviceni).
musi se prerusit spoj , ktery vede od sedme nozicky chipu k bazi tranzistoru.
a pak dratkem pripojit 7 nozicku na hrebinek. (jsou tam 4 piny nezapojene)
pokud uz pouzivam a mam nalinkovanou knihovnu Wire.h v programu, tak by bylo skoda nevyuzit tuto moznost a
usetrit tak piny Arduina.
-V66
test code:
Kód: Vybrat vše
/*
Test expanderu s PCF8574
je dobre si zjistit adresu modulu sketchem "I2C scanner"
PCF8574 ma jinou adresu nez PCF8574A
*/
#include <Wire.h>
byte x=0;
//------------------------------------------
void setup(){
Serial.begin(9600);
Wire.begin();
}
//------------------------------------------
void loop() {
Wire.requestFrom(38,1); //cteni jednoho byte z adresy 38 (A0=propojka, A1=rozpojeno. A2=rozpojeno)
if(Wire.available()) //If the request is available
{
x=Wire.read(); //nacteni vstupu do promene
x=255-x;
if (x !=0){ //bude vypisovat, kdyz bude neco sepnuteho na vstupu
Serial.println(x);
}
}
delay(100);
}