
Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54

Salam
Xoş Salamlar.. !!
Mən (Somanshu Choudhary), Arduino nano və MCP23008 istifadə edərək I2C protokolu ilə Röleləri idarə edəcək Dcube texnologiya müəssisələri adından.
Addım 1: Baxış

- MCP23X08 cihazı, I2C avtobus və ya SPI tətbiqləri üçün 8 bitlik, ümumi təyinatlı, paralel I/O genişləndirməsini təmin edir.
- MCP23X08, giriş, çıxış və polarite seçimi üçün çoxsaylı 8 bitlik konfiqurasiya qeydlərindən ibarətdir. Sistem ustası, I/O konfiqurasiya bitlərini yazaraq G/Ç -ni ya giriş, ya da çıxış olaraq təmin edə bilər. Hər bir giriş və ya çıxış üçün məlumatlar müvafiq Giriş və ya Çıxış reyestrində saxlanılır. Giriş Limanı reyestrinin polaritesi Polarite Ters çevrilmə reyestri ilə tərsinə çevrilə bilər. Bütün qeydləri sistem ustası oxuya bilər.
- DATASHEET LINK:
Addım 2: Lazım olanlar / Bağlantılar

1. Arduino Nano LINK:
2. Arduino Nano LINK üçün qalxan:
3. USB Kabel Tipi A - Mikro Tip B 6 Ayaq Uzunluğunda
4. I²C Kabel Bağlantısı:
5. Səkkiz SPDT I²C Nəzarətli Röle
6. Adapter LINK:
Addım 3: Dövrə Şeması


Addım 4: Proqramlaşdırma - I


- Bu kodda Funksional Proqramlaşdırma Paradiqmasını istifadə edirəm
- Funksiyaların təyin edilməsi və funksiyaların çağırılması üçün fərqli nişanlardan istifadə etdim
SABT ALTINDA QOD:
// Sadə funksiya zəng kodu
#boşluq qurulmasını daxil et ()
{
// MCP23008 -in I2C ünvanı
#MCP_ADDR 0x20 təyin edin
// Master olaraq I2C Avtobusuna qoşulun
Wire.begin ();
// Serial ünsiyyətə başlayın və ötürmə sürətini təyin edin
Serial.begin (9600);
// I2C avtobusunda verilən cihazla ötürməyə başlayın
Wire.beginTransmission (MCP_ADDR);
// IODIR - I/O DIRECTION REGISTER qeydiyyatını seçin
Wire.write (0x00);
// Lazımi əməliyyatı seçin (çıxış)
Wire.write (0x00);
// Konfiqurasiya qeydini seçin
Wire.write (0x05);
// Lazımi əməliyyatı seçin
Wire.write (0x0E);
// ötürməni sona çatdır
Wire.endTransmission ();
}
boşluq döngəsi ()
{
a1_on ();
gecikmə (1000);
a1_off ();
gecikmə (1000);
a2_on ();
gecikmə (1000);
a2_off ();
gecikmə (1000);
a3_on ();
gecikmə (1000);
a3_off ();
gecikmə (1000);
a4_on ();
gecikmə (1000);
a4_off ();
gecikmə (1000);
a5_on ();
gecikmə (1000);
a5_off ();
gecikmə (1000);
a6_on ();
gecikmə (1000);
a6_off ();
gecikmə (1000);
a7_on ();
gecikmə (1000);
a7_off ();
gecikmə (1000);
a8_on ();
gecikmə (1000);
a8_off ();
}
TAB Q1 ALTINDA QOD:
// Bu kod, gəmidə 1 -ci röleyi açmaq və söndürmək üçündür
void a1_on () {
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
boşluq a1_off ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
TAB q2 altındakı kod:
// Bu kod, gəmidə 2 -ci röleyi açmaq və söndürmək üçündür
boşluq a2_on () {
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
boşluq a2_off ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
SABAQ ALTINDAKİ Q3: // Bu kod gəmidə 3 -cü röleyi açmaq və söndürmək üçündür
boşluq a3_on ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
void a3_off ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
Addım 5: Proqramlaşdırma - II

TAB q4 altındakı kod:
// Bu kod, gəmidə 4 -cü röleyi açmaq və söndürmək üçündür
boş a4_on ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
boş a4_off ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
TAB q5 altındakı kod:
// Bu kod, gəmidə 5 -ci röleyi açmaq və söndürmək üçündür
boşluq a5_on ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
boşluq a5_off ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
Q6 SABİFİNİN ALTINDAKİ KOD: // Bu kod, gəmidəki 6 -cı röleyi açmaq və söndürmək üçündür
boşluq a6_on ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
boş a6_off ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
SABAQ ALTINDAKİ Q7: // Bu kod, gəmidəki 7 -ci röleyi açmaq və söndürmək üçündür
void a7_on () {
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
boşluq a7_off ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
TAB Q8 ALTINDAKİ Q8: // Bu kod, gəmidəki 8 -ci röleyi açmaq və söndürmək üçündür
boşluq a8_on () {
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
boşluq a8_off ()
{
// Göndərməyə başlayın
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
gecikmə (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Ekrana çıxış
Serial.print ("GPIO dəyəri:");
Serial.println (GPIO, BIN);
}
Addım 6: Video
Əlavə suallarınız üçün saytımızı ziyarət etməkdən çekinmeyin:
www.dcubetechnologies.com
Tövsiyə:
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: 4 addım

Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: Salam, mən Rithikəm. Telefonunuzdan istifadə edərək internetə nəzarət edən bir led quracağıq. Arduino IDE və Blynk kimi proqramlardan istifadə edəcəyik. Bu çox sadədir və uğur qazansanız istədiyiniz qədər elektron komponenti idarə edə bilərsiniz
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək sürətlənməni izləyin: 6 addım

Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək Sürətləndirməni izləyin: Sürətləndirmə sonsuzdur, düşünürəm ki, Fizikanın bəzi qanunlarına görə. Sahilə çıxan ən sürətli məxluq, bir anda ən yüksək sürətindən istifadə edərək ovunu tutur
I2C / IIC LCD Ekran - Arduino ilə SPI -IIC Modulundan istifadə edərək I2C LCD Ekranına SPI LCD istifadə edin: 5 addım

I2C / IIC LCD Ekran | Arduino ilə SPI -dən IIC Modulundan istifadə edərək I2C LCD Ekranına SPI LCD -dən istifadə edin: Salam uşaqlar normal SPI LCD 1602 -yə qoşulmaq üçün çoxlu tellər olduğundan arduino ilə əlaqə qurmaq çox çətindir, ancaq bazarda bunu edə biləcək bir modul var. SPI ekranını IIC ekrana çevirin, buna görə yalnız 4 tel bağlamalısınız
RaspberryPi istifadə edərək TicTacToe Avadanlıq Tətbiqi: 4 addım

RaspberryPi istifadə edərək TicTacToe Avadanlıq Tətbiqi: Bu layihə, bir moruq pi istifadə edərək iki oyunçunu ifadə edən iki fərqli rəngli LED istifadə edərək interaktiv TicTacToe modeli qurmağı hədəfləyir. Buradakı fikir, bunu xiyabanda daha geniş miqyasda həyata keçirmək idi - 3x3 yarı qlobusdan ibarət bir şəbəkə təsəvvür edin (li
RFID RC-522 və Arduino Mega istifadə edərək sadə bir Supermarket Tətbiqi: 6 addım

RFID RC-522 və Arduino Mega-dan istifadə edən sadə bir Supermarket Tətbiqi: Sizi burada başqa bir dərsliyimdə yenidən görmək xoşdur, burada RFID RC-522 və Arduino-dan istifadə edərək sadə bir supermarket tətbiqetməsinin yaradılmasına kömək edəcəyəm. sadə GUI.Not: işləyərkən Arduino serial monitorunu çalıştırmayın