Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
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