PCF8574: Oor die I2C I / O-uitbreider vir Arduino | Gratis hardeware
PCF8574: Ongeveer I2C I / O-uitbreiding vir Arduino
Isak | | Arduino, Elektroniese komponente
U het sekerlik gehoor van die IC PCF8574, 'n skyfie wat afsonderlik gekoop kan word of reeds op 'n module soos baie ander gemonteer kan word Elektroniese komponente om u integrasie met u Arduino-bord te vergemaklik. In hierdie geval is dit 'n verlengstuk van die insette en uitsette vir die I2C-bus.
U mag dink dat Arduino reeds sy eie het geïntegreerde I2C bus, en dit is waar. Maar die PCF8574 kan help om die bus buite die perke van u ontwikkelingsbord uit te brei, wat van groot hulp kan wees vir sommige vervaardigers wat meer nodig het as net wat Arduino bied.
1 Wat is die I2C-bus?
2 Wat is die PCF8574?
3 Integrasie met Arduino
Wat is die I2C-bus?
Die naam I2C kom van Inter-geïntegreerde stroombaan of inter-geïntegreerde stroombane. Die weergawe 1.0 is in 1992 deur Philips geskep. Dan sou daar in 2.1 'n tweede 2000 wees en vandag het dit 'n standaard geword (teen 100 kbit / s, hoewel dit tot 3.4 Mbit / s maksimum toelaat) toe die patent in 2006 verval het en vrylik gebruik kan word.
Tans word dit wyd in die bedryf gebruik vir kommunikasie, en word ook baie waardeer deur vervaardigers vir hul projekte om verskillende mikrobeheerders en randapparatuur in een IC te kommunikeer.
El I2C is 'n bus bekende reekskommunikasie. Dit gebruik 'n sinchrone kommunikasieprotokol met slegs 2 kanale (daar is 'n derde, maar dit is gekoppel aan verwysing of GND), dit staan ​​in werklikheid ook bekend as TWI (Two Wire Interface):
Een vir die klok (SCL).
Ander vir data (SDA).
Albei is CMOS-verbindings met oop dreinering en benodig uittreksels. Verder, as een toestel 'n 0 en 'n ander a 1 uitstuur, kan daar probleme wees, daarom is die lyn altyd ingestel op 1 (hoë vlak) en stuur die toestelle altyd 0 (lae vlak).
Dit impliseer dat die meester en slaaf hulle stuur data oor dieselfde kabel of spoor, wat beheer word deur die eerste een wat die kloksein genereer. Elk van die randapparate wat aan die I2C-bus gekoppel is, het 'n unieke adres om die uitsendings te stuur. Maar dit is nie nodig dat die onderwyser altyd dieselfde is nie (multi-onderwyser), dit is altyd hy wat die oordrag begin.
Soos ek reeds in die artikel oor Arduino I2C Ek het vroeër verwys, elke bord het hierdie I2C-verbindings op verskillende plekke. Dit is iets wat u in gedagte moet hou om dit in elke plaatweergawe behoorlik te kan gebruik:
Arduino UNO: SDA is in A4 en SCK in A5
Arduino Nano: dieselfde as die vorige.
Arduino Mini Pro: dieselfde.
Mega Arduino: SDA is op pen 20 en SCK op 21.
Meer inligting oor borde.
U weet reeds dat u die I2C maklik vir u sketse kan gebruik, aangesien die Wire.h-biblioteek met verskillende funksies vir hierdie seriële kommunikasie:
begin (): begin die draadbiblioteek en gee aan of dit 'n meester of slaaf is
versoekVan (): word deur die meester gebruik om data van die slaaf aan te vra.
begin uitsending (): begin uitsending met slaaf.
end Transmissie (): eindtransmissie.
skryf ()- Skryf data van 'n slaaf in antwoord op 'n versoek van die meester, of u kan die versending van 'n meester in die ry staan
beskikbaar (): gee die aantal grepe wat u moet lees.
lees (): lees 'n byte wat van 'n slaaf na 'n meester oorgedra word of andersom.
onReceive (): Noem 'n funksie wanneer 'n slaaf 'n uitsending van 'n meester ontvang.
op versoek (): Bel 'n funksie wanneer 'n slaaf data van 'n meester vra.
om meer inligting oor Arduino programmering en funksies kan u ons aflaai PDF handleiding.
Wat is die PCF8574?
Die PCF8574 is 'n I2C-bus digitale in- en uitsette (I / O) -uitbreider. Dit kan deur verskillende vervaardigers vervaardig word, benewens dat dit beskikbaar is in IC's en modules. In elk geval is dit baie prakties om dit aan u Arduino-bord te koppel en die vermoë te hê om meer toestelle te beheer as wat die moederbord dit toelaat.
El PCF8574 pinout Dit is eenvoudig, aangesien dit slegs die volgende insluit 8 dennene kwasi-rigting (P0-P7 waar die skyfies om te kommunikeer gekoppel is), en aan die ander kant het u die SDA en SCL wat u aan die Arduino-bord moet koppel, sowel as VCC en GND om die module ook aan te dryf. En vergeet nie die drie aanspreekpunte A0, A1, A2 om te kies na watter toestelle die kommunikasie gerig is nie ...
dit het Ander eienskappe dat u moet weet:
Die verbindings, wat 'n oop drein is, kan wees beide gebruik word as insette en uitsette.
La piekstroom dit is 25mA as dit as 'n uitgang dien (sink, wanneer stroom na PCF8574 vloei) en 300 µA (bron, stroom vloei vanaf PCF8574).
La spanning kragbron is 2.5 en 6v. Die bystandverbruik is baie laag, slegs 10 µA.
Alle uitsette grendel het, om die staat te handhaaf sonder dat daar eksterne optrede nodig is. U hoef slegs op te tree as u die toestand wil verander.
U kan 8 kry moontlike aanwysings, dit wil sê tot 8 toestelle om mee te kommunikeer of om 8 modules te gebruik om dit uit te brei tot 64 toestelle. Die adresse (pen A0, A1, A2) is:
000: adres 0x20
001: adres 0x21
010: adres 0x22
011: adres 0x23
100: adres 0x24
101: adres 0x25
110: adres 0x26
111: adres 0x27
Erken onderbreking (INT) deur 'n spesiale lyn om data op te spoor sonder om voortdurend te monitor.
Integrasie met Arduino
Die verbinding met Arduino is baie eenvoudig, u moet net Vcc verbind met die 5v-pen van die Arduino-bord en GND met GND van Arduino. Aan die ander kant kan die penne van die PCF8574 SDA en SCL module wees verbind met penne 14 (A5 SCL) en 15 (A4 SDA). Slegs daarmee sal dit begin werk, natuurlik kan u die Px gebruik om die toestelle wat u wil kommunikeer aan te sluit ...
Dan sou dit net ontbreek begin met 'n voorbeeldskets in Arduino IDE. U kan dit doen sonder om 'n ekstra biblioteek te gebruik, soos byvoorbeeld ...
Of ook gebruik biblioteke, soos die PCF8574 wat u kan laai hier af en gebruik soortgelyke kode uit die voorbeeld self wat saam met hierdie biblioteek kom:
Volledige pad na artikel: Gratis hardeware » Elektroniese komponente » PCF8574: Ongeveer I2C I / O-uitbreiding vir Arduino