આજકાલ, I2C કમ્યુનિકેશન એ એક બહુવિધ ઉપકરણોને Arduino જેવા માઇક્રોકન્ટ્રોલર સાથે જોડવા માટે સૌથી વધુ ઉપયોગમાં લેવાતી એક પદ્ધતિ બની ગઈ છે. તેમણે TCA9548A એક 2-ચેનલ I8C બસ એક્સ્ટેન્ડર છે જે આ પ્રકારના કનેક્શન્સમાં સૌથી સામાન્ય સમસ્યાઓમાંથી એકનું નિરાકરણ કરે છે: I2C એડ્રેસ સંઘર્ષ. આ લેખ તમને સમજવામાં મદદ કરશે કે આ એક્સ્ટેન્ડર કેવી રીતે કાર્ય કરે છે અને તમે તેને તમારા Arduino પ્રોજેક્ટ્સમાં કેવી રીતે એકીકૃત કરી શકો છો.
જો તમે ક્યારેય એવા ઉપકરણોનો સામનો કર્યો હોય કે જે I2C બસ પર સમાન સરનામું શેર કરે છે, તો તમે જાણો છો કે તકરાર કર્યા વિના તેમની સાથે વાતચીત કરવાનો પ્રયાસ કેટલો નિરાશાજનક હોઈ શકે છે. ના ઉપયોગ સાથે TCA9548A, અમે તે સમસ્યાઓને ટાળી શકીએ છીએ અને એક જ I2C બસ સાથે જોડાયેલા ઉપકરણોની સંખ્યાને વિસ્તૃત કરી શકીએ છીએ. ચાલો આ મલ્ટિપ્લેક્સર દ્વારા ઓફર કરવામાં આવતી ક્ષમતાઓનું વિગતવાર અન્વેષણ કરીએ.
TCA9548A શું છે?
El TCA9548A એ 2-ચેનલ I8C બસ એક્સટેન્ડર છે જે ખાસ કરીને Arduino જેવા ઉપકરણો માટે વિકસાવવામાં આવ્યું છે. તેનું મુખ્ય કાર્ય એક જ I2C બસ સાથે અનેક બસોના જોડાણને મંજૂરી આપવાનું છે, જે તેને અનેક ઉપકરણો સાથે કાર્યક્ષમ રીતે સંચારનું સંચાલન કરવા માટે એક મૂળભૂત તત્વ બનાવે છે. તેની તુલના મલ્ટિપ્લેક્સર સાથે પણ કરી શકાય છે, પરંતુ ખાસ કરીને I2C સંચાર માટે ડિઝાઇન કરવામાં આવી છે.
આ ઉપકરણમાં I2C બસ ઇનપુટ છે જેમાં બે લીટીઓ, SDA (ડેટા) અને SCL (ઘડિયાળ), 8 સ્વતંત્ર આઉટપુટ સાથે જોડાયેલ છે, દરેક તેના અનુરૂપ SDA અને SCL સાથે છે. આ પરવાનગી આપે છે માઇક્રોકન્ટ્રોલર 8 જેટલા ઉપકરણો સાથે વાતચીત કરે છે, દરેક ક્ષણે કોની સાથે સંપર્ક કરવો તે પસંદ કરીને.
વધુમાં, સમાન I9548C સરનામું શેર કરતા ઉપકરણોને સંચાલિત કરવા માટે TCA2A નો ઉપયોગ કરવો સામાન્ય છે, જે અમુક સેન્સર્સ અને ડિસ્પ્લેમાં સામાન્ય છે જે તેમના સરનામાંને બદલવાની મંજૂરી આપતા નથી. આ મલ્ટિપ્લેક્સર સાથે, તમે ચેનલને સક્રિય કરી શકો છો અને અન્ય ચેનલો સાથે દખલ કર્યા વિના ઉપકરણ સાથે વાતચીત કરી શકો છો.
લાભો અને હાઇલાઇટ્સ
ના સૌથી સુસંગત લાભો પૈકી TCA9548A લોજિક એડેપ્ટરોનો ઉપયોગ કર્યા વિના વિવિધ વોલ્ટેજ સ્તરોની I2C બસો સાથે કામ કરવાની ક્ષમતા છે. આ પરવાનગી આપે છે 1.8V, 2.5V, 3.3V અને 5V પર કાર્યરત ઉપકરણો સાથે સંચાર, જે વિવિધ પ્રોજેક્ટ્સમાં એકીકરણની શક્યતાઓને વિસ્તૃત કરે છે.
અન્ય મુખ્ય વિશેષતા એ છે કે મલ્ટિપ્લેક્સરને સીધા I2C ઇનપુટ બસમાંથી નિયંત્રિત કરી શકાય છે, જે તેને માઇક્રોકન્ટ્રોલરથી ચલાવવા માટે ખૂબ જ સરળ બનાવે છે. તેનું ઓપરેટિંગ વોલ્ટેજ 1.65V થી 5.5V સુધીનું છે, અને તે 2 kHz સુધીની ફ્રીક્વન્સી સાથે I400C બસોને સપોર્ટ કરે છે, જે તેને વિવિધ ઉપકરણો માટે યોગ્ય બનાવે છે.
કનેક્શન અને રૂપરેખાંકન
TCA9548A ને કનેક્ટ કરવું એકદમ સરળ છે. તમારે ફક્ત ઇનપુટ બસને Arduino ની SDA અને SCL લાઇન સાથે કનેક્ટ કરવાની જરૂર છે, સાથે સંબંધિત પાવર પિન (ઉદાહરણ તરીકે GND અને 5V). બીજા છેડે, તમે 8 I2C ઉપકરણો સુધી કનેક્ટ કરી શકો છો, દરેક તેમની સંબંધિત ચેનલો પર SDA અને SCL સાથે.
એક રસપ્રદ સુવિધા એ છે કે તમે A2, A9548 અને A0 પિનનો ઉપયોગ કરીને TCA70A ના I0C સરનામાંને 77x0 થી 1x2 સુધી સંશોધિત કરી શકો છો. જો તમારે એક જ પ્રોજેક્ટમાં એક કરતાં વધુ મલ્ટિપ્લેક્સરનો ઉપયોગ કરવાની જરૂર હોય તો આ ઉપયોગી છે. ઉપરાંત, જો કોઈ કારણોસર તમારે મલ્ટિપ્લેક્સરને રીસેટ કરવાની જરૂર હોય, તો તમે RST પિન LOW સેટ કરીને આમ કરી શકો છો, જે ડિફોલ્ટ રૂપે પુલ-અપ પર સેટ છે.
તે ધ્યાનમાં રાખવું જરૂરી છે કે જેમ જેમ કેબલ્સની લંબાઈ અથવા કનેક્ટેડ ઉપકરણોની જટિલતા વધે છે, તેમ I2C બસ પર ડેટાના યોગ્ય ટ્રાન્સમિશનની ખાતરી કરવા માટે પુલ-અપ રેઝિસ્ટર ઉમેરવાની જરૂર પડી શકે છે.
I2C ઉપકરણોને સ્કેન કરવા માટે કોડ ઉદાહરણ
થી કનેક્ટેડ ઉપકરણો સાથે ક્રિયાપ્રતિક્રિયા કરતા પહેલા TCA9548A, મલ્ટિપ્લેક્સર યોગ્ય રીતે શોધાયેલ છે તેની ખાતરી કરવા માટે સૌ પ્રથમ મહત્વપૂર્ણ છે. આ કરવા માટે, તમે I2C બસનું સ્કેન કરી શકો છો. નીચે અમે બસમાં મલ્ટિપ્લેક્સરને શોધવા માટે મૂળભૂત ઉદાહરણ બતાવીએ છીએ.
#include "Wire.h"
void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("Escaneando bus I2C...");
for (byte address = 8; address <= 119; address++) {
Wire.beginTransmission(address);
byte error = Wire.endTransmission();
if (error == 0) {
Serial.print("Encontrado dispositivo en dirección 0x");
Serial.println(address, HEX);
}
}
Serial.println("Escaneo finalizado");
}
void loop() {
delay(1000);
}
ઉપરનો કોડ સંભવિત I2C બસ સરનામાંને સ્કેન કરે છે, જે શોધી રહ્યાં છે TCA9548A અથવા અન્ય કનેક્ટેડ ઉપકરણો. એકવાર મલ્ટિપ્લેક્સરની ઓળખ થઈ જાય, પછી તમે સક્રિય કરવા માટે જરૂરી ચેનલ પસંદ કરવા માટે આગળ વધી શકો છો.
TCA9548A ની ચેનલ પસંદ કરી રહ્યા છીએ
એકવાર અમે મલ્ટિપ્લેક્સર ગોઠવી અને શોધી કાઢ્યા પછી, અમે ઇચ્છિત ઉપકરણ સાથે વાતચીત કરવા માટે યોગ્ય ચેનલ પસંદ કરવાની જરૂર છે. ચોક્કસ ચેનલને સક્રિય કરતી બાઈટ લખીને આ સરળતાથી કરી શકાય છે. ચેનલ કેવી રીતે પસંદ કરવી તેનું ઉદાહરણ અહીં છે:
#define TCAADDR 0x70
void tcaselect(uint8_t i) {
if (i > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << i);
Wire.endTransmission();
}
void setup() {
Wire.begin();
Serial.begin(115200);
for (uint8_t t=0; t<8; t++) {
tcaselect(t);
Serial.print("Escaneando salida ");
Serial.println(t);
}
}
આ કોડ વડે, તમે સાથે જોડાયેલા કોઈપણ ઉપકરણોને પસંદ કરી અને તેની સાથે ક્રિયાપ્રતિક્રિયા કરી શકો છો TCA9548A, એક સમયે એક. યાદ રાખો કે તમે વધારાના ઉપકરણો શોધીને દરેક ચેનલના આઉટપુટને સ્કેન કરવા માટે કોડમાં ફેરફાર પણ કરી શકો છો.
El TCA9548A તમારા Arduino પ્રોજેક્ટ્સમાં I2C બસની ક્ષમતાઓને વિસ્તૃત કરવા માટેનું એક ઉત્તમ સાધન છે, જે તમને એક જ સરનામું અથવા વિવિધ વોલ્ટેજ સ્તરો સાથે કાર્યક્ષમ અને સરળ રીતે બહુવિધ ઉપકરણોને કનેક્ટ કરવાની મંજૂરી આપે છે.