Mündəricat:
- Addım 1: Avadanlıq Tələbi
- Addım 2: əhatə olunan mövzular
- Addım 3: I2C Avtobusunun Əsasları
- Addım 4: TCA9548A I2C Multiplexer Modulu
- Addım 5:
- Addım 6: Usta Məlumatları Necə Göndərir və Alır
- Addım 7: Kod
- Addım 8: I2C Skaner
- Addım 9: Kablolama və Demo
- Addım 10: Üstünlüklər və Dezavantajlar
- Addım 11: Təşəkkürlər
Video: TCA9548A I2C Multiplexer Modulu - Arduino və NodeMCU ilə: 11 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Sensorların sabit və ya eyni I2C ünvanına sahib olduğunu anlamaq üçün Arduino -ya iki, üç və ya daha çox I2C Sensoru bağlamaq məcburiyyətində qaldığınız bir vəziyyətə düşdünüzmü? Üstəlik, eyni SDA/SCL pinlərində eyni ünvana malik iki cihaz ola bilməz!
Yaxşı, seçimləriniz nələrdir? Hamısını eyni avtobusda bir-biri ilə danışdırmaq üçün hamısını TCA9548A 1-dən 8-ə qədər I2C multipleksoruna qoyun! TCA9548A Breakout, eyni ünvana malik çoxlu I2C cihazları ilə ünsiyyət qurmağı asanlaşdırır.
Addım 1: Avadanlıq Tələbi
Bu dərs üçün bizə lazımdır:
- Çörək lövhəsi
- TCA9548A I2C Multiplexer
- Arduino Uno/Nano nə lazımdırsa
- NodeMCU
- Bir neçə 0.91 və 0.96 I2C OLED displey
- Jumper Kabelləri və
- Kodu yükləmək üçün USB Kabel
Addım 2: əhatə olunan mövzular
Müzakirəmizə I2C texnologiyasının əsaslarını anlamaqla başlayacağıq
Sonra TCA9548A Multiplexer və usta və qulun I2C texnologiyasından istifadə edərək məlumatları necə göndərdiyini və qəbul etdiyini öyrənəcəyik Arduino və NodeMCU istifadə edərək layihəmizdə multipleksorun necə proqramlaşdırılması və istifadə edə biləcəyimizi yoxlayacağıq. 8 I2C OLED displeydən istifadə edərək demo və nəhayət TCA9548A Multiplexer -in üstünlüklərini və dezavantajlarını müzakirə edərək təlimi bitirəcəyik.
Addım 3: I2C Avtobusunun Əsasları
I-squared-C (I²C) və ya I2C tələffüz edilən İnteqrasiya edilmiş Dövrə, birdən çox prosessor və sensorlar arasında ünsiyyət üçün istifadə olunan iki telli bir avtobus texnologiyasıdır (əslində 4 telli də VCC və Ground lazımdır).
İki tel aşağıdakılardır:
* SDA - Serial Məlumatlar (məlumat xətti) və
* SCL - Serial Saat (saat xətti)
Unutmayın ki, bu xətlərin hər ikisi 'sinxron' 'iki istiqamətli' 'açıq drenaj' 'dir və' rezistorlar ilə çəkilir '.
I2C avtobus texnologiyası, əslində 80 -ci illərin əvvəllərində Philips Semiconductors tərəfindən eyni elektron lövhədə yerləşən komponentlər arasında asan ünsiyyət qurmaq üçün hazırlanmışdır.
I2C ilə birdən çox qulu tək bir mastera (SPI kimi) bağlaya bilərsiniz və ya tək və ya birdən çox qulu idarə edən birdən çox ustaya sahib ola bilərsiniz. Həm ağalar, həm də qullar məlumat ötürə və ala bilərlər. Beləliklə, I2C avtobusundakı bir cihaz bu dörd vəziyyətdən birində ola bilər:
* Master ötürmə - master node bir qula məlumat göndərir* Master qəbul edir - master node bir quldan məlumat alır
* Slave ötürülməsi - kölə qovşaq məlumatları ustaya göndərir
* Qul qəbulu - kölə qovşağı ustadan məlumat alır
I2C, 'qısa məsafə' 'serial ünsiyyət protokoludur', buna görə məlumatlar tək tel və ya SDA xətti boyunca 'bit-by-bit' ötürülür. Bitlərin çıxışı, master ilə qul arasında 'paylaşılan' bir saat siqnalı ilə bitlərin seçilməsi ilə sinxronlaşdırılır. Saat siqnalı həmişə usta tərəfindən idarə olunur. Usta saatı yaradır və qullarla ünsiyyətə başlayır.
Beləliklə, yekunlaşdırmaq üçün>
İstifadə olunan tellərin sayı: 2
Sinxron və ya Asenkron: Sinxron
Serial və ya Paralel: Serial
Saat Siqnalı tərəfindən idarə olunur: Master Node
İstifadə olunan gərginliklər: +5 V və ya +3.3 V
Maksimum Magistr sayı: Limitsiz
Maksimum Qul sayı: 1008
Maksimum Sürət: Standart Mod = 100kbps
Sürətli rejim = 400kbps
Yüksək Sürət rejimi = 3.4 Mbps
Ultra sürətli rejim = 5 Mbit / s
Addım 4: TCA9548A I2C Multiplexer Modulu
TCA9548A, səkkiz ayrı I2C cihazının bir ana I2C avtobusu ilə idarə olunmasına imkan verən səkkiz kanallı (iki istiqamətli) I2C multiplekseridir. I2C sensorlarını SCn / SDn multipleksli avtobuslara bağlamaq kifayətdir. Məsələn, bir tətbiqdə səkkiz eyni OLED displeyə ehtiyac olarsa, hər ekrandan biri bu kanalların hər birinə qoşula bilər: 0-7.
Multiplexer mikro nəzarətçinin VIN, GND, SDA və SCL xətlərinə qoşulur. Çıxış lövhəsi 1.65v -dən 5.5v -ə qədər VIN qəbul edir. Həm giriş SDA, həm də SCL xətləri VCC-yə 10K çəkmə müqaviməti vasitəsi ilə bağlanır (çəkmə müqavimətinin ölçüsü I2C xətlərindəki tutum miqdarı ilə müəyyən edilir). Multiplexer həm normal (100 kHz), həm də sürətli (400 kHz) I2C protokollarını dəstəkləyir. TCA9548A-nın bütün I/O pinləri 5 volt tolerantdır və yüksəkdən aşağıya və ya aşağıdan yüksək gərginliyə tərcümə etmək üçün də istifadə edilə bilər.
Gərginlik eyni olsa belə, TCA9548A-nın bütün kanallarına çəkmə rezistorları qoymaq yaxşı bir fikirdir. Bunun səbəbi daxili NMOS açarıdır. Yüksək gərginliyi çox yaxşı ötürmür, digər tərəfdən də aşağı gərginliyi çox yaxşı ötürür. TCA9548A, 1.8-V, 2.5-V və ya 3.3-V hissələrinin 5-V hissələri ilə əlaqə qura biləcəyi hər SCn/SDn cütlüyündə fərqli avtobus gərginliklərinin istifadəsinə imkan verən Gərginlik Tərcüməsi üçün də istifadə edilə bilər. Bu, avtobusu usta və hər bir qul kanalı üçün istənilən gərginliyə qaldırmaq üçün xarici çəkmə rezistorlarından istifadə etməklə əldə edilir.
Mikro nəzarətçi bir avtobus toqquşması və ya digər düzgün olmayan əməliyyat aşkar edərsə, RESET pininə aşağı endirərək TCA9548A sıfırlana bilər.
Addım 5:
TCA9548, tək bir mikro nəzarətçiyə, hər bir sensor qulluq alt avtobusuna bənzərsiz bir kanal təyin etməklə eyni və ya fərqli I2C ünvanı ilə '64 sensora' qədər əlaqə qurmağa imkan verir.
Birdən çox qurğuya 2 tel üzərindən məlumat göndərmək haqqında danışarkən, onları həll etmək üçün bir yol lazımdır. Poçt işçisinin tək bir yolda gəlməsi və üzərində fərqli ünvanlar yazıldığı üçün poçt paketlərini fərqli evlərə atması ilə eynidir.
Eyni I2C ünvanlı hissələrin 64-nü idarə etmək üçün 0x70-0x77 ünvanlarında bir-birinə bağlı olan maksimum 8-dən çox ola bilər. Üç ünvan bitini A0, A1 və A2 -ni VIN -ə bağlayaraq fərqli ünvan birləşmələrini əldə edə bilərsiniz. TCA9548A -nın ünvan baytı belə görünür. İlk 7 bit birləşərək kölə ünvanı meydana gətirir. Kölə ünvanın son biti, yerinə yetiriləcək əməliyyatı (oxumaq və ya yazmaq) təyin edir. Yüksək (1) olduqda oxu seçilir, aşağı (0) isə yazma əməliyyatını seçir.
Addım 6: Usta Məlumatları Necə Göndərir və Alır
Bir usta üçün bir qul cihazına daxil olmaq üçün ümumi prosedur budur:
1. Usta bir qula məlumat göndərmək istəyirsə (YAZIR):
-Master-ötürücü, START şərtini göndərir, sonra qul qəbuledicinin ünvanlarını və R/W-ni 0-a təyin edir.
-Master-ötürücü, qulun hazır olduğunu qəbul etdikdə '8 bit nəzarət qeydlərində' məlumatları kölə alıcıya göndərir.
-Master-ötürücü STOP şərti ilə köçürməni dayandırır
2. Usta bir quldan məlumat almaq və ya oxumaq istəyirsə (READS):
-Master-alıcı, START şərtini göndərir, sonra qul qəbuledicisinin ünvanlarını və R/W-ni 1-ə təyin edir.
-Master-alıcı, tələb olunan reyestri kölə ötürücüyə oxumaq üçün göndərir
-Master qəbuledici məlumatı kölə ötürücüdən alır
- Bütün baytlar alındıqdan sonra Usta rabitəni dayandırmaq və avtobusu buraxmaq üçün qula NACK siqnalı göndərir
- Master-alıcı STOP şərti ilə köçürməni dayandırır
Bir STOP vəziyyətindən sonra həm SDA, həm də SCL xətləri yüksək olarsa bir avtobus boş sayılır.
Addım 7: Kod
İndi Int kodu, "Tel" kitabxanasını daxil etməklə və multipleksorların ünvanını təyin etməklə başlamağa imkan verir.
#"Wire.h" daxil edin
#"U8glib.h" daxil edin
#dex MUX_Address 0x70 // TCA9548A Encoders ünvanını təyin edin
Sonra bu funksiyadan istifadə edərək ünsiyyət qurmaq istədiyimiz portu seçməliyik və üzərindəki məlumatları göndərməliyik:
etibarsız selectI2CChannels (uint8_t i) {
əgər (i> 7) qayıtsa;
Wire.beginTransmission (MUX_Address);
Wire.write (1 << i);
Wire.endTransmission ();
}
Sonra, "u8g.begin ();" çağıraraq ekranı quraşdırma bölməsində işə salacağıq. MUX -ə qoşulan hər bir ekran üçün "tcaselect (i);"
Başladıqdan sonra, "tcaselect (i);" funksiyasını çağıraraq istədiyimizi edə bilərik. burada "i" multipleksli avtobusun dəyəridir və sonra məlumatları və saatı buna uyğun olaraq göndərir.
Addım 8: I2C Skaner
Yalnız I2C qalxanınızın cihaz ünvanından əmin deyilsinizsə, cihazınızın onaltılıq ünvanını tapmaq üçün əlavə edilmiş 'I2C Skaner' kodunu işlədin. Arduino -ya yükləndikdə, eskiz cavab verən ünvanları göstərən I2C şəbəkəsini tarayacaq.
Addım 9: Kablolama və Demo
Kablolama:
Multiplekseri NodeMCU lövhəsinə bağlayaraq başlayaq. Qoşulun:
VIN - 5V (və ya 3.3V)
GND yerə
SDA -dan D2 və
SCL -dən D1 sancaqlarına uyğun olaraq
Arduino lövhəsi üçün qoşulun:
VIN - 5V (və ya 3.3V)
GND yerə
SDA A4 və
SCL -dən A5 -ə qədər sancaqlar
MUX mikro nəzarətçiyə bağlandıqdan sonra sensorları SCn / SDn cütlərinə bağlamanız kifayətdir.
İndi 8 OLED displeyi TCA9548A Multiplexer -ə bağladığım bu sürətli demoya baxaq. Bu ekranlar I2C ünsiyyətindən istifadə etdikləri üçün Arduino ilə cəmi 2 sancaqdan istifadə edərək əlaqə qururlar.
Addım 10: Üstünlüklər və Dezavantajlar
AVANTAJLAR
* Rabitə yalnız iki avtobus xətti (tel) tələb edir
* Bütün komponentlər arasında sadə bir usta/qul münasibətləri mövcuddur
* RS232 ilə olduğu kimi, heç bir ciddi baud dərəcəsi tələbi yoxdur, usta bir avtobus saatı yaradır
* Avadanlıq UART -lardan daha az mürəkkəbdir
* Çoxlu ustaları və çoxlu qulları dəstəkləyir
* ACK/NACK biti hər bir çərçivənin uğurla köçürüldüyünü təsdiqləyir
* I2C, arbitraj və toqquşma aşkarlanmasını təmin edən 'əsl çox master avtobus' dur
* Avtobusa qoşulan hər bir cihaz, unikal bir ünvanla proqramlaşdırıla bilər
* I2C cihazlarının çoxu 100kHz və ya 400kHz -də əlaqə qura bilir
* I²C, sadəlik və aşağı istehsal xərcinin sürətdən daha vacib olduğu ətraf qurğular üçün uyğundur
* Tanınmış və geniş istifadə olunan protokol
Dezavantajlar
* SPI -dən daha yavaş məlumat ötürmə sürəti
* Məlumat çərçivəsinin ölçüsü 8 bit ilə məhdudlaşır
* SPI texnologiyasından daha mürəkkəb aparata ehtiyac var
Tövsiyə:
NodeMCU + Köhnə Laptopun Kamera Modulu ilə CCTV Kamerası (Blynk istifadə edərək və istifadə etmədən): 5 addım
NodeMCU + Köhnə Laptopun Kamera Modulu ilə CCTV Kamerası (Blynk istifadə edərək və istifadə etmədən): Salam uşaqlar! Bu təlimatda, köhnə bir laptopun kamera modulunu və nodeMCU -nu CCTV -yə bənzər bir şey etmək üçün necə istifadə etdiyimi göstərəcəyəm
Birdən çox PZEM 004T -ni Nodemcu Modulu ilə qoşun: 3 addım
Birdən çox PZEM 004T -ni Nodemcu Modulu ilə bağlayın: Güc oğurluğu aşkarlama sistemi və ya enerji izləmə sistemi kimi bəzi layihələrdə birdən çox PZEM 004T moduluna ehtiyac var, buna görə burada Nodemcu kodunu və 3 PZEM 004T modulunun Nodemcu.if ilə əlaqəsini təmin etdim. sonra k
I2C Modulu ilə LCD Sürmə: 8 addım
I2C Modulu ilə LCD Sürmə: Bu təlimatda LCD ekranın necə işlədiyini və I2C modulu ilə daha asan necə istifadə ediləcəyini görəcəyik
Bluetooth vasitəsi ilə SD Kart Modulu ilə Arduinodan Android Telefonuna İstilik və Rütubət Məlumatlarını Qeyd edən: 5 addım
Bluetooth vasitəsi ilə SD Kart Modulu ilə Arduinodan Android Telefona qədər İstilik və Rütubət Məlumatlarını Qeyd edən: Hamıya Salam, bu mənim ilk təlimatımdır, inşallah istehsalçı cəmiyyətinə kömək etdiyim kimi kömək edərəm. Çox vaxt layihələrimizdə sensorlar istifadə edirik, ancaq məlumatları toplamaq, saxlamaq və dərhal Telefonlara və ya digər cihazlara ötürmək üçün bir yol tapırıq
NodeMcu ISD1820 Modulu ilə Danış: 3 addım
NodeMcu ISD1820 Modulu ilə Danış: Bu sadə dərslikdə NodeMCU lövhəsindən istifadə edərək ISD1820 modulunun necə bağlanacağını və istifadəsini izah edəcəyəm. P.S. pis İngilis dilinə görə üzr istəyirəm. Modul məlumat cədvəlini oxuyanda belə yazılır: Bu modulun istifadəsi çox asandır və idarə edə bilərsiniz