Dhammaan wixii ku saabsan baska Arduino I2C

Baska Arduino I2C

cunt Arduino wuxuu abuuri karaa mashaariic tiro badan sida aad aragtay haddii aad akhrido Hwlibre, barnaamijka fudud ee microcontroller qaab fudud. Laakiin inta u dhaxaysa isku xidhka analoogga iyo dhijitaalka ah ee looxa hardware libre, waxaa jira qaar aan wali la aqoon qaar badan oo bilaw ah, sida awooda dhabta ah ee isku xirka PWM, SPI, biinanka RX iyo TX ee dekedda taxan, ama baska I2C laftiisa. Sidaa darteed, gelitaankan waxaad awoodi doontaa inaad ogaato wax kasta oo aad uga baahan tahay I2C.

cunt baska I2C waad isku xiri kartaa oo aad adeegsan kartaa aalado badan oo dhinac saddexaad ah oo leh borotokool noocan ah si loola xiriiro guddiga Arduino. Inta udhaxeysa, waxaad kuxirankartaa xawaare dheereyaasha, shaashadaha, miisaska, jahooyinka, iyo wareegooyin badan oo isku dhafan oo aad ugu mahad celineyso hindisaha Philips.

Waa maxay I2C?

I2C waxaa loola jeedaa Wareegga Isku-dhafan, taasi waa, wareegga isku-dhafan. Waa bas isgaarsiineed isgaarsiineed oo taxane ah oo ay soo saartay 1982 shirkadda Philips Semiconductors, taas oo maanta ah NXP Semiconductors ka dib markii laga takhalusay qaybtaan. Markii ugu horreysay waxaa loo sameeyay telefishinnada sumaddan, si ay ugula xiriiraan dhowr jajab gudaha ah si fudud. Laakiin tan iyo 1990 I2C wuu faafay oo ay isticmaalaan soo saarayaal badan.

Waqtigan xaadirka ah waxaa isticmaala daraasiin sameeyeyaal shaqooyin badan. Atmel, oo ah abuuraha microcontrollers-ka looxyada Arduino, wuxuu soosaaray TWI (Laba Wired Interface) oo loogu talagalay ujeedooyinka shatiga, in kastoo ay lamid tahay I2C. Laakiin sanadkii 2006, rukhsaddii asalka ahayd way dhacday mana ku xirna xuquuqda daabacaadda, markaa ereyga I2C dib ayaa loo isticmaalay (astaanta oo keliya ayaa sii socota in la ilaaliyo, laakiin fulinteeda ama adeegsiga eraygan lama xadidin)

Faahfaahinta farsamada baska I2C

Baska I2C

El Baska I2C wuxuu noqday halbeeg warshadeed, Arduino ayaa hirgalisay la xiriirida meelaha durugsan ee u baahan. Waxay u baahan tahay oo keliya laba xarig ama fiilooyin ay ku shaqeyso, mid calaamada saacadda (CLK) iyo mid kale oo lagu diro xog taxane ah (SDA). Tani waa mid faa'iido leh marka la barbardhigo isgaarsiinta kale marka la barbardhigo baska SPI, in kastoo hawlgalkeedu xoogaa ka adag yahay wareegga dheeriga ah ee loo baahan yahay.

Baskaan aalad kasta oo ku xidhan waxay leedahay cinwaan loo isticmaali jiray in lagu soo helo qalabkan shaqsi ahaan. Cinwaankan waxaa lagu hagaajiyaa qalabka wax lagu beddelo, iyadoo wax laga beddelayo 3-dii qaybood ee ugu dambeeyay iyada oo loo marayo boodboodayaasha ama loo beddelo DIPs, in kasta oo sidoo kale lagu samayn karo softiweer. Aalad kasta waxay lahaan doontaa cinwaan u gaar ah, in kastoo dhowr ka mid ahi ay isku cinwaan leeyihiin oo waxaa laga yaabaa inay lagama maarmaan noqoto in la isticmaalo bas labaad si looga fogaado isku dhacyada ama loo beddelo haddii ay suurtagal tahay.

Intaa waxaa dheer, baska I2C wuxuu leeyahay a Naqshadeynta nooca Master-Slave, taasi waa, sayid-addoon. Tani waxay ka dhigan tahay in marka isgaarsiinta lagu bilaabo aaladda sayidka, ay awoodi doonto inay u dirto ama ka hesho xogta addoomadeeda. Addoomadu ma awoodi doonaan inay bilaabaan isgaarsiinta, kaliya sayidku wuu awoodaa, sidoo kale addoomadu si toos ah uma wada hadli karaan iyaga oo aan faragelin sayidka.

Hadaad leedahay dhowr macalin oo baska saaran, mid kaliya ayaa awood u yeelan kara inuu macallin u noqdo isku mar. Laakiin maahan wax u qalma, maaddaama beddelka macallinka uu dalbanayo kakanaansho sare, markaa ma aha mid soo noqnoqda

Maskaxda ku hay in sayidku wuxuu bixiyaa calaamadda saacadda si loo waafajiyo dhammaan aaladaha baska. Taasi waxay meesha ka saareysaa baahida loo qabo in addoon kasta uu yeesho saacad u gaar ah.

Borotokoolka baska 'I2C' wuxuu kaloo qeexayaa adeegsiga iska-caabbinta ku-xirmayaasha khadadka korontada keena (Vcc), in kasta oo iska caabiyayaashan badanaa aan loo isticmaalin Arduino jiid-up sababtoo ah maktabadaha barnaamijyada maaddaama ay Xariggu dhaqaajinayo kuwa gudaha oo leh qiimayaasha 20-30 k. Tani waxay noqon kartaa mid aad u jilicsan mashruucyada qaarkood, sidaa darteed cidhifyada kororka ee calaamadda ayaa gaabis ah, marka xawaaraha hoose iyo masaafada isgaarsiinta ee gaaban ayaa loo isticmaali karaa. Si aad u saxdo waxaad u baahan kartaa inaad dejiso diidmo-jireyaal dibedda ah oo ka bilaabma 1k ilaa 4k7.

Saxeex

Calaamadaha I2C

La qadka isgaarsiinta kuwaas oo calaamadda baska I2C ay ka kooban tahay jajabyo ama gobollo (kuwa loo adeegsaday Arduino, maadaama heerka I2C uu u oggolaanayo kuwa kale):

  • 8 jajab, 7 ka mid ah cinwaanka qalabka addoonta ah ee aad rabto inaad gasho si aad ugu dirto ama uga hesho xog. 7 qaybood, ilaa 128 cinwaan oo kala duwan ayaa la abuuri karaa, markaa aalado aragti ahaan waa la heli karaa 128 aalad, laakiin 112 oo keliya ayaa la heli karaa, maaddaama 16 loo qoondeeyay adeegsiyo gaar ah. Iyo xoogaa dheeraad ah oo tilmaamaya haddii aad rabto dir ama hel macluumaad qalab addoon.
  • Waxaa sidoo kale jira xoogaa ansax ah, haddii uusan firfircooneyn isgaarsiinta ma ansax noqoneyso.
  • Kadibna bytes xogta in addoomadu soo diraan ama helaan. Bayt kasta, sidaad ogtahay, wuxuu ka kooban yahay 8-jajab. Ogsoonow in 8-bit ama 1 byte kasta oo xogta la diro ama la helo, 18 qaybood oo dheeri ah oo ansax ah, cinwaan, iwm ah ayaa loo baahan yahay, taas oo macnaheedu yahay in basku xawaare ahaan aad u xadidan yahay.
  • Qeybtii ugu dambeysay ee ansaxinta wada hadalka.

Intaa waxaa dheer, inta jeer ee saacad loogu talagalay idaacadaha waa 100 Mhz sida caadiga ah, inkasta oo ay jirto qaab ka dhakhso badan 400 Mhz.

Faa’iidooyinka iyo qasaaraha baska I2C

ka faa'iidooyinka Waxay yihiin:

  • Fudayd adoo adeegsanaya kaliya laba saf.
  • Waxay leedahay farsamooyinka lagu ogaanayo in calaamaddu timid marka la barbar dhigo hab maamuuska kale ee isgaarsiinta.

ka faa'iido daro Waxay yihiin:

  • Xawaare gudbinta si cadaalad ah
  • Maahan labo qaybood oo buuxa, taasi waa, iskuma diri kartid oo ma heli kartid isku mar.
  • Ma isticmaalo sinaan ama nooc kale oo farsamo xaqiijin ah oo lagu ogaanayo haddii xogta xogta la helay ay sax tahay.

I2C on Arduino

Baska Arduino I2C

En Arduino, waxay kuxirantahay tusaalaha, Biinanka loo oggol yahay in lagu isticmaalo baskan I2C wuu kala duwan yahay. Tusaale ahaan:

  • Arduino UNO, Nano, MiniPro: A4 waxaa loo isticmaalaa SDA (xogta) iyo A5 ee SCK (saacad).
  • arduino mega: pin 20 loogu talagalay SDA iyo 21 loogu talagalay SCK.

Xusuusnow in si aad u isticmaasho waa inaad isticmaal maktabadda Silig.h lambarradaada 'Arduino IDE', in kastoo ay jiraan kuwa kale oo la mid ah I2C y i2cdevlib. Waad ka akhrisan kartaa dukumiintiyada maktabadahaan ama qoraaladeena ku saabsan mashaariicda aad xiiseyneyso inaad hesho lambarrada sida loo diyaarin lahaa.

Sidee loo ogaadaa cinwaanka qalab si loogu isticmaalo I2C?

Kaliya digniintii ugu dambeysay, waana taas markii aad ka iibsaneyso ICs kuwa wax soo saara Yurub, Jabbaan ama Mareykan, adigu tilmaam jihada inaad u isticmaasho qalabka. Dhinaca kale, Shiinuhu mararka qaarkood ma faahfaahiyo ama sax ma aha, markaa ma shaqeyn doonto. Taasi waxaa si fudud loogu xallin karaa skaan cinwaanka si loo ogaado jihada ay tahay inaad tixraacdo sawirkaaga.

La bulshada arduino ayaa tan abuuray lambar si aad u baarto cinwaanka oo aad u aqoonsatid Si fudud. In kasta oo aan halkan ku tusayo koodhka:

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


Noqo kuwa ugu horreeya ee faallo bixiya

Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.