I2C протоколыг ашиглан хоёр Arduino-ийн хооронд хэрхэн мэдээлэл солилцох вэ?

Сүүлийн шинэчлэлт: 2023/09/15

Хоёр ⁢Arduino-г ‌I2C протоколтой хэрхэн холбох вэ?

I2C протокол Энэ нь электроникийн салбарт харилцаа холбоо тогтооход өргөн хэрэглэгддэг төхөөрөмжүүдийн хооронд. Arduino хавтангийн хувьд энэ технологи нь хоёр ба түүнээс дээш самбарыг хооронд нь холбож, холбохыг хүсч байвал ялангуяа ашигтай байдаг. Энэ нийтлэлд бид I2C протоколын үндсийг судалж, энэ протоколыг ашиглан хоёр Arduino-ийн хооронд амжилттай харилцаа холбоо тогтоохын тулд алхам алхмаар дэлгэрэнгүй тайлбарлах болно.

I2C протокол гэж юу вэ?

Inter-integrated Circuit гэгддэг I2C протокол нь өгөгдөл дамжуулах шугам (SDA) ба цаг (SCL) гэсэн хоёр шугамаар төхөөрөмжүүдийн хооронд өгөгдөл дамжуулах боломжийг олгодог синхрон цуваа холбооны протокол юм. нэг автобусанд холбогдсон олон төхөөрөмжтэй харилцах энгийн, үр ашигтай байдал.

Тоног төхөөрөмжийн тохиргоо

I2C протоколтой ажиллаж эхлэхээсээ өмнө тохирох техник хангамж байгаа эсэхийг шалгах нь чухал.Энэ тохиолдолд бидэнд Arduino хоёр самбар болон тэдгээрийг холбоход шаардлагатай кабель хэрэгтэй болно. Нэмж дурдахад бид харилцааны аль самбар нь эзэн, аль нь боол болохыг тодорхойлох ёстой.

Програм хангамжийн тохиргоо

Техник хангамжийн тохиргоог бэлэн болгосны дараа бид Arduino самбар дээрх програм хангамжийг бэлтгэх шаардлагатай болно. Үүнийг хийхийн тулд бид Arduino IDE-д багтсан Wire номын санг ашиглах бөгөөд энэ нь бидэнд I2C протоколыг хэрэгжүүлэхэд шаардлагатай функцуудыг өгдөг. Самбар бүр дээр бид I2C холболтыг эхлүүлэх программыг ачаалах ёстой бөгөөд энэ нь мастер эсвэл туслах үүрэг гүйцэтгэх эсэхийг тодорхойлдог.

I2C Харилцаа холбоо

Бид хоёр самбар дээрх техник хангамж, программ хангамжийг тохируулсны дараа I2C холболтыг үүсгэж эхлэх боломжтой.Үүнд SDA болон SCL шугамаар өгөгдөл илгээх, хүлээн авах орно. Мастер нь боол руу очих хаягийг илгээх замаар харилцаа холбоог эхлүүлдэг.Үүний дараа хоёр төхөөрөмж хоёр чиглэлтэй өгөгдөл дамжуулах, хүлээн авах боломжтой.

Эцэст нь хэлэхэд, I2C протокол нь хоёр Arduino хавтангийн хооронд харилцаа холбоо тогтоох маш сайн сонголт юм. Энэ нийтлэлээр дамжуулан бид энэ протоколын үндсийг судалж үзлээ алхам алхмаар ⁢тохируулах‍, амжилттай харилцаа холбоо тогтоох. Одоо таны ээлж⁢ энэ мэдлэгээ практикт хэрэгжүүлэх⁤, олон Arduino төхөөрөмжийг холбох шаардлагатай илүү төвөгтэй төслүүдийг бий болгох.

– Arduino дээрх I2C протоколын танилцуулга

Inter-Integrated Circuit гэгддэг I2C протокол нь нийтлэг автобусанд олон электрон төхөөрөмжийг холбоход хэрэглэгддэг цуваа холболтын протокол юм. Энэ нь бид энэ протоколыг ашиглан хоёр буюу түүнээс олон Arduino хавтанг холбож, хоорондоо холбогдох боломжийг олгоно гэсэн үг. I2C холболт нь төхөөрөмжүүдийг богино зайд холбоход тохиромжтой, учир нь өгөгдөл дамжуулахад зөвхөн хоёр кабель шаардлагатай байдаг.‌ Нэмж дурдахад энэ нь электроникийн салбарт маш найдвартай, өргөн хэрэглэгддэг протокол юм.

Хоёр Arduino хавтангийн хооронд I2C холбоо тогтоохын тулд бид мастер болон нэг буюу хэд хэдэн боолуудыг тохируулах шаардлагатай болно. Мастер харилцаа холбоог эхлүүлэх, хянах үүрэгтэй бол боолууд эзнийхээ хүсэлтэд хариулах болно. Холболт хийгдсэний дараа бид төхөөрөмжүүдийн хооронд өгөгдөл илгээж, хүлээн авах боломжтой. ⁤I2C автобусанд байгаа төхөөрөмж бүр нь тусгай хаягтай байх ёстойг анхаарах нь чухал бөгөөд энэ нь мастерт тэдгээрийг таних, шаардлагатай бол тэдэнтэй харилцах боломжийг олгодог.

I2C протоколын давуу тал нь хоёр талын харилцааг зөвшөөрдөг бөгөөд энэ нь мастер болон боолууд хоёулаа өгөгдөл илгээж, хүлээн авах боломжтой гэсэн үг юм. Энэ нь төхөөрөмжүүдийн хооронд мэдээлэл солилцох "боломжийн ертөнц"-ийг нээж өгдөг. Нэмж дурдахад, энэ протокол нь каскадын харилцаа холбоог зөвшөөрдөг гэдэг нь Бид олон боолуудыг нэг мастерт холбож, системийн чадавхийг өргөжүүлж байна.Ардуино дахь I2C-д зориулсан програмчлалын зарим үндсэн мэдлэг, тусгай сангуудыг ашигласнаар төхөөрөмжүүдийн хооронд холболт үүсгэж, өгөгдөл солилцож эхлэх нь харьцангуй хялбар юм. энэ протокол.

- I2C холболтын Arduino тохиргоо

Хоёр Arduino-ийн хооронд харилцах хамгийн үр дүнтэй аргуудын нэг бол I2C протокол буюу Inter-Integrated Circuit ашиглах явдал юм. Энэ протокол нь өгөгдөл дамжуулах (SDA), нөгөө нь цагийг синхрончлох (SCL) гэсэн хоёр кабелийг ашиглан олон төхөөрөмжүүдийн хооронд синхрон цуваа холболтыг зөвшөөрдөг. Arduinos-ийг I2C протоколыг ашиглахаар тохируулах нь маш энгийн бөгөөд энгийн байдал, харилцааны үр ашгийн хувьд олон давуу талыг өгдөг.

Онцгой контент - Энд дарна уу  Epson принтер дээр хар цагаанаар хэрхэн хэвлэх вэ

Arduino-г I2C холболтоор тохируулахын тулд бид эхлээд Arduino бүрийн үүргийг тодорхойлох хэрэгтэй, өөрөөр хэлбэл энэ нь мастер эсвэл боол болж ажиллах уу. Дараа нь бид төхөөрөмж тус бүрт тохирох SDA болон SCL кабелийг ашиглан Arduino-г хоёуланг нь холбодог.Ардуино хоёулаа газард (GND) холбогдсон эсэхийг шалгах нь нийтлэг хүчдэлийн лавлагаа бий болгох нь чухал юм.

Бид Arduinos-г биечлэн холбосоны дараа тэдгээрт тохирох кодыг програмчлах ёстой. Arduino мастер дээр, бид Wire.h номын санг ашиглан I2C холбоог эхлүүлж, хүссэн холбооны давтамжаа тохируулдаг. Дараа нь Wire.beginTransmission() гэх мэт сангаас өгсөн функцуудыг ашиглан өгөгдөл илгээж, хүлээн авч ⁣ дамжуулалт ⁣Wire эхлүүлж болно. бичих()-г ашиглан өгөгдөл илгээнэ үү. Боол Arduino дээрБид мөн ⁢Wire.h номын санг ⁤харилцааныг эхлүүлж, I2C дамжуулалтыг хүлээн авах үед өдөөх ⁤ тасалдлын‌ функцийг тохируулахад ашигладаг. Энэ функц дотор бид Wire.available() функцийг ашиглан өгөгдөл байгаа эсэхийг шалгаж, Wire.read() функцийг ашиглан мастераас илгээсэн өгөгдлийг хүлээн авч болно.

I2C холболтод зориулж Arduinos-ийг тохируулах нь олон төхөөрөмжүүдийн хооронд цуваа холболт үүсгэх үр дүнтэй бөгөөд энгийн арга юм. Энэ протокол нь харьцангуй өндөр харилцаа холбооны хурдыг санал болгодог бөгөөд хамгийн бага тооны кабель шаарддаг, холболтыг хялбарчилж, хэлхээний хэмжээг багасгадаг. ⁢Дээр дурдсан алхмуудыг дагаснаар бид ⁢ I2C протоколыг ашиглан⁢ хоёр⁢ Arduino хооронд жигд, найдвартай холбоо тогтоож чадна. Одоо та хоорондын харилцан үйлчлэлийг шаарддаг илүү төвөгтэй төслүүдийг боловсруулж эхлэхэд бэлэн байна олон төхөөрөмж!

– ⁤I2C ашиглан ‌Arduino төхөөрөмжүүдийн физик холболт

I2C протокол нь a үр ашигтай арга болон Arduino төхөөрөмжүүдийг хооронд нь холбох түгээмэл арга. Энэ нь зөвхөн хоёр кабель ашиглан хоёр чиглэлтэй өгөгдөл дамжуулах боломжийг олгодог бөгөөд сүлжээнд олон төхөөрөмжийг холбоход хялбар болгодог. I2C-ээр дамжуулан энэ физик холболт нь хос кабель дээр суурилдаг бөгөөд нэг нь өгөгдөл дамжуулах (SDA), нөгөө нь цаг (SCL) юм. Энэ холболтын тусламжтайгаар хоёр Arduino-ийн хооронд бодит цагийн харилцаа холбоог хурдан бөгөөд хялбар болгох боломжтой.

Arduino дээр I2C протоколыг ашиглахын тулд нэгийг тохируулах шаардлагатай. төхөөрөмжүүдийн эзэн, нөгөө нь боол. Мастер нь харилцаа холбоог эхлүүлэх, хянах үүрэгтэй бол боол нь эзнийхээ зааврыг хүлээж, зохих хариуг өгдөг. Харилцаа холбооны зөрчилдөөнөөс зайлсхийхийн тулд I2C сүлжээн дэх боол төхөөрөмж бүрийн өвөрмөц хаягийг тогтоох нь чухал юм.

Физик холболт болон мастер-боол дүрүүдийг тохируулсны дараа Arduino төхөөрөмжүүд I2C протоколыг ашиглан өгөгдөл солилцох боломжтой. Энэ нь мэдрэгчийн утгууд, тушаалууд болон холбогдсон төхөөрөмжүүдийн үйл ажиллагаанд шаардлагатай бусад төрлийн өгөгдөл зэрэг мэдээллийг илгээх, хүлээн авах боломжийг олгодог. Нэмж дурдахад I2C протокол нь нэг сүлжээнд хэд хэдэн боол төхөөрөмжийг холбох боломжийг олгодог бөгөөд энэ нь Arduino-ийн чадавхийг өргөтгөх боломжтой, уян хатан байдлаар өргөжүүлэх боломжийг олгодог.

– Arduinos хооронд I2C харилцаа холбоог бий болгох

I2C⁣ (Inter-Integrated Circuit) протокол нь хоёр ба түүнээс дээш Arduino төхөөрөмжүүдийн хооронд харилцаа холбоо тогтоох энгийн бөгөөд үр дүнтэй арга юм. Энэхүү протокол нь мастер-боол тохиргоон дээр суурилдаг бөгөөд Arduino-уудын нэг нь харилцаа холбоог эхлүүлж, удирддаг мастерын үүргийг гүйцэтгэдэг бол бусад нь мастераас тушаал хүлээн авч, хариу үйлдэл үзүүлдэг боолын үүргийг гүйцэтгэдэг. Дараа нь бид хоёр Arduino-ийн хооронд I2C холболтыг хэрхэн бий болгохыг танд үзүүлэх болно.

Эхлэхийн тулд та Arduinos-г ашиглан холбох хэрэгтэй I2C автобус.⁢ Үүнийг хийхийн тулд та Arduino бүрийн SDA (Цуваа өгөгдөл)⁣ болон SCL (Цуваа цаг) зүүг холбох ёстой. SDA зүү нь өгөгдөл илгээх, хүлээн авахад, SCL зүү нь харилцаа холбоог синхрончлоход ашиглагддаг. Кабелийг холбосны дараа та төхөөрөмжүүдийн хаягийг тохируулах шаардлагатай болно. Arduino бүр тэдгээрийг ялгах өвөрмөц хаягтай байх ёстой. Та эдгээр хаягийг ‌төхөөрөмж бүрийн кодонд⁤ функцийг ашиглан оноож болно Wire.begin().

Онцгой контент - Энд дарна уу  Valve-ийн уурын машин: техникийн үзүүлэлтүүд, дизайн, нээлт

Холболт болон төхөөрөмжийн хаягийг тогтоосны дараа та I2C протоколыг ашиглан Arduinos хооронд холбогдож эхлэх боломжтой. Мастер нь ⁤ функцийг ашиглан боолоос өгөгдөл хүсэх боломжтой Wire.requestFrom(), мөн боол нь функцийг ашиглан өгөгдлийг илгээж хариу өгөх боломжтой Wire.write(). Нэмж дурдахад та ‌ функцуудыг ашиглаж болно Wire.available() y Wire.read() хүлээн авсан өгөгдлийг унших. I2C холболт нь бүхэл тоо, тэмдэгт, байт массив зэрэг янз бүрийн төрлийн өгөгдлийг дамжуулах боломжийг олгодог гэдгийг санаарай.

– I2C холбооны кодыг хэрэгжүүлэх⁤

La кодын хэрэгжилт Хоёр Arduino хоорондын I2C холболтод зориулагдсан Энэ бол үйл явц хоёр төхөөрөмжийн хооронд үр дүнтэй харилцан үйлчлэлд хүрэхэд зайлшгүй шаардлагатай. I2C (Inter-Integrated Circuit) протокол нь энгийн бөгөөд үр ашигтай харилцааны хэлбэр бөгөөд мастер төхөөрөмж нь хоёр чиглэлтэй өгөгдлийн автобусаар дамжуулан олон туслах төхөөрөмжийг удирдах боломжтой. Энэхүү харилцаа холбоог бий болгоход шаардлагатай кодыг хэрхэн хэрэгжүүлэх жишээг доор харуулав.

Эхлэхийн тулд энэ нь зайлшгүй шаардлагатай зүүг тодорхойлох Энэ нь Arduino тус бүр дээр I2C холболтод ашиглагдах болно. Уламжлал ёсоор бол аналог зүү A4 нь цагийн дохио (SCL), A5 зүү нь өгөгдлийн дохио (SDA) -д ашиглагддаг. Эдгээр зүүг кодонд тус тус оролт, гаралт болгон тохируулах ёстой. Нэмж дурдахад Wire.h номын сан нь I2C протоколтой ажиллахад шаардлагатай функц, аргуудтай байх ёстой.

Зүү болон номын санг тохируулсны дараа үүнийг хийх шаардлагатай I2C холболтыг эхлүүлэх Arduino хоёуланд нь. Үүнийг хийхийн тулд функцийг ашиглана Wire.begin() Код дотор. Харилцаа холбоог эхлүүлсний дараа Arduino мастер нь номын санд байгаа функцуудыг ашиглан I2C автобусаар өгөгдөл илгээж, хүлээн авах боломжтой.

– I2C харилцаанд шилжүүлэх хурдыг авч үзэх

I2C харилцаа холбоо дахь шилжүүлгийн хурдыг харгалзан үзэх

I2C протокол нь энгийн бөгөөд үр ашигтай байдгаараа хоёр Arduino-ийн хооронд харилцах түгээмэл сонголт юм. Гэхдээ энэ протоколтой ажиллахдаа дамжуулах хурдыг анхаарч үзэх нь маш чухал юм. Хурд нь төхөөрөмжүүдийн хооронд мэдээлэл дамжуулахад шууд нөлөөлдөг. хоёр төхөөрөмж, ⁢тийм зайлшгүй шаардлагатай найдвартай харилцаа холбоог хангахын тулд энэ параметрийг шинжлэх, зохих ёсоор тохируулах.

Нэгдүгээрт, I2C протоколд дамжуулах хурд хэрхэн ажилладагийг ойлгох нь чухал юм.. Энэ хурд нь секундэд дамжуулж болох битийн тоог илэрхийлдэг. Хоёр Arduino-ийн хоорондох холболтын хувьд хоёр төхөөрөмж хоёулаа ижил хурдтайгаар тохируулагдсан байх ёстой бөгөөд ингэснээр тэд зөв харилцах боломжтой болно. Түүнчлэн, ашигласан Arduino загвараас хамааран хурд нь өөр өөр байж болох тул албан ёсны баримт бичигтэй танилцах нь чухал юм. төхөөрөмж бүрийн хурдны хязгаарлалт.

Өөр нэг анхаарах зүйл бол дамжуулах хурдад нөлөөлж болох физик хязгаарлалт юм.. Төхөөрөмжүүдийг холбоход ашигладаг кабелийн урт, цахилгаан соронзон хөндлөнгийн оролцоо нь өндөр хурдтай холболтын найдвартай байдалд нөлөөлдөг. Зарим тохиолдолд ийм төрлийн асуудлыг багасгахын тулд богино кабель ашиглах эсвэл бүр хамгаалах арга техникийг ашиглах шаардлагатай байж болно. Дамжуулах хурд нь төхөөрөмжийн эрчим хүчний хэрэглээнд нөлөөлж болзошгүй тул төслийн тодорхой хэрэгцээнд тулгуурлан тохируулахыг зөвлөж байна.

Дүгнэж хэлэхэд, I2C протоколыг ашиглан хоёр Arduino-г холбохдоо дамжуулах хурдыг анхаарч үзэх хэрэгтэй.Энэ параметрийг зөв тохируулах нь найдвартай холболтыг баталгаажуулахаас гадна системийн ажиллагааг оновчтой болгодог. Дамжуулах хурд хэрхэн ажилладагийг ойлгож, ⁢физик хязгаарлалтыг харгалзан үзсэнээр ⁢I2C протоколыг зөв тохируулж, төхөөрөмжүүдийн хооронд амжилттай харилцаа холбоо тогтоох боломжтой.

Онцгой контент - Энд дарна уу  GPU-г хэрхэн overclock хийх вэ

- I2C холболтын алдааг олж засварлах, зөвлөмж өгөх

I2C холболтын алдааг олж засварлах, зөвлөмж өгөх

Энэ нийтлэлд бид Arduino-ийн хоёр хавтангийн хоорондох I2C холболтын асуудлыг шийдвэрлэх нийтлэг шийдлүүд, мөн өгөгдөл дамжуулах үр дүнтэй байдлыг хангах зарим зөвлөмжийг харуулах болно.

I2C холболтын хамгийн нийтлэг бэрхшээлүүдийн нэг бол физик холболтгүй байх явдал юм.Кабелийг хоёр самбарын SDA болон SCL шонтой зөв холбосон эсэхийг шалгаарай. Мөн татах резисторууд нь SDA болон SCL зүү болон тэжээлийн хүчдэлийн хооронд зөв холбогдсон эсэхийг шалгана уу.

Өөр нэг боломжит асуудал бол буруу I2C хаяг байж болно. I2C автобусанд холбогдсон төхөөрөмж бүр өвөрмөц хаягтай байх ёстой. Хэрэв та нэг автобусанд олон төхөөрөмж ашиглаж байгаа бол төхөөрөмж бүр өвөрмөц хаягтай бөгөөд тухайн хаяг нь таны кодонд зөв тохируулагдсан эсэхийг шалгаарай. Мөн төхөөрөмжийн хаягуудын хооронд зөрчил байгаа эсэхийг шалгаж, давхардал байхгүй эсэхийг шалгаарай.

I2C харилцаа холбоог сайжруулах зарим зөвлөмжийг энд оруулав.

1. Богино, чанартай кабель ашиглах: Урт эсвэл чанар муутай кабель нь I2C дохионд саад учруулж болзошгүй. Энэ хөндлөнгийн оролцоог багасгахын тулд богино, сайн чанарын кабель ашиглана уу.

2. Татах резисторуудыг байрлуул: Татах резисторууд нь SDA болон SCL зүүг идэвхтэй хөдөлгөхгүй байх үед логик өндөр төлөвийг тогтооход тусалдаг. Энэ нь дохиог тогтвортой байлгах, харилцааны асуудлаас зайлсхийхэд тусалдаг.

3. Танд хангалттай хүлээх хугацаа байгаа эсэхийг шалгаарай: I2C автобусаар өгөгдөл дамжуулахдаа дамжуулалтын хооронд хангалттай хүлээх хугацаа байх нь чухал. Энэ нь ‌төхөөрөмжүүдэд⁢ шинэ өгөгдөл хүлээн авахаас өмнө ⁢хүлээн авсан өгөгдлийг боловсруулахад хангалттай хугацаа олгоно.

I2C холбоо нь олон Arduino төхөөрөмжийг холбох үр дүнтэй арга байж болохыг санаарай, гэхдээ эдгээр нийтлэг асуудлуудыг мэдэж, харилцаа холбоог жигд байлгахын тулд дээр дурдсан зөвлөмжийг дагаж мөрдөх нь чухал юм.

– Arduino дээр I2C протокол ашиглахын давуу болон сул талууд

Arduino дээр I2C протокол ашиглахын давуу тал

Arduino дээр I2C протоколыг ашиглах гол давуу талуудын нэг нь нэг холбооны автобусанд олон төхөөрөмжийг холбох чадвар юм. Энэ нь бид хэд хэдэн Arduino-г бие биетэйгээ харилцаж, мэдээлэл солилцож, уялдаа холбоотой ажиллах боломжтой гэсэн үг юм. Түүнчлэн, I2C протокол нь өгөгдөл дамжуулахад маш үр дүнтэй бөгөөд энэ нь мэдээллийг хурдан бөгөөд найдвартай дамжуулах боломжийг бидэнд олгодог.

Өөр нэг чухал давуу тал бол хэрэгжүүлэх энгийн байдал юм. ⁢I2C протокол нь холболтын хувьд зөвхөн хоёр холболтын утас (SDA болон SCL) ашигладаг бөгөөд үүнийг тохируулах, холбоход хялбар болгодог. Нэмж дурдахад, протокол нь өгөгдөл дамжуулах хурдны хувьд маш уян хатан байдлыг санал болгодог бөгөөд үүнийг бидний хэрэгцээнд тохируулах боломжийг олгодог.

Arduino дээр I2C протоколыг ашиглах сул талууд

Хэдийгээр I2C протокол нь олон давуу талтай боловч бидний анхаарах ёстой зарим хязгаарлалттай байдаг. Сул талуудын нэг нь холбооны автобусны урт нь ашигласан кабелийн эсэргүүцэл, хүчин чадлаар хязгаарлагддаг. Энэ нь кабелийн урт нэмэгдэхийн хэрээр харилцааны алдаа гарах магадлал нэмэгддэг гэсэн үг юм.

Өөр нэг сул тал нь SPI гэх мэт бусад харилцааны протоколуудтай харьцуулахад өгөгдөл дамжуулах хурд бага байдаг. Энэ нь их хэмжээний мэдээлэл дамжуулах шаардлагатай програмуудын сул тал байж болно. бодит цаг хугацаанд.

Дүгнэлт

Дүгнэж хэлэхэд, I2C протокол нь олон холболттой, өгөгдөл дамжуулах үр ашигтай, хэрэгжүүлэхэд хялбар байдаг тул хоёр Arduino-г холбох маш сайн сонголт юм. Гэсэн хэдий ч бид автобусны урт, дамжуулах хурдны хязгаарлалтыг харгалзан үзэх ёстой. Хэрэв манай программууд бодит цагийн их хэмжээний өгөгдөл шаарддаггүй эсвэл холын зайн холболт шаарддаггүй бол I2C протокол нь хамгийн тохиромжтой сонголт байж магадгүй юм. Манай Arduino төслүүдэд тохирох харилцааны протоколыг сонгохын өмнө бидний онцгой хэрэгцээг харгалзан үзэх нь чухал юм.