Denne artikkelen dekker:
Hva er I2C -kommunikasjon i Arduino
I2C kommunikasjonspinner refererer til de spesifikke PIN -tilkoblingene på et Arduino -brett som brukes til å kommunisere med I2C -enheter. På de fleste Arduino -brett er I2C -kommunikasjonspinnene plassert på A4- og A5 -pinnene, og er merket SDA (for data) og SCL (for klokke).
Noen hovedhøydepunkter ved I2C -kommunikasjon inkluderer:
Multi-master og multi-slave-evne: I2C støtter flere masterenheter og flere slaveenheter på en enkelt buss, noe som gir mulighet for kommunikasjon mellom flere enheter samtidig.
Lav teller: I2C bruker bare to linjer, SDA og SCL, for kommunikasjon, noe som reduserer antall nødvendige tilkoblinger og forenkler ledning.
Adresserbare enheter: Hver I2C -enhet på bussen har en unik adresse, noe som gir enkel identifikasjon og kommunikasjon med spesifikke enheter.
Høy hastighet: I2C -spesifikasjonen støtter dataoverføringshastigheter på opptil 3.4 Mbps, noe som gjør det egnet for høyhastighetsdataoverføringsapplikasjoner.
Strømsparing: I2C gjør det mulig.
I2C -pinner i Arduino Uno
I I2C -kommunikasjon brukes to linjer:
Hovedenheten er ansvarlig for å kontrollere klokkelinjen og sette i gang kommunikasjonen, mens slaveenhetene er ansvarlige for å svare på mesterens forespørsler.
I2C -pinner i Arduino Mega
Arduino Mega har flere I2C -kommunikasjonspinner. Disse pinnene er:
Disse pinnene kan brukes til å koble I2C -enheter, for eksempel sensorer eller andre mikrokontrollere.
I2C -pinner i Arduino nano
I2C -pinnene på Arduino nano er A4 (SDA) og A5 (SCL), kan disse pinnene brukes til å kommunisere med I2C -enheter som sensorer, LCD -skjermer og andre mikrokontrollere. For å bruke disse pinnene, må du bruke trådbiblioteket, som er innebygd i Arduino IDE:
Det er viktig å merke seg at I2C -pinnene på Arduino Nano også kan brukes som standard digital I/O -pins hvis de ikke brukes til I2C -kommunikasjon. Det er imidlertid viktig å sørge for at I2C -kommunikasjonen er deaktivert eller stoppet før du bruker disse pinnene som digital I/O, da det kan forårsake konflikter og feil.
Kort sammenligning av Arduino I2C -pinner
Her er en liste over noen populære Arduino -tavler og deres tilsvarende I2C -pinner:
Borde | I2C -pinner |
---|---|
Arduino Nano | SDA-A4 | SCL-A5 |
Arduino Mega | SDA-A4 | SCL-A5 og SDA-20 | SCL-21 |
Arduino Leonardo | SDA-A4 | SCL-A5 |
Arduino Uno | SDA-A4 | SCL-A5 |
Arduino Micro | SDA-02 | SCL-03* |
Arduino Leonardo | SDA-02 | SCL-03 |
Arduino Micro | SDA-02 | SCL-03 |
Arduino Pro Mini | SDA-A4 | SCL-A5 |
Arduino forfaller | SDA-20 | SCL-21 |
Arduino 101 | SDA-20 | SCL-21 |
*I2C -pinner kan variere avhengig av hvilken tavleversjon du bruker vennlig, se respektive datablad for mer informasjon.
Vær oppmerksom på at noen av styrene kan ha mer enn ett SDA, SCL Pins, i slike tilfeller kan du bruke noen av dem i henhold til ditt krav og tilgjengelighet. Det er også bra å referere til den offisielle dokumentasjonen av styret du bruker, for å bekrefte I2C -pinout.
Koble til to Arduino -brett ved hjelp av I2C som mester og slave
For å etablere I2C -kommunikasjon mellom to Arduino -tavler, SDA og SCL Pins av begge brettene må være koblet sammen og dele en felles grunn. Kommunikasjonen kan oppnås ved å bruke det innebygde trådbiblioteket i Arduino som inneholder funksjoner for konfigurering og kommunikasjon på I2C -bussen.
Skjematisk
Under bildet viser to Arduino Uno -tavler koblet inn Master-Slave Konfigurasjon:
For å koble Arduino Uno med Arduino Nano ved hjelp av I2C Master Slave Protocol, følg nedenfor konfigurasjonen:
Arduino Mega -forbindelse med Arduino Uno ved bruk av I2C:
Konklusjon
Arduino -tavler kan konfigureres til å kommunisere med hverandre ved hjelp av I2C ved å koble til SDA- og SCL -pinnene og konfigurere tavlene som master og slave ved hjelp av Wire Library i Arduino. Dette gir mulighet for effektiv og enkel kommunikasjon mellom flere enheter i ethvert Arduino -basert prosjekt.