Tha thu gu cinnteach air cluinntinn mun PCF8574 IC, chip a ghabhas a cheannach air leth no mu thràth air a chuir air modal mar mòran eile Pàirtean dealanach gus amalachadh riut leis a ’bhòrd Arduino agad. Anns a ’chùis seo, tha e na leudachadh air na cuir a-steach agus na toraidhean airson am bus I2C.
Is dòcha gu bheil thu a ’smaoineachadh gu bheil a chuid fhèin aig Arduino mu thràth bus I2C aonaichte, agus tha e fìor. Ach faodaidh am PCF8574 cuideachadh le bhith a ’leudachadh a’ bhus sin nas fhaide na crìochan a ’bhùird leasachaidh agad, a dh’ fhaodadh a bhith na chuideachadh mòr do chuid de luchd-dèanaidh a dh ’fheumas barrachd air dìreach na tha Arduino a’ toirt seachad.
Dè am bus I2C?
Tha an t-ainm I2C a ’tighinn Ciorcad eadar-aonaichte no cuairtean eadar-aonaichte. Chaidh an dreach 1.0 aige a chruthachadh ann an 1992 le Philips. An uairsin thigeadh dàrna 2.1 ann an 2000 agus an-diugh tha e air a thighinn gu bhith na inbhe (aig 100 kbit / s, ged a cheadaicheas e suas ri 3.4 Mbit / s aig a ’char as àirde) nuair a dh’ fhalbh an patent ann an 2006 agus faodar a chleachdadh gu saor.
Aig an àm seo tha e air a chleachdadh gu farsaing anns a ’ghnìomhachas airson conaltradh, agus cuideachd gu mòr a ’cur luach air luchd-dèanaidh airson na pròiseactan aca gus diofar microcontrollers agus peripherals a cho-aonachadh ann an aon IC.
El Tha I2C na bhus conaltradh sreathach ainmeil. Bidh e a ’cleachdadh protocol conaltraidh sioncronaich anns nach eil ach 2 sheanalan (tha an treas fear ann, ach tha e ceangailte ri iomradh no GND), gu dearbh tha e cuideachd air ainmeachadh mar TWI (Two Wire Interface):
- Aon airson a ’ghleoc (SCL).
- Eile airson dàta (SDA).
Tha sin a ’ciallachadh gu bheil an mhaighstir agus tràill bidh iad a ’cur dàta thairis air an aon chàball no slighe, a tha fo smachd a’ chiad fhear a ghineas an comharra cloc. Bidh seòladh sònraichte air a thoirt do gach aon de na h-innealan iomaill a tha ceangailte ris a ’bhus I2C, gus na tar-chuiridhean a stiùireadh. Ach chan eil e riatanach gum bi an tidsear an-còmhnaidh mar an ceudna (ioma-thidsear), is e an-còmhnaidh esan a thòisicheas an gluasad.
Mar a mhìnich mi mu thràth san artaigil air Arduino I2C Thug mi iomradh na bu thràithe, tha na ceanglaichean I2C sin aig gach bòrd ann an diofar àiteachan. Is e rudeigin a dh ’fheumas tu a chumail nad inntinn gus an urrainn dhut a chleachdadh gu ceart anns gach dreach den bhòrd:
- Arduino UNO: Tha SDA ann an A4 agus SCK ann an A5
- ArduinoNano: an aon rud ris an fhear roimhe.
- Arduino mini pro: an aon rud.
- Mega Arduino: Tha SDA air prìne 20 agus SCK air 21.
- Barrachd fiosrachaidh mu phlàtaichean.
Tha fios agad mu thràth gun urrainn dhut an I2C a chleachdadh airson do sgeidsichean gu furasta, bhon a Leabharlann Wire.h le diofar dhleastanasan airson a ’chonaltradh sreathach seo:
- tòiseachadh (): tòisich air an leabharlann Wire agus sònraich an e maighstir no tràill a th ’ann
- iarrtasFrom (): air a chleachdadh leis a ’mhaighstir gus dàta iarraidh bhon tràill.
- beginTransmission (): tòiseachadh air tar-chuir le tràill.
- endTransmission (): tar-chuir deireadh.
- sgrìobh ()- Sgrìobh dàta bho thràill mar fhreagairt air iarrtas bhon mhaighstir, no faodaidh tu ciudha maighstir a chraoladh.
- ri fhaighinn (): tillidh e an àireamh de bytes ri leughadh.
- leugh (): a ’leughadh byte a chaidh a ghluasad bho thràill gu maighstir no a chaochladh.
- onReceive (): A ’gairm gnìomh nuair a gheibh tràill tar-chuir bho mhaighstir.
- onRequest (): A ’gairm gnìomh nuair a dh’ iarras tràill dàta bho mhaighstir.
Para barrachd fiosrachaidh mu phrògraman agus gnìomhan Arduino as urrainn dhut ar luchdachadh sìos Oideachadh PDF.
Dè a th ’anns a’ PCF8574?
Tha am PCF8574 a Cuir a-steach agus toraidhean didseatach bus I2C (I / O). Faodar a dhèanamh le diofar luchd-saothrachaidh, a bharrachd air a bhith ri fhaighinn ann an ICan agus modalan. Ann an suidheachadh sam bith, tha e gu math practaigeach a cheangal ris a ’bhòrd Arduino agad agus an comas smachd a chumail air barrachd innealan na tha am motherboard a’ ceadachadh.
El PCF8574 pinout Tha e sìmplidh, seach nach eil e a ’toirt a-steach Pinnsean 8 leth-stiùiridh (P0-P7 far a bheil na sgoltagan airson conaltradh ceangailte), agus air an làimh eile tha an SDA agus SCL agad a dh ’fheumas tu a cheangal ri bòrd Arduino, a bharrachd air VCC agus GND gus cumhachd a thoirt don mhodal cuideachd. Agus na dìochuimhnich na trì prìnichean seòlaidh A0, A1, A2 gus taghadh dè na h-innealan a tha an conaltradh air a stiùireadh gu ...
Owns feartan eile gum bu chòir fios a bhith agad:
- Faodaidh na ceanglaichean aige, a bhith mar dhrèanadh fosgailte air a chleachdadh an dà chuid mar chur-a-steach agus mar thoraidhean.
- La stùc gnàthach tha e 25mA nuair a bhios e ag obair mar toradh (sinc, nuair a bhios sruth a ’sruthadh a dh’ ionnsaigh PCF8574) agus 300 µA (stòr, sruthan a ’sruthadh bho PCF8574).
- La teannachadh is e solar cumhachd 2.5 agus 6v. Tha an caitheamh neo-sheasmhach glè ìosal, dìreach 10 µA.
- A h-uile toradh tha latches, gus an stàit a chumail suas gun fheum air gnìomhan taobh a-muigh. Cha leig thu leas a bhith ach nuair a tha thu airson an stàit atharrachadh.
- Gheibh thu 8 stiùiridhean comasach, is e sin, suas ri 8 innealan gus conaltradh le no cleachdadh 8 modalan gus a leudachadh gu 64 inneal. Is iad na seòlaidhean (prìnichean A0, A1, A2):
- 000: seòladh 0x20
- 001: seòladh 0x21
- 010: seòladh 0x22
- 011: seòladh 0x23
- 100: seòladh 0x24
- 101: seòladh 0x25
- 110: seòladh 0x26
- 111: seòladh 0x27
- Aideachadh dealachadh (INT) le loidhne sònraichte gus dàta a lorg gun a bhith a ’cumail sùil daonnan.
Amalachadh le Arduino
Tha an ceangal le Arduino gu math sìmplidh, feumaidh tu dìreach Vcc a cheangal ri prìne 5v de bhòrd Arduino, agus GND le GND de Arduino. Air an làimh eile, faodaidh prìnichean a ’mhodal PCF8574 SDA agus SCL a bhith ceangal le prìnichean 14 (A5 SCL) agus 15 (A4 SDA). Is ann dìreach leis an sin a thòisicheadh e ag obair, gu follaiseach faodaidh tu am Px a chleachdadh gus na h-innealan a tha thu airson conaltradh a cheangal ...
An uairsin cha bhiodh e ach a dhìth tòisich le sgeidse eisimpleir ann an Arduino IDE. Faodaidh tu a dhèanamh gun a bhith a ’cleachdadh leabharlann a bharrachd leithid ...
#include <Wire.h> const int address = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { for (short channel = 0; channel < 8; channel++) { // Escribir dato en cada uno de los 8 canales Wire.beginTransmission(address); Wire.write(~(1 << channel)); Wire.endTransmission(); // Lee dato del canal delay(500); } }
Mar chur-a-steach:
#include <Wire.h> const int address = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { short channel = 1; byte value = 0; // Leer el dato del canal Wire.requestFrom(pcfAddress, 1 << channel); if (Wire.available()) { value = Wire.read(); } Wire.endTransmission(); // Mostrar el valor leido por el monitor serie Serial.println(value); }
No cuideachd leabharlannan a chleachdadh, mar an PCF8574 as urrainn dhut luchdaich sìos an seo agus cleachd còd coltach ri seo bhon eisimpleir fhèin a thig an cois an leabharlann seo:
#include <Wire.h> #include "PCF8574.h" PCF8574 expander; void setup() { Serial.begin(9600); expander.begin(0x20); /* Setup some PCF8574 pins for demo */ expander.pinMode(0, OUTPUT); expander.pinMode(1, OUTPUT); expander.pinMode(2, OUTPUT); expander.pinMode(3, INPUT_PULLUP); /* Blink hardware LED for debug */ digitalWrite(13, HIGH); /* Toggle PCF8574 output 0 for demo */ expander.toggle(); /* Blink hardware LED for debug */ digitalWrite(13, LOW); } void loop() { }
Bi a 'chiad fhear a thog beachd