Mundarija:

MCP-23008ni o'rni interfeysi (I2C) yordamida qo'llash: 6 qadam
MCP-23008ni o'rni interfeysi (I2C) yordamida qo'llash: 6 qadam

Video: MCP-23008ni o'rni interfeysi (I2C) yordamida qo'llash: 6 qadam

Video: MCP-23008ni o'rni interfeysi (I2C) yordamida qo'llash: 6 qadam
Video: Когда У NPC В ИГРЕ ПОЯВИЛСЯ СПОНСОР - EPIC NPC MAN на Русском 2024, Iyul
Anonim
O'rnimizni interfeysi (I2C) yordamida MCP-23008 ni qo'llash
O'rnimizni interfeysi (I2C) yordamida MCP-23008 ni qo'llash

Salom

Yaxshi Salom.. !!

Men (Somanshu Choudhary) Dcube texnologik korxonalari nomidan Arduino nano va MCP23008 yordamida I2C protokoli orqali o'z o'rni boshqaruvini boshqaraman.

1 -qadam: umumiy nuqtai

Sharh
Sharh
  • MCP23X08 qurilmasi I2C avtobus yoki SPI ilovalari uchun 8-bitli, umumiy maqsadli, parallel kirish-chiqish kengayishini ta'minlaydi.
  • MCP23X08 kirish, chiqish va kutupluluğu tanlash uchun bir nechta 8 bitli konfiguratsiya registrlaridan iborat. Tizim ustasi kirish -chiqish konfiguratsiya bitlarini yozish orqali kirish -chiqishlarni kirish yoki chiqish sifatida yoqishi mumkin. Har bir kirish yoki chiqish uchun ma'lumotlar tegishli kirish yoki chiqish registrida saqlanadi. Kirish porti registrining qutblanishini qutblanish inversiyasi registri yordamida teskari aylantirish mumkin. Barcha registrlarni tizim ustasi o'qishi mumkin.
  • Ma'lumotlar sahifasi havolasi:

2 -qadam: Sizga nima kerak / havolalar

Sizga nima kerak / havolalar
Sizga nima kerak / havolalar

1. Arduino Nano LINK:

2. Arduino Nano LINK uchun qalqon:

3. USB kabeli A tipidagi mikro tip B 6 fut uzunlikda

4. I²C kabel liniyasi:

5. Sakkiz SPDT I²C boshqariladigan o'rni

6. LINK adapteri:

3 -qadam: O'chirish diagrammasi

O'chirish diagrammasi
O'chirish diagrammasi
O'chirish diagrammasi
O'chirish diagrammasi

4 -qadam: Dasturlash - I

Dasturlash - I
Dasturlash - I
Dasturlash - I
Dasturlash - I
  • Ushbu kodda men funktsional dasturlash paradigmasidan foydalanaman
  • Funktsiyalarni aniqlash va qo'ng'iroq qilish uchun men turli xil yorliqlardan foydalanardim

Jadval ostidagi kod q:

// Oddiy funktsiyali qo'ng'iroq kodi

#bekor sozlamalarni qo'shish ()

{

// MCP23008 I2C manzili

#MCP_ADDR 0x20 ni aniqlang

// I2C Bus -ga usta sifatida qo'shiling

Wire.begin ();

// Ketma -ket muloqotni boshlang va tezlikni sozlang

Serial.begin (9600);

// I2C avtobusida berilgan qurilma bilan uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

// IODIR - I/U YO'LI REGISTER registrini tanlang

Wire.write (0x00);

// Kerakli operatsiyani tanlang (chiqish)

Wire.write (0x00);

// Konfiguratsiya registrini tanlang

Wire.write (0x05);

// Kerakli operatsiyani tanlang

Wire.write (0x0E);

// uzatishni tugatish

Wire.endTransmission ();

}

bo'sh halqa ()

{

a1_on ();

kechikish (1000);

a1_off ();

kechikish (1000);

a2_on ();

kechikish (1000);

a2_off ();

kechikish (1000);

a3_on ();

kechikish (1000);

a3_off ();

kechikish (1000);

a4_on ();

kechikish (1000);

a4_off ();

kechikish (1000);

a5_on ();

kechikish (1000);

a5_off ();

kechikish (1000);

a6_on ();

kechikish (1000);

a6_off ();

kechikish (1000);

a7_on ();

kechikish (1000);

a7_off ();

kechikish (1000);

a8_on ();

kechikish (1000);

a8_off ();

}

Q1 jadval ostidagi kod:

// Bu kod bortdagi 1 -o'rni yoqish va o'chirish uchun

void a1_on () {

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x01);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

bekor a1_off ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

2 -jadval ostidagi kod:

// Bu kod bortda 2 -o'rni yoqish va o'chirish uchun

void a2_on () {

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x02);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

bekor a2_off ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

QAB: Q3: // kodi bortdagi 3 -o'rni yoqish va o'chirish uchun

bekor a3_on ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x04);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

bekor a3_off ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

5 -qadam: Dasturlash - II

Dasturlash - II
Dasturlash - II

Q4 jadvalining ostidagi kod:

// Bu kod bortda 4 -o'rni yoqish va o'chirish uchun

bekor a4_on ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x08);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

bekor a4_off ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

Q5 tabi ostidagi kod:

// Bu kod bortda 5 -o'rni yoqish va o'chirish uchun

void a5_on ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x10);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

bekor a5_off ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

QOIDA TABRIDA Q6 kodi: // Bu kod bortdagi 6 -o'rni uchun

void a6_on ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x20);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

void a6_off ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

Q7: Jadval ostidagi kod: // Bu kod bortda 7 -o'rni yoqish va o'chirish

void a7_on () {

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x40);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

void a7_off ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

Q8: Jadvalidagi kod: // Bu kod bortda 8 -o'rni yoqish va o'chirish

bekor a8_on () {

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x80);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

bekor a8_off ()

{

// uzatishni boshlang

Wire.beginTransmission (MCP_ADDR);

Wire.write (0x09);

Wire.write (0x00);

kechikish (1800);

Wire.requestFrom (MCP_ADDR, 1);

int GPIO = Wire.read ();

Wire.endTransmission ();

// Ekranga chiqish

Serial.print ("GPIO qiymati:");

Serial.println (GPIO, BIN);

}

6 -qadam: video

Boshqa savollar uchun saytimizga tashrif buyuring:

www.dcubetechnologies.com

Tavsiya: