Mundarija:
- 1 -qadam: umumiy nuqtai
- 2 -qadam: Sizga nima kerak / havolalar
- 3 -qadam: O'chirish diagrammasi
- 4 -qadam: Dasturlash - I
- 5 -qadam: Dasturlash - II
- 6 -qadam: video
Video: MCP-23008ni o'rni interfeysi (I2C) yordamida qo'llash: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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
- 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
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
4 -qadam: 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
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:
I2C sensorli interfeysini ishga tushirish? - EMA32 yordamida MMA8451 interfeysi: 8 qadam
I2C sensorli interfeysini ishga tushirish? - EMA32 yordamida MMA8451 interfeysi: Ushbu qo'llanmada siz boshqaruvchi (Arduino, ESP32, ESP8266, ESP12 NodeMCU) bilan ishlaydigan I2C qurilmasini (akselerometr) qanday ishga tushirish, ulash va olish haqida hamma narsani bilib olasiz
Vibratsiyali teskari aloqa bilan kengaytiriladigan tugmani qo'llash: 7 qadam (rasmlar bilan)
Vibratsiyali teskari aloqa bilan kengaytiriladigan tugmachani qo'llash: Bu darslikda biz birinchi navbatda kengaytirilgan tugma yordamida tebranish dvigatelini boshqarish uchun Arduino Uno -dan qanday foydalanishni ko'rsatamiz. Bosish tugmachalari bo'yicha qo'llanmalarning ko'pi jismoniy dastur panelidagi tugmachani o'z ichiga oladi, bu qo'llanmada esa tugma
ATLAS SENSORLARI NOSOBALARNI YO'LLASH MASLAHATLARI: 7 qadam
ATLAS SENSORLARINING MUAMMOLARINI YO'LLASH MASLAHATLARI: Ushbu hujjat Atlas Scientific datchiklaridan to'g'ri foydalanish va ishlashini ta'minlaydigan ba'zi muhim ma'lumotlarni taqdim etishga qaratilgan. Bu nosozliklarni tuzatishga yordam berishi mumkin, chunki ba'zi yo'nalishlarga foydalanuvchilar duch keladigan keng tarqalgan muammolar kiradi. Bu
Nextion displey interfeysi ESP 32 bilan to'rtta o'rni: 7 qadam
Nextion displey interfeysi ESP 32 to'rtta o'rni kartasi bilan: Bu ko'rsatmada biz 5 dyuymli displeyni Esp 32 to'rt o'rni kartasiga o'tkazamiz, taxta MQTT protokoli bilan boshqariladi. Kengash shuningdek, ikki tomonlama boshqaruv xususiyatlariga ega. U mqtt va sensorli ekran orqali boshqarilishi mumkin
Ikkinchi hayotda individual ob'ektlar yuzasiga teksturani qanday qo'llash mumkin: 7 qadam
Ikkinchi hayotda individual ob'ektlar yuzasiga teksturani qanday qo'llash mumkin: Ikkinchi hayotda siz bitta ob'ektga bir nechta to'qimalarni qo'llash imkoniyatiga egasiz. Jarayon juda oddiy va sizning tashqi ko'rinishingizni sezilarli darajada yaxshilaydi