ទាំងអស់អំពីឡានក្រុង Arduino I2C

ឡានក្រុង Arduino I2C

ជាមួយ Arduino អាចបង្កើតគម្រោងមួយចំនួនធំ ដូចដែលអ្នកបានឃើញប្រសិនបើអ្នកអាន Hwlibre ការសរសេរកម្មវិធី microcontroller តាមរបៀបសាមញ្ញ។ ប៉ុន្តែក្នុងចំណោមការតភ្ជាប់អាណាឡូកនិងឌីជីថលនៃក្តារផ្នែករឹងឥតគិតថ្លៃនេះមានមួយចំនួនដែលនៅតែមិនទាន់ស្គាល់ខ្លះសម្រាប់អ្នកចាប់ផ្តើមដំបូងដូចជាសក្តានុពលពិតនៃការតភ្ជាប់ PWM អេសភីអេសអេសអ័រអេសអេសអេសអេសឬព្រីននៃច្រកសៀរៀលឬ ឡានក្រុង I2C ផ្ទាល់ខ្លួន។ ដូច្នេះជាមួយនឹងធាតុនេះយ៉ាងហោចណាស់អ្នកអាចដឹងអ្វីៗគ្រប់យ៉ាងដែលអ្នកត្រូវការពីអាយ។ ស៊ី។ អេ។

ជាមួយ ឡានក្រុង I2C អ្នកអាចភ្ជាប់និងប្រើឧបករណ៍ភាគីទីបីជាច្រើនដែលមានពិធីសារប្រភេទនេះដើម្បីទាក់ទងជាមួយក្តារ Arduino ។ រវាងពួកវាអ្នកអាចភ្ជាប់ឧបករណ៍វាស់ល្បឿនបង្ហាញបង្ហាញឧបករណ៍វាស់ត្រីវិស័យនិងសៀគ្វីរួមបញ្ចូលគ្នាជាច្រើនទៀតអរគុណចំពោះការច្នៃប្រឌិតរបស់ភីលហ្វី។

តើអាយស៊ីស៊ីជាអ្វី?

I2C សំដៅទៅលើសៀគ្វីរួមបញ្ចូលគ្នានោះគឺសៀគ្វីអន្តរបញ្ចូលគ្នា។ វាគឺជាឡានក្រុងទំនាក់ទំនងទិន្នន័យទិន្នន័យដែលត្រូវបានបង្កើតឡើងក្នុងឆ្នាំ ១៩៨២ ដោយក្រុមហ៊ុន Philips Semiconductors ដែលសព្វថ្ងៃនេះគឺជាអេឡិចត្រូនិចអេឡិចត្រូនិចបន្ទាប់ពីកម្ចាត់ផ្នែកនេះ។ ដំបូងវាត្រូវបានបង្កើតឡើងសម្រាប់ទូរទស្សន៍នៃយីហោនេះដើម្បីទាក់ទងបន្ទះឈីបផ្ទៃក្នុងជាច្រើនតាមរបៀបសាមញ្ញ។ ប៉ុន្តែចាប់តាំងពីឆ្នាំ ១៩៩០ អាយ។ អេស។ ស៊ីបានរីករាលដាលហើយត្រូវបានប្រើប្រាស់ដោយក្រុមហ៊ុនផលិតជាច្រើន។

បច្ចុប្បន្នត្រូវបានប្រើដោយអ្នកផលិតបន្ទះឈីបរាប់សិបនាក់ សម្រាប់មុខងារច្រើន។ Atmel អ្នកបង្កើតឧបករណ៍ត្រួតពិនិត្យខ្នាតតូចសម្រាប់ក្រុមប្រឹក្សា Arduino បានណែនាំការរចនា TWI (ចំណុចប្រទាក់ខ្សែពីរ) សម្រាប់គោលបំណងផ្តល់អាជ្ញាប័ណ្ណទោះបីជាវាមានលក្ខណៈដូចគ្នាបេះបិទទៅនឹង I2C ក៏ដោយ។ ប៉ុន្តែនៅឆ្នាំ ២០០៦ ប័ណ្ណប៉ាតង់ដើមផុតសុពលភាពហើយលែងជាកម្មសិទ្ធិបញ្ញាទៀតហើយដូច្នេះពាក្យអាយអាយស៊ីត្រូវបានប្រើប្រាស់ឡើងវិញ (មានតែឡូហ្គោនៅតែបន្តការពារដដែលប៉ុន្តែការអនុវត្តឬការប្រើប្រាស់ពាក្យនេះមិនត្រូវបានហាមឃាត់ទេ)

ព័ត៌មានលំអិតបច្ចេកទេសឡានក្រុងអាយ។ ស៊ី។ ស៊ី

ឡានក្រុង I2C

El ឡានក្រុង I2C បានក្លាយជាស្តង់ដារឧស្សាហកម្មហើយ Arduino បានអនុវត្តវា សម្រាប់ការទំនាក់ទំនងជាមួយគ្រឿងកុំព្យូទ័រដែលត្រូវការវា។ វាត្រូវការតែខ្សែឬខ្សែពីរប៉ុណ្ណោះសម្រាប់ប្រតិបត្តិការរបស់វាគឺមួយសម្រាប់សញ្ញានាឡិកា (CLK) និងមួយទៀតសម្រាប់បញ្ជូនទិន្នន័យសៀរៀល (SDA) ។ នេះជាគុណសម្បត្តិបើប្រៀបធៀបទៅនឹងទំនាក់ទំនងផ្សេងទៀតបើប្រៀបធៀបទៅនឹងរថយន្ដក្រុង SPI ទោះបីជាប្រតិបត្តិការរបស់វាស្មុគស្មាញបន្តិចក៏ដោយដោយសារត្រូវការសៀគ្វីបន្ថែម។

នៅលើឡានក្រុងនេះ ឧបករណ៍នីមួយៗដែលភ្ជាប់ទៅវាមានអាសយដ្ឋាន បានប្រើដើម្បីចូលប្រើឧបករណ៍ទាំងនេះនីមួយៗ។ អាសយដ្ឋាននេះត្រូវបានជួសជុលដោយផ្នែករឹងដោយកែប្រែ ៣ ប៊ីតចុងក្រោយដោយអ្នកលោតឬប្តូរឌីភីអេទោះបីជាវាក៏អាចត្រូវបានធ្វើដោយសូហ្វវែរដែរ។ ឧបករណ៍និមួយៗនឹងមានអាស័យដ្ឋានប្លែកមួយទោះបីវាមួយចំនួនអាចមានអាស័យដ្ឋានដូចគ្នាហើយឡានក្រុងបន្ទាប់បន្សំប្រហែលជាត្រូវប្រើដើម្បីជៀសវាងជម្លោះរឺផ្លាស់ប្តូរវាបើអាច។

លើសពីនេះទៀតឡានក្រុង I2C មានមួយ ស្ថាបត្យកម្មប្រភេទស្លាវប្រភេទ នោះគឺជាទាសករ។ នេះមានន័យថានៅពេលការទំនាក់ទំនងត្រូវបានចាប់ផ្តើមដោយឧបករណ៍មេវានឹងអាចបញ្ជូនឬទទួលទិន្នន័យពីទាសកររបស់វា។ ទាសករនឹងមិនអាចផ្តួចផ្តើមការប្រាស្រ័យទាក់ទងបានទេមានតែមេទេដែលអាចធ្វើវាបានហើយទាសករទាំងនោះក៏មិនអាចនិយាយគ្នាដោយផ្ទាល់បានដែរបើគ្មានអន្តរាគមន៏ពីម្ចាស់។

ប្រសិនបើអ្នកមាន។ គ្រូមួយចំនួននៅលើឡានក្រុងមានតែមនុស្សម្នាក់ទេដែលអាចដើរតួជាគ្រូបង្រៀនក្នុងពេលតែមួយ ប៉ុន្តែវាមិនសមនឹងវាទេចាប់តាំងពីការផ្លាស់ប្តូរគ្រូទាមទារភាពស្មុគស្មាញខ្ពស់ដូច្នេះវាមិនញឹកញាប់ទេ។

សូមចងចាំថាឯកសារ មេផ្តល់សញ្ញានាឡិកាដើម្បីធ្វើសមកាលកម្មឧបករណ៍ទាំងអស់នៅលើឡានក្រុង។ នោះលុបបំបាត់នូវតំរូវការរបស់ខ្ញុំបម្រើម្នាក់ៗដែលមាននាឡិការផ្ទាល់ខ្លួន។

ពិធីសារឡានក្រុងអាយអាយស៊ីក៏មើលឃើញជាមុនផងដែរនូវការប្រើប្រាស់រេស៊ីស្តង់ទាញក្នុងខ្សែវ៉ុលផ្គត់ផ្គង់ (វីស៊ី) ទោះបីជាឧបករណ៍ទប់ទាំងនេះមិនត្រូវបានប្រើជាធម្មតាជាមួយអាឌូណូក៏ដោយ ទាញឡើងព្រោះបណ្ណាល័យកម្មវិធី ដូចជាលួសធ្វើឱ្យផ្នែកខាងក្នុងសកម្មជាមួយនឹងតម្លៃ 20-30 គី។ នេះប្រហែលជាទន់ពេកសម្រាប់គម្រោងមួយចំនួនដូច្នេះគែមដែលកើនឡើងនៃសញ្ញានឹងយឺតជាងដូច្នេះល្បឿនទាបនិងចម្ងាយទំនាក់ទំនងខ្លីអាចត្រូវបានប្រើ។ ដើម្បីកែតម្រូវអ្នកប្រហែលជាត្រូវកំណត់ឧបករណ៍ចាប់ទាញខាងក្រៅពី 1k ទៅ 4k7 ។

សញ្ញា

សញ្ញា I2C

La ស៊ុមទំនាក់ទំនង ដែលសញ្ញាឡានក្រុងអាយអាយស៊ីមានប៊ីតឬរដ្ឋ (ឧបករណ៍ទាំងនោះត្រូវបានប្រើនៅក្នុងអារីដូដូចាប់តាំងពីស្តង់ដារអាយអាយស៊ីអនុញ្ញាតឱ្យអ្នកដទៃ):

  • ៨ ប៊ីត ៧ នៃពួកវា ទិស នៃឧបករណ៍ទាសករដែលអ្នកចង់ចូលប្រើដើម្បីផ្ញើឬទទួលទិន្នន័យពីវា។ ជាមួយ ៧ ប៊ីតអាស័យដ្ឋានរហូតដល់ ១២៨ ផ្សេងគ្នាអាចត្រូវបានបង្កើតដូច្នេះឧបករណ៍ ១២៨ អាចចូលដំណើរការតាមទ្រឹស្តីប៉ុន្តែមានតែ ១១២ ប៉ុណ្ណោះដែលអាចចូលបានព្រោះ ១៦ គ្រឿងត្រូវបានបម្រុងទុកសម្រាប់ការប្រើប្រាស់ពិសេស។ ហើយប៊ីតបន្ថែមដែលចង្អុលបង្ហាញប្រសិនបើអ្នកចង់បាន ផ្ញើឬទទួល ព័ត៌មានឧបករណ៍ទាសករ។
  • ក៏មាន ប៊ីតសុពលភាពមួយប្រសិនបើវាមិនសកម្មការប្រាស្រ័យទាក់ទងនឹងមិនមានសុពលភាពទេ។
  • បន្ទាប់មក ទិន្នន័យបៃ ដែលពួកគេចង់បញ្ជូនឬទទួលដោយទាសករ។ បៃនីមួយៗដូចដែលអ្នកបានដឹងហើយត្រូវបានបង្កើតឡើងដោយ ៨ ប៊ីត។ ចំណាំថាសម្រាប់រាល់ ៨ ប៊ីតឬ ១ បៃនៃទិន្នន័យដែលបានផ្ញើឬទទួលបានត្រូវមាន ១៨ សុពលភាពបន្ថែមទៀតនៃសុពលភាពអាស័យដ្ឋាន។ ល។ ដែលមានន័យថារថយន្តក្រុងមានល្បឿនកំណត់។
  • បន្តិចចុងក្រោយ សុពលភាព។ នៃការរួបរួមគ្នា។

លើសពីនេះទៀតប្រេកង់នាឡិកាសម្រាប់ ការបញ្ជូនគឺ ១០០ មេហ្គាហឺតជាស្តង់ដារ, ទោះបីជាមានរបៀបលឿនជាងមុននៅ 400 Mhz ។

គុណសម្បត្តិនិងគុណវិបត្តិនៃឡានក្រុង I2C

នេះ គុណសម្បត្តិ ពួកគេមាន:

  • ភាពសាមញ្ញ។ ដោយប្រើតែពីរខ្សែប៉ុណ្ណោះ។
  • វាមាន យន្ដការដើម្បីដឹងថាតើសញ្ញាបានមកដល់ហើយឬនៅ បើប្រៀបធៀបទៅនឹងពិធីសារទំនាក់ទំនងផ្សេងទៀត។

នេះ គុណវិបត្តិ ពួកគេមាន:

  • ល្បឿន ការបញ្ជូនទាបទាប។
  • វាមិនមែនជាឌុយពេញទេនោះគឺអ្នកមិនអាចផ្ញើនិងទទួលក្នុងពេលដំណាលគ្នាបានទេ។
  • មិនប្រើសមភាព ហើយក៏មិនមានយន្តការផ្ទៀងផ្ទាត់ប្រភេទផ្សេងទៀតដើម្បីដឹងថាតើទិន្នន័យដែលទទួលបានគឺត្រឹមត្រូវដែរឬទេ។

អាយ។ ស៊ី។ ស៊ីស្តីពីអារីដូណូ

ឡានក្រុង Arduino I2C

En Arduino អាស្រ័យលើម៉ូដែល, ម្ជុលដែលអាចត្រូវបានអនុញ្ញាតឱ្យប្រើរថយន្ដក្រុង I2C នេះខុសគ្នា។ ឧទាហរណ៍:

  • Arduino UNO, ណាណូ, មីនី Pro៖ អេ ៤ ត្រូវបានប្រើសម្រាប់អេសអេអេអេ (ទិន្នន័យ) និងអេ ៥ សម្រាប់អេសខេ (ម៉ោង) ។
  • Arduino មេហ្គា: លេខ ២០ សំរាប់អេឌីអេសអេសនិងលេខ ២១ សំរាប់អេសខេ។

ចងចាំថាដើម្បីប្រើវាអ្នកត្រូវតែ ប្រើបណ្ណាល័យ wire.h សម្រាប់លេខកូដ Arduino IDE របស់អ្នកទោះបីជាមានលេខផ្សេងទៀតក៏ដោយ I2C y i2cdevlib។ អ្នកអាចអានឯកសារនៃបណ្ណាល័យទាំងនេះឬអត្ថបទរបស់យើងអំពីគម្រោងដែលអ្នកចាប់អារម្មណ៍ដើម្បីទទួលបានលេខកូដនៃរបៀបដែលវាត្រូវបានសរសេរកម្មវិធី។

តើធ្វើដូចម្តេចដើម្បីដឹងពីអាសយដ្ឋានរបស់ឧបករណ៍ដើម្បីប្រើវាជាមួយ I2C?

ការព្រមានចុងក្រោយមួយហើយនោះគឺថានៅពេលអ្នកទិញអាយស៊ីអេសពីអ្នកផលិតអ៊ឺរ៉ុបជប៉ុនជប៉ុនឬអាមេរិកអ្នក ចង្អុលបង្ហាញទិសដៅ ដែលអ្នកគួរប្រើសម្រាប់ឧបករណ៍។ ម៉្យាងវិញទៀតពេលខ្លះជនជាតិចិនមិនបាននិយាយលម្អិតពីវាឬវាមិនត្រឹមត្រូវដូច្នេះវានឹងមិនដំណើរការទេ។ វាអាចត្រូវបានដោះស្រាយយ៉ាងងាយស្រួលជាមួយម៉ាស៊ីនស្កេនអាសយដ្ឋានដើម្បីដឹងទិសដៅដែលអ្នកគួរយោងទៅក្នុងគំនូរព្រាងរបស់អ្នក។

La សហគមន៍ arduino បានបង្កើតនេះ លេខកូដដើម្បីស្កេនអាសយដ្ឋាននិងកំណត់អត្តសញ្ញាណ តាមរបៀបសាមញ្ញ។ ទោះបីខ្ញុំបង្ហាញលេខកូដអោយអ្នកនៅទីនេះ៖

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


ខ្លឹមសារនៃអត្ថបទប្រកាន់ខ្ជាប់នូវគោលការណ៍របស់យើង ក្រមសីលធម៌វិចារណកថា។ ដើម្បីរាយការណ៍ការចុចកំហុស នៅទីនេះ.

ធ្វើជាយោបល់ដំបូង

ទុកឱ្យយោបល់របស់អ្នក

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានបោះពុម្ភ។ អ្នកគួរតែអនុវត្តតាម *

*

*

  1. ទទួលខុសត្រូវចំពោះទិន្នន័យ: មីហ្គែល - ហ្គែលហ្គេតថន
  2. គោលបំណងនៃទិន្នន័យ៖ គ្រប់គ្រង SPAM ការគ្រប់គ្រងមតិយោបល់។
  3. ភាពស្របច្បាប់៖ ការយល់ព្រមរបស់អ្នក
  4. ការប្រាស្រ័យទាក់ទងទិន្នន័យ៖ ទិន្នន័យនឹងមិនត្រូវបានទាក់ទងទៅភាគីទីបីឡើយលើកលែងតែកាតព្វកិច្ចផ្នែកច្បាប់។
  5. ការផ្ទុកទិន្នន័យ៖ មូលដ្ឋានទិន្នន័យដែលរៀបចំដោយបណ្តាញ Occentus (EU)
  6. សិទ្ធិ៖ នៅពេលណាដែលអ្នកអាចដាក់កម្រិតទាញយកមកវិញនិងលុបព័ត៌មានរបស់អ្នក។