Uma e uiga i le Arduino I2C pasi

Pasi Arduino I2C

con Arduino mafai ona fausiaina tele numera o poloketi pei ona e vaʻai pe a e faitau i le Hwlibre, faapolokalameina le microcontroller i se auala faigofie. Ae i totonu o faʻatusatusaga ma fesoʻotaʻiga faafuainumera o lenei leai se totogi laupapa laupapa, o loʻo i ai ni isi e le o iloa e le tele o tagata amata, pei o le moni gafatia o le PWM faʻafesoʻotaʻiga, le SPI, le RX ma TX pine o le serial port, poʻo le ana oe le pasi I2C. O le mea lea, i lenei ulufale e mafai ona e iloa mea uma e te manaʻomia mai le I2C.

con le pasi I2C E mafai ona e faʻafesoʻotaʻi ma faʻaaoga le tele o isi masini masini o loʻo iai lenei ituaiga maliega fesoʻotaʻiga e fesoʻotaʻi ma le laupapa Arduino. I le va o latou, e mafai ona e faʻafesoʻotaʻiina saoasaoa, faʻaaliga, fata, tapasa, ma le tele o isi tuʻufaʻatasia faʻafetai faafetai i lenei mea fou a le Philips.

O le a le I2C?

I2C e faʻasino i le Inter-Integated Circuit, o lona uiga, vaeluaina tuʻufaʻatasia. O se faʻamaumauga o fesoʻotaʻiga faʻamatalaga pasi fausia i le 1982 e le kamupani Philips Semiconductors, lea o aso nei o NXP Semiconductors ina ua uma ona faʻateʻaina lenei vaega. Muamua na faia mo televise o lenei ituaiga, e faʻafesoʻotaʻi ai nisi chips i totonu i se faigofie auala. Ae talu mai le 1990 o le I2C ua salalau ma ua faʻaaogaina e le tele o tagata gaosi.

O loʻo faʻaaogaina nei e le fiasefulu o chipsks mo tele gaioiga. Atmel, le tufuga o microcontrollers mo Arduino laupapa, faʻalauiloaina le TWI (Lua uaea Interface) igoa mo laisene mafuaʻaga, e ui lava e tutusa ma I2C. Ae i le 2006, o le uluaʻi pateni ua maeʻa le aoga ma ua le toe aʻafia i le puletaofia, o lea la ua faʻaaoga ai le faaupuga I2C (naʻo le logo e faʻaauau ona puipuia, ae o lona faʻatinoina poʻo le faʻaaogaina o le faaupuga e le faʻatapulaaina).

I2C pasi faʻamatalaga faʻapitoa

Pasi I2C

El I2C pasi ua avea ma alamanuia tulaga masani, ma Arduino na faʻaogaina ai mo fesoʻotaʻiga ma peripherals e manaʻomia. E naʻo le lua laina e manaʻomia poʻo uaea mo lona faʻagaioiga, tasi mo le uati faailo (CLK) ma leisi mo le lafoina o faʻamaumauga (SDA). E sili atu lea pe a faʻatusatusa i isi fesoʻotaʻiga faʻatusatusa i le pasi SPI, e ui lava o lona faʻagaioiga e fai si faigata ona o le faʻaopoopo faʻaopoopo e manaʻomia.

I luga o lenei pasi o masini taʻitasi e fesoʻotaʻi iai, e iai lona tuatusi faʻaaoga e faʻaaoga ai nei masini taʻitasi. O lenei tuatusi e faʻatulagaina e masini, suia le mulimuli 3 bits ala jumpers poʻo fesuiaʻi DIPs, e ui lava e mafai foi ona faia e le polokalama. O masini taʻitasi o le a i ai se tuatusi tulaga ese, e ui o le tele o latou e ono tutusa o latou tuatusi ma e ono manaʻomia le faʻaaogaina o se tulaga lua pasi e aloese ai mai feteʻenaʻiga pe suia pe a mafai.

I se faʻaopopoga, o le pasi I2C ei ai Matai-Slave ituaiga fausaga, o lona uiga, matai-pologa. O lona uiga a amata le talanoaga e se masini masini, o le a mafai ona lafo pe maua faʻamaumauga mai ana pologa. O pologa o le a le mafai ona amataina fesootaiga, na o le matai e mafai, ma e le mafai foi e pologa ona talanoa saʻo le tasi i le isi e aunoa ma le fesoasoani a le matai.

Afai ei ai nai faiaoga i luga o le pasi, naʻo le toʻatasi e mafai ona galue o se faiaʻoga i le taimi e tasi. Ae e le aoga, talu ai o le suiga o le faiaoga manaʻomia se maualuga faigata, o lea e le masani ai.

Ia manatua o le Matai saunia le uati faailo e faʻafetaui uma masini i luga o le pasi. O lena e aveʻesea ai le manaʻoga mo pologa taʻitasi e fai a latou lava uati.

O le I2C pasi faʻataʻitaʻiga vaʻaia foi le faʻaaogaina o toso-i luga resistors i le sapalai o laina eletise (Vcc), e ui o nei resistors e le masani ona faʻaaogaina ma Arduino toso i luga ona polokalame faletusi e pei o uaea faʻagaoioia totonu o totonu ma taua o le 20-30 k. Atonu e lemu tele lenei mea mo ni poloketi, o le mea lea o le siʻitia o pito o le faʻailo o le a telegegese, o lea e mafai ai ona faʻaaogaina le saosaoa maualalo ma le puʻupuʻu o fesoʻotaiga. Ina ia faʻasaʻo e te manaʻomia le setiina o resistors i fafo mai 1k i le 4k7.

Faailoga

Faailoga I2C

 

La tulaga faʻafesoʻotaʻi o le faʻailoga pasi I2C e iai vaega poʻo setete (na faʻaaogaina i le Arduino, talu ai o le I2C faʻatulagaina faʻatagaina isi):

  • 8 fasi, 7 o latou a taʻiala o le pologa masini e te manaʻo e ulufale i ai e lafo pe mauaina faʻamaumauga mai ia. I le 7 fasimea, e oʻo atu i le 128 tuatusi eseʻese e mafai ona fausiaina, o lea e 128 masini e mafai ona maua faʻapitoa, ae naʻo le 112 e mafai ona faʻafesoʻotaʻi, talu ai o le 16 e faʻapolopoloina mo faʻapitoa faʻaaogaina. Ma le faʻaopopo faʻaopoopo e taʻu mai ai pe a e manaʻo lafo pe talia faamatalaga masini pologa.
  • E i ai foi o sina faʻamaoniga, afai e le o faʻagaoioia o le a le aoga le fesoʻotaʻiga.
  • Ona faapea lea o le bytes faʻamatalaga latou te mananaʻo e lafo pe talia e pologa. Taitasi byte, pei ona e iloa, faia mai o 8-fasi. Manatua mo 8-bit poʻo le 1 byte o faʻamaumauga lafo mai pe mauaina, e faʻaopoopoina le 18 vaega o faʻamaoniga, tuatusi, ma isi mea e manaʻomia, o lona uiga o le pasi e matua faʻatapulaʻaina i tulaga o le saoasaoa.
  • Se vaega mulimuli o faʻamaonia o le tuʻufaʻatasia.

I se faʻaopopoga, o le uati taimi masani mo o faʻasalalauga e 100 Mhz o se tulaga masani, e ui lava o loʻo i ai le vave televave i le 400 Mhz.

Lelei ma le lelei o le pasi I2C

le manuia O latou:

  • Faʻafaigofie i le na o le faʻaaogaina o ni laina se lua.
  • Lafoaia o auala e iloa ai pe ua taunuʻu le faʻailoga faʻatusatusa i isi fesoʻotaʻiga fesoʻotaʻiga.

le mea le lelei O latou:

  • Televave feaveaʻi maualalo maualalo.
  • E le o se atoa duplexI nisi upu, oe le mafai ona lafo ma maua faʻatasi.
  • E le faʻaaogaina le tutusa poʻo seisi lava ituaiga o faʻamaoniga auala e iloa ai pe o faʻamaumauga mauaina na saʻo.

 

 

I2C luga o Arduino

Pasi Arduino I2C

En Arduino, faʻalagolago i le faʻataʻitaʻiga, o pine e mafai ona faʻatagaina e faʻaaoga ai le pasi I2C e eseese. Faataitaiga:

  • Arduino UNO, Nano, Iti Pro: A4 e faʻaaoga mo SDA (data) ma A5 mo SCK (uati).
  • Mega Arduino: pine 20 mo SDA ma le 21 mo SCK.

Manatua o le faʻaaogaina e tatau ona e faʻaaoga le faletusi Uaea.h mo au Arduino IDE tulafono laiti, e ui e iai isi pei I2C y I2Cdevlib. Oe mafai ona faitau i faʻamaumauga o nei faletusi poʻo a matou tusitusiga i luga o poloketi e te fiafia i ai e maua ai tulafono laiti o faʻafefea ona faʻapolokalameina.

Faʻafefea ona iloa le tuatusi o se masini e faʻaaoga ai ma I2C?

Naʻo le tasi le lapataiga mulimuli, ma o lena pe a e faʻatau ICs mai Europa, Iapani poʻo tagata gaosi Amerika, oe faailoa le itu e tatau ona e faʻaaogaina mo le masini. I leisi itu, o Saina i nisi taimi e le auiliiliina pe le saʻo foi, o lea e le aoga. O lena e mafai ona faigofie ona foia i se tuatusi scanner ia iloa poʻo fea le itu e tatau ona e vaʻai ai i lau ata.

La nuu Arduino na faia lenei code e vaʻai faʻalelei ai le tuatusi ma faʻailoa ai I se auala faigofie. E ui lava ou te faʻaali atu ia te oe le tulafono iinei:

#include "Wire.h"
 
extern "C" { 
    #include "utility/twi.h"
}
 
void scanI2CBus(byte from_addr, byte to_addr, void(*callback)(byte address, byte result) ) 
{
  byte rc;
  byte data = 0;
  for( byte addr = from_addr; addr <= to_addr; addr++ ) {
    rc = twi_writeTo(addr, &data, 0, 1, 0);
    callback( addr, rc );
  }
}
 
void scanFunc( byte addr, byte result ) {
  Serial.print("addr: ");
  Serial.print(addr,DEC);
  Serial.print( (result==0) ? " Encontrado!":"       ");
  Serial.print( (addr%4) ? "\t":"\n");
}
 
 
const byte start_address = 8;
const byte end_address = 119;
 
void setup()
{
    Wire.begin();
 
    Serial.begin(9600);
    Serial.print("Escaneando bus I2C...");
    scanI2CBus( start_address, end_address, scanFunc );
    Serial.println("\nTerminado");
}
 
void loop() 
{
    delay(1000);
}


O mataupu o le tusitusiga e tausisi ia tatou mataupu silisili o amio lelei faʻatonu. E lipotia se mea sese kiliki iinei.

Ia avea muamua ma faamatalaga

Tuʻu lau faamatalaga

o le a le lomia lou tuatusi imeli. O nofoaga e manaʻomia e makaina *

*

*

  1. E tali atu mo faʻamatalaga: Miguel Ángel Gatón
  2. Faamoemoega o faʻamatalaga: Pulea le SPAM, faʻamatalaga pulega.
  3. Tulaga faʻatulafonoina: Lau maliega
  4. Fesoʻotaʻiga o faʻamatalaga: O faʻamatalaga o le a le fesoʻotaʻi atu i isi vaega vagana i tulafono faʻatulafonoina.
  5. Teuina o faʻamatalaga: Faʻamaumauga tuʻufaʻatasia e Occentus Networks (EU)
  6. Aia Tatau: I soo se taimi e mafai ai ona e faʻatapulaʻaina, toe maua ma aveʻese au faʻamatalaga.