Kaofela ka bese ea Arduino I2C

Bese ea Arduino I2C

Con Arduino e ka etsa palo e kholo ea merero joalo ka ha u bone ha u bala Hwlibre, lenaneo la microcontroller ka tsela e bonolo. Empa hara lihokelo tsa analog le tsa dijithale tsa boto ena ea mahala ea li-Hardware, ho na le tse ling tse sa tsejoeng ke ba qalang ba bangata, joalo ka bokhoni ba 'nete ba likhokahano tsa PWM, SPI, RX le TX pins ea serial port, kapa ke na le bese ea I2C. Ka hona, ka kenyelletso ena bonyane o ka tseba tsohle tseo o li hlokang ho tsoa ho I2C.

Con bese ea I2C o ka hokela le ho sebelisa lisebelisoa tse ngata tsa motho oa boraro tse nang le mofuta ona oa protocol ho buisana le boto ea Arduino. Pakeng tsa bona o ka hokela li-accelerometer, lipontšo, li-counter, li-compass le lisekete tse ling tse ngata tse kopaneng ka lebaka la qaptjoa ena ea Philips.

I2C ke eng?

I2C e bua ka Potoloho e Kopaneng e Kopaneng, ke hore, potoloho e kopaneng. Ke bese ea tlhaiso-leseling ea tlhaiso-leseling e ntlafalitsoeng ka 1982 ke k'hamphani ea Philips Semiconductors, eo kajeno e leng NXP Semiconductors kamora ho felisa karolo ena. Qalong e ne e etselitsoe lithelevishene tsa mofuta ona, ho buisana le li-chip tse ngata tsa ka hare ka tsela e bonolo. Empa ho tloha ka 1990 I2C e hasane mme e sebelisoa ke baetsi ba bangata.

Hajoale e sebelisoa ke baetsi ba li-chip ba bangata bakeng sa mesebetsi e mengata. Atmel, moqapi oa li-microcontroller bakeng sa liboto tsa Arduino, o hlahisitse lebitso la TWI (Two Wired Interface) molemong oa laesense, leha e ts'oana le I2C. Empa ka 2006, tokelo ea semolao ea mantlha e ile ea felloa ke nako 'me ha e sa le tlasa tokelo ea semolao, ka hona lentsoe I2C le sebelisitsoe hape (ke logo feela e ntseng e tsoela pele ho sireletsoa, ​​empa ts'ebetsong kapa ts'ebeliso ea eona ea lentsoe ha e thibeloe)

Lintlha tsa tekheniki ea libese tsa I2C

Bese ea I2C

El Bese ea I2C e fetohile maemo a indasteri, 'me Arduino o e sebelisitse bakeng sa puisano le lisebelisoa tse e hlokang. E hloka feela mela e 'meli kapa likhoele bakeng sa ts'ebetso ea eona, e' ngoe bakeng sa lets'oao la oache (CLK) 'me e' ngoe e romelle lintlha tsa serial (SDA). Sena se molemo ha se bapisoa le likhokahano tse ling ha li bapisoa le bese ea SPI, leha ts'ebetso ea eona e batla e rarahane ho feta ka lebaka la lipotoloho tse ling tse hlokahalang.

Ka beseng ena sesebediswa ka seng se hoketsweng ho sona se na le aterese e sebelisetsoa ho fihlella lisebelisoa tsena ka bonngoe. Aterese ena e ts'oaroe ke Hardware, e fetolang likotoana tse 3 tsa hoqetela ka li-jumpers kapa li-switch tsa DIP, leha e ka etsoa ke software. Sesebelisoa se seng le se seng se tla ba le aterese e ikhethang, leha tse 'maloa tsa tsona li ka ba le aterese e ts'oanang mme ho kanna ha hlokahala hore u sebelise bese ea bobeli ho qoba likhohlano kapa ho e fetola ha ho khonahala.

Ntle le moo, bese ea I2C e na le file ea Meetso ea mofuta oa Master-Slave, ke hore, lekhoba le hloahloa. Sena se bolela hore ha puisano e qalisoa ke sesebelisoa se hloahloa, e tla khona ho romella kapa ho amohela data ho tsoa ho makhoba a eona. Makhoba a ke ke a khona ho qala puisano, ke monghali feela ea ka e etsang, mme le makhoba a ke ke a buisana ka kotloloho ntle le ho kenella ha monghali.

Haeba u na le matichere a 'maloa ka beseng, ke a le mong feela ea ka sebetsang e le mosuoe ka nako e le 'ngoe. Empa ha ho na thuso, hobane phetoho ea matichere e hloka ho rarahana ho hoholo, ka hona ha e etsahale khafetsa.

Hopola hore master e fana ka lets'oao la hora ho hokahanya lisebelisoa tsohle tse ka beseng. Seo se felisa tlhoko ea hore lekhoba ka leng le be le lioache tsa lona.

Protocol ea bese ea I2C e boetse e bona esale pele ts'ebeliso ea li-resistor tse hulang ka har'a likhoele tsa phepelo ea motlakase (Vcc), leha li-resistor tsena li sa sebelisoe hangata le Arduino hula hobane lilaebrari tsa mananeo joalo ka terata e kenya tšebetsong tse kahare ka boleng ba 20-30 k. Sena se kanna sa ba bobebe haholo bakeng sa merero e meng, ka hona likarolo tse nyolohang tsa lets'oao li tla tsamaea butle, ka hona lebelo le tlase le sebaka se khuts'oane sa puisano se ka sebelisoa. Ho lokisa hore o ka hloka ho beha li-resistor tsa kantle ho tloha 1k ho isa 4k7.

Signal

Letšoao la I2C

 

La foreimi ea puisano eo letšoao la bese ea I2C le nang le likotoana kapa linaha (tse sebelisitsoeng Arduino, kaha maemo a I2C a lumella ba bang):

  • Likotoana tse 8, tse 7 tsa tsona aterese ea sesebelisoa sa lekhoba seo u batlang ho se fumana ho se romella kapa ho amohela data ho sona. Ka li-bits tse 7, ho ka etsoa liaterese tse fapaneng tse 128, ka hona ho ka fumaneha lisebelisoa tsa 128, empa ho ka fumaneha feela tse 112, kaha tse 16 li boloketsoe ts'ebeliso e ikhethang. Le biti e eketsehileng e bonts'ang haeba u batla romella kapa amohela Tlhahisoleseling ea sesebelisoa sa lekhoba.
  • Ho boetse ho na le netefatso hanyane, haeba e sa sebetse puisano e ke ke ea sebetsa.
  • Ebe file ea li-data byte hore ba batla ho romella kapa ho amohela ka makhoba. E 'ngoe le e' ngoe ea li-byte, joalo ka ha u tseba, e entsoe ka li-bits tse 8. Hlokomela hore bakeng sa data e ngoe le e ngoe e rometsoeng kapa e amohetsoeng ea 8-bit kapa 1, ho hlokahala lintlha tse ling tse 18 tsa netefatso, aterese, jj.
  • Karolo ea ho qetela ea netefatso ea comunication.

Ntle le moo, maqhubu a watjhe a phetisetso ke 100 Mhz joalo ka maemo, leha ho na le mokhoa o potlakileng ho 400 Mhz.

Melemo le likotsi tsa bese ea I2C

ea melemo Ke tsona:

  • Bonolo ka ho sebedisa mela e mmedi feela.
  • E na le eona mekhoa ea ho tseba hore na lets'oao le fihlile bapisoa le mekhoa e meng ea puisano.

ea mathata Ke tsona:

  • Lebelo phetiso e tlase haholo.
  • Ha se ntho e phethahetseng ka botlalo, ke hore, o ke ke oa romela le ho amohela ka nako e le 'ngoe.
  • Ha e sebelise bonngoe kapa mofuta o fe kapa o fe oa netefatso ea ho tseba hore na likotoana tsa data tse amoheloang li nepahetse.

 

 

I2C ho Arduino

Bese ea Arduino I2C

En Arduino, ho latela mohlalalithakhisa tse ka lumelloang ho sebelisa bese ena ea I2C lia fapana. Ka mohlala:

  • Arduino UNO, Nano, MiniPro: A4 e sebediswa bakeng sa SDA (data) le A5 bakeng sa SCK (tshupanako).
  • Mega Arduino: pin 20 bakeng sa SDA le 21 bakeng sa SCK.

Hopola hore ho e sebelisa o tlameha sebelisa laeborari Mohala bakeng sa likhoutu tsa hau tsa Arduino IDE, leha ho na le tse ling tse joalo I2C y I2Cdevlib. U ka bala litokomane tsa lilaebrari tsena kapa lingoliloeng tsa rona ka merero e u khahlang ho fumana likhoutu tsa hore na e ka hlophisoa joang.

U ka tseba joang aterese ea sesebelisoa ho e sebelisa le I2C?

Tlhokomeliso e le 'ngoe feela ea hoqetela, ke hore ha u reka li-IC ho tsoa ho baetsi ba Europe, Japane kapa Amerika, uena supa tsela eo u ka e sebelisang bakeng sa sesebelisoa. Ka lehlakoreng le leng, Machaena ka linako tse ling ha a a qaqise kapa ha a nepahala, ka hona a ke ke a sebetsa. Seo se ka rarolloa habonolo ka sekena sa aterese ho tseba hore na u lokela ho sheba tataiso efe setšoantšong sa hau.

La sechaba sa arduino e thehile sena khoutu ea ho lekola aterese le ho e tseba Ka tsela e bonolo. Le ha ke u bontša khoutu mona:

#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);
}


Litaba tsa sengoloa sena li latela melao-motheo ea rona ea melao ea boitšoaro ea bongoli. Ho tlaleha phoso tlanya mona.

E-ba oa pele ho fana ka maikutlo

Siea maikutlo a hau

aterese ya hao ya imeile ke ke ho phatlalatswa. masimo a hlokahala a tšoailoe ka *

*

*

  1. E ikarabella bakeng sa data: Miguel Ángel Gatón
  2. Morero oa data: Laola SPAM, tsamaiso ea maikutlo.
  3. Molao: Tumello ea hau
  4. Puisano ea data: Lintlha li ke ke tsa tsebisoa batho ba boraro ntle le ka tlamo ea molao.
  5. Polokelo ea data: Database e hapiloeng ke Occentus Networks (EU)
  6. Litokelo: Nako efe kapa efe o ka fokotsa, oa hlaphoheloa mme oa hlakola tlhaiso-leseling ea hau.