I2C Thiab Arduino Interface

Cov txheej txheem:

I2C Thiab Arduino Interface
I2C Thiab Arduino Interface

Video: I2C Thiab Arduino Interface

Video: I2C Thiab Arduino Interface
Video: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, Tej zaum
Anonim

Hauv tsab xov xwm no peb yuav saib qhov I2C interface (ay-tu-si, i-ob-tse) yog dab tsi, nws cov ntsej muag zoo li cas thiab yuav ua li cas nrog nws.

I2c interface
I2c interface

Nws yog qhov tsim nyog

  • - Arduino;
  • - digital potentiometer AD5171;
  • - Hnav teeb ci;
  • - 220 ohm resistor;
  • - 2 resistors rau 4.7 kOhm;
  • - txuas xov hlau.

Cov Lus Qhia

Kauj ruam 1

IIC cov kev sib txuas lus raws tu qauv (tseem hu ua I2C - Kev Sib Txuas Sib Koom Tes) siv ob txoj kev sib txuas lus sib txuas lus kom xa cov ntaub ntawv, hu ua SDA (Cov Ntaub Ntawv Teev) tsheb npav thiab SCL (Lub Sijhawm Teev). Kuj tseem muaj ob txoj hlua hluav taws xob. SDA thiab SCL cov tsheb npav tau rub tawm mus rau lub tsheb npav fais fab los ntawm kev tiv taus.

Muaj tsawg kawg yog ib tus Tswv nyob hauv lub network uas pib cov ntaub ntawv xa mus thiab tsim cov phiaj xwm synchronization. Lub network tseem muaj cov qhev uas xa cov ntaub ntawv ntawm kev thov ntawm tus tswv. Txhua tus qhev twj paj nruag muaj qhov chaw nyob tshwj xeeb uas tus tswv nyob ntawd. Cov cuab yeej siv tau nyob rau hauv phau ntawv hla tebchaws (datasheet). Txog 127 lub xov tooj tuaj yeem txuas nrog rau ib lub tsheb npav I2C, suav nrog ntau tus masters. Cov cuab yeej tuaj yeem txuas nrog lub npav thaum ua haujlwm, i.e. nws txhawb nqa kub txuas.

Daim duab txuas I2C
Daim duab txuas I2C

Kauj ruam 2

Arduino siv ob lub ports los ua haujlwm ntawm I2C interface. Piv txwv, hauv Arduino UNO thiab Arduino Nano, qhov chaw nres nkoj analog A4 sib raug rau SDA, qhov chaw nres nkoj analog A5 sib raug rau SCL.

Rau lwm cov qauv pawg:

Arduino Pro thiab Pro Mini - A4 (SDA), A5 (SCL)

Arduino Mega - 20 (SDA), 21 (SCL)

Arduino Leonardo - 2 (SDA), 3 (SCL)

Arduino Txog - 20 (SDA), 21 (SCL), SDA1, SCL1

Npaj qhia Arduino pins rau SDA thiab SCL npav
Npaj qhia Arduino pins rau SDA thiab SCL npav

Kauj ruam 3

Txhawm rau pab txhawb qhov sib pauv ntawm cov ntaub ntawv nrog cov khoom siv ntawm tsheb npav I2C, lub tsev qiv ntawv "Hlau" qauv tau sau rau Arduino. Nws muaj cov haujlwm nram qab no:

pib (chaw nyob) - kev pib ua ntawm lub tsev qiv ntawv thiab kev txuas mus rau I2C npav; yog tias tsis muaj chaw nyob yog qhov sau tseg, tom qab ntawd cov khoom siv sib txuas tau txiav txim siab tus tswv; 7-ntsis chaw nyob yog siv;

requestFrom () - siv los ntawm tus tswv kom muaj qee qhov ntawm bytes ntawm tus qhev;

beginTransmission (chaw nyob) - pib ntawm cov ntaub ntawv hloov mus rau tus qhev qhev ntaus ntawm qhov chaw nyob tshwj xeeb;

endTransmission () - txiav cov ntaub ntawv xa mus rau tus qhev;

sau () - sau cov ntaub ntawv los ntawm tus qhev nyob rau hauv teb rau kev thov;

muaj () - rov qab tus naj npawb ntawm bytes ntawm cov ntaub ntawv muaj rau tau txais los ntawm tus qhev;

nyeem () - nyeem lub byte pauv los ntawm tus qhev rau tus tswv lossis ntawm tus tswv rau tus qhev;

onReceive () - qhia txog qhov ua haujlwm yuav tsum tau hu thaum tus qhev tau txais kev sib kis los ntawm tus tswv;

onRequest () - Qhia txog txoj haujlwm hu ua tau thaum tus tswv tau txais kev sib kis los ntawm tus qhev.

Kauj ruam 4

Cia peb pom yuav ua haujlwm nrog I2C npav siv Arduino li cas.

Ua ntej, peb yuav muab cov ntawv sib dhos ua ke, raws li qhia hauv daim duab. Peb yuav tswj hwm lub teeb ci ntsa iab ntawm LED siv AD5171 64-txoj haujlwm digital potentiometer, uas txuas rau I2C npav. Qhov chaw nyob uas peb yuav hais txog lub potentiometer yog 0x2c (44 hauv decimal).

LED tswj Circuit Court siv digital potentiometer thiab Arduino
LED tswj Circuit Court siv digital potentiometer thiab Arduino

Kauj ruam 5

Tam sim no cia peb qhib daim duab los ntawm "Cov Hlau" tsev qiv ntawv piv txwv:

Cov Ntaub Ntawv -> Kuaj -> Hlau -> digital_potentiometer. Peb thauj nws rau hauv Arduino nco. Peb tig mus rau nws.

Koj pom, qhov ci ci ntawm LED nce siab ncig, thiab tom qab ntawd mam li nco dheev tawm. Hauv qhov no, peb tswj hwm lub potentiometer siv Arduino ntawm I2C npav.

Pom zoo: