Kungenzeka ukuthi uzithole usesimweni lapho ungathanda ukwandisa inani lokungenayo kanye nokuphumayo okutholakalayo kwakho ibhodi ye-arduino, njengoba wenza iphrojekthi edinga amadivayisi amaningi kunokulindelekile. Kulezi zimo ungenza into eyodwa kuphela, futhi lokho kuwukucabanga ngokuthenga ibhodi lemodeli ephakeme enokwengeziwe kwalokhu kuxhumana. Kodwa manje nge I-PCF8574 inganweba i-I/O ye-Arduino ngendlela elula futhi eshibhile.
Lapha sizokukhombisa ukuthi iyini i-PCF8574 uma ubungayazi, ngaphezu kokubonisa ukuthi ingaxhumeka kanjani ebhodini lakho le-Arduino elichazwe isinyathelo ngesinyathelo nokuthi lisebenza kanjani...
Yini i-PCF8574?
El I-PCF8574 iyisandisi se-digital input and output (I/O) sebhasi le-I2C1. Le divayisi, ekhiqizwe ngabakwaPhilips, ikuvumela ukuthi uxhume iphrosesa efana ne-Arduino ukuze ulawule amadivayisi amaningi usebenzisa izikhonkwane2 ezimbalwa. I-PCF8574 ihlanganisa izikhonkwane eziyi-8 ze-quasi-directional ezisuselwe emiphumeleni ye-CMOS ekucushweni komsele ovulekile.
Ngaphezu kwalokho, i-PCF8574 iyidivayisi enamandla aphansi isekela ukusebenza kwe-VCC kusuka ku-2.5V kuya ku-6V. Ifaka imbobo ye-I/O engu-8-bit quasi-bidirectional I/O, okuphumayo okunamathiselwe, ukuphuma kokuphazamiseka kokukhipha amanzi avulekile, nekhono eliphezulu lokushayela lamanje lama-LED. Ngakolunye uhlangothi, ukusetshenziswa kwayo kokuma kuphansi kakhulu, kungaphansi kwe-10 µA.
Kuyasiza kakhulu Nweba amandla ebhodi lakho le-Arduino ngaphezu kwemikhawulo yalo, okungaba usizo olukhulu kubadali abadinga okuthile okungaphezu kwalokho okunikezwa i-Arduino. Umkhawulo wamanje onganikezwa iphinikhodi ngayinye uzoncika ekucushweni:
- Uma isebenza njengokuphumayo, ingu-25mA uma isebenza njengosinki, okungukuthi, lapho ugesi ugeleza uye ku-PCF8574. Lokhu ukucushwa okuzenzakalelayo.
- Uma isebenza njengomthombo ingu-300µA, okungukuthi, lapho okwamanje kugeleza kusuka ku-PCF8574. Ngokufanayo, kufanele wazi ukuthi yonke imiphumela inama-Latches, okungukuthi, igcina izwe ngokwalo kurejista. Kufanele sithathe isinyathelo kuphela uma sifuna ukulungisa isimo sokukodwa kokuphumayo.
Ukuxhumana kuyenziwa ngebhasi le-I2C, ngakho-ke kulula ukuthola idatha kumadivayisi axhunywe kuyo. Ngokunjalo, kufanele kuqashelwe ukuthi inezikhonkwane zekheli ezi-3, ezinikeza ukuxhumana okungaba ngu-8 ebhasini elifanayo le-I2C. Lokhu kusho ukuthi kungenzeka ukulawula amadivaysi angama-64 usebenzisa izikhonkwane ezi-2 kuphela.
Izilungiselelo Zekheli
Amanye amamodeli ale mojula ye-PCF8574 ngokuvamile ahlanganisa izikhonkwane zokumisa nama-jumper afana nalawa owabona esithombeni esingenhla. Ngakolunye uhlangothi, amanye amamodeli ahlanganisa ukushintshwa okwenza izinto zibe lula ngama-microswitches amathathu ... Yiba noma kunjalo, asetshenziselwa lungisa amakheli kwezikhonkwane ze-I/O:
A0 | A1 | A2 | Ikheli |
0 | 0 | 0 | 0x20 |
0 | 0 | 1 | 0x21 |
0 | 1 | 0 | 0x22 |
0 | 1 | 1 | 0x23 |
1 | 0 | 0 | 0x24 |
1 | 0 | 1 | 0x25 |
1 | 1 | 0 | 0x26 |
1 | 1 | 1 | 0x27 |
Intengo nokuthi ungathenga kuphi
Ingatholakala ngama-euro ambalwa nje. Kuyidivayisi kushibhile impela ukuthi ingaba usizo kangakanani kwamanye amamodeli e-Arduino anenani eliphansi lama-I/O. Ngakho-ke uma ufuna i-PCF8574, ungayithola ezitolo ezikhethekile noma nasezinkundleni zokuxhumana ezinkulu ezifana ne-Amazon, Aliexpress noma eBay. Isibonelo, lapha sincoma eyodwa:
Ixhuma i-PCF8574 ku-Arduinno
para xhuma i-PCF8574 expander ebhodini lakho le-Arduino, Umdwebo wokuxhuma ulula kakhulu. Uzodinga kuphela ukuxhuma:
- Iphinikhodi ye-SCL imakwe ebhodini le-PCF8574 kuphinikhodi ye-SCL ye-Arduino. Le phinikhodi ingashintsha kuye ngemodeli, kodwa ngokuvamile iba ku-A5 kumamodeli aziwa kakhulu njenge-UNO.
- Iphinikhodi ye-SDA ye-expander kufanele ixhume nephinikhodi ye-SDA ye-Arduino. Into efanayo engiyishilo ngenhla, ingashintsha kuye ngokuthi imodeli, kodwa ngokuvamile i-A4. Uma ungabaza, hlola i-pinout yemodeli yakho.
- Iphinikhodi ye-GND ye-PCF8574 izoxhunywa kuleyo ephawulwe nge-GND ku-Arduino, okungukuthi, ukuxhumana okuphansi.
- Iphinikhodi ye-Vcc ye-expander ixhunywe ku-5V ye-Arduino, ngale ndlela, nge-GND ne-Vcc sesivele sinikeze amandla ibhodi le-expander ukuze liqale ukusebenza.
Ukusebenza
Uma i-PCF8574 isixhunywe ebhodini le-Arduino, manje sekuyisikhathi sokwazi isebenza kanjani. Ukuze wenze lokhu, kufanele ukhumbule ukuthi uzokwazi ukuba nezikhonkwane ezengeziwe ezingu-8, esikhundleni sokusebenzisa izikhonkwane ezimbili ze-Arduino, ngaphezu kwamandla. Ngakolunye uhlangothi, kufanele ugcine okuthile engqondweni, futhi lokho kungukuthi kulelo nalelo phini le-8 le-PCF8574 une-MOSFET transistor kanye ne-resistor yokudonsa ephansi kakhulu. Lokhu kuthatha amandla amanje angu-100 microA lapho i-transistor isebenza.
Futhi lokhu kusishiya ne-panorama elandelayo:
- Ukucushwa njengokuphumayo- Uma iphinikhodi isetshenziswa njengokukhiphayo, isebenza njengosinki wamanje, njengoba ngixoxile ngenhla, okungukuthi ukungena kwamanje.
- PHANSI: Uma ikwi-voltage ephansi, ayiqhubeki yamanje, umthwalo = Vdd.
- OKUPHEZULU: uma ku-voltage ephezulu, kuze kufike ku-25mA yamanje kungadlula, umthwalo uzoxhunywa ku-GND.
- Ukucushwa njengokufakwayo: kufanele ihlale isethwe ku-HIGH, futhi kulokhu izosebenza njengomthombo, okungukuthi, i-current iyaphuma.
- Kuvaliwe: Uma umthwalo wangaphandle unganikezwa, i-voltage kuphini iya ku-GND.
- Vula: Uma kwenzeka umthwalo wangaphandle, i-pin voltage iba Vdd.
Ikhodi ye-Arduino IDE
Uma okufunayo izibonelo ezithile zendlela yokwenza ikhodi ukusebenzisa le PCF8574 ku-Arduino, kulula njengokusebenzisa lezi zibonelo zekhodi ongazishintsha ngokwezidingo zakho:
- Ukucushwa njengokuphumayo:
#include <Wire.h> const int pcfAddress = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { for (short channel = 0; channel < 8; channel++) { // Escribir dato en canal 'channel' Wire.beginTransmission(pcfAddress); Wire.write(~(1 << channel)); Wire.endTransmission(); // Leer dato de canal delay(500); } }
- Ukucushwa njengokufakiwe:
#include <Wire.h> const int pcfAddress = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { short channel = 1; byte value = 0; // Leer dato de canal 'channel' Wire.requestFrom(pcfAddress, 1 << channel); if (Wire.available()) { value = Wire.read(); } Wire.endTransmission(); // Mostrar el valor por puerto serie Serial.println(value); }
Khumbula ukuthi ungasebenzisa futhi umtapo wezincwadi owakhelwe ikakhulukazi i-PCF8574 okuhlanganisa nezibonelo ezingokoqobo...