Мазмұны:
- 1 -қадам: Шолу
- 2 -қадам: Сізге не қажет / сілтемелер
- 3 -қадам: схема
- 4 -қадам: Бағдарламалау - И
- 5 -қадам: Бағдарламалау - II
- 6 -қадам: бейне
Бейне: MCP-23008 релелік интерфейсті қолдану (I2C) :: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Сәлеметсіз бе
Жақсы сәлем.. !!
Мен (Соманшу Чоудхари) Dcube технологиялық кәсіпорындары атынан Arduino нано мен MCP23008 көмегімен I2C протоколы арқылы релені басқаратын боламын.
1 -қадам: Шолу
- MCP23X08 құрылғысы I2C шинасы немесе SPI қосымшалары үшін 8-разрядты, жалпы мақсатты, параллель енгізу-шығаруды кеңейтуді қамтамасыз етеді.
- MCP23X08 кіріс, шығыс және полярлықты таңдауға арналған бірнеше 8 биттік конфигурация регистрлерінен тұрады. Жүйелік мастер енгізу -шығару конфигурациясының биттерін жазу арқылы енгізу -шығару қызметін кіріс немесе шығыс ретінде қосуы мүмкін. Әр кіріс немесе шығыс бойынша деректер сәйкес Кіріс немесе Шығу регистрінде сақталады. Кіріс порты регистрінің полярлығын Polarity Inversion регистрінің көмегімен төңкеруге болады. Барлық регистрлерді жүйе шебері оқи алады.
- Деректер парағының сілтемесі:
2 -қадам: Сізге не қажет / сілтемелер
1. Arduino Nano LINK:
2. Arduino Nano LINK үшін қалқан:
3. USB кабелі А түрінен В түріне дейін 6 фут
4. I²C кабелінің сілтемесі:
5. SPDT I²C басқарылатын сегіз реле
6. Сілтеме адаптері:
3 -қадам: схема
4 -қадам: Бағдарламалау - И
- Бұл кодта мен функционалды бағдарламалау парадигмасын қолданамын
- Мен функцияларды анықтау және шақыру үшін әр түрлі қойындыларды қолдандым
Кесте астындағы код q:
// Қарапайым функцияны шақыру коды
#жарамсыз орнатуды қосыңыз ()
{
// MCP23008 I2C мекенжайы
#MCP_ADDR 0x20 анықтаңыз
// I2C Bus -ке мастер ретінде қосылыңыз
Wire.begin ();
// Сериялық байланысты бастаңыз және беру жылдамдығын орнатыңыз
Serial.begin (9600);
// Беруді I2C шинасында берілген құрылғымен бастаңыз
Wire.beginTransmission (MCP_ADDR);
// IODIR - I/O DIRECTION REGISTER регистрін таңдаңыз
Wire.write (0x00);
// Қажетті әрекетті таңдаңыз (шығыс)
Wire.write (0x00);
// Конфигурация регистрін таңдаңыз
Wire.write (0x05);
// Қажетті әрекетті таңдаңыз
Wire.write (0x0E);
// таратуды аяқтау
Wire.endTransmission ();
}
бос цикл ()
{
a1_on ();
кешіктіру (1000);
a1_off ();
кешіктіру (1000);
a2_on ();
кешіктіру (1000);
a2_off ();
кешіктіру (1000);
a3_on ();
кешіктіру (1000);
a3_off ();
кешіктіру (1000);
a4_on ();
кешіктіру (1000);
a4_off ();
кешіктіру (1000);
a5_on ();
кешіктіру (1000);
a5_off ();
кешіктіру (1000);
a6_on ();
кешіктіру (1000);
a6_off ();
кешіктіру (1000);
a7_on ();
кешіктіру (1000);
a7_off ();
кешіктіру (1000);
a8_on ();
кешіктіру (1000);
a8_off ();
}
Q1 кестесінің астындағы код:
// Бұл код бортта 1 -релені қосу және өшіру болып табылады
жарамсыз a1_on () {
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
a1_off жарамсыз ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
Q2 кестесінің астындағы код:
// Бұл код борттағы 2 -релелік қосуға және өшіруге арналған
жарамсыз a2_on () {
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
жарамсыз a2_off ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
Q3 кестесінің астындағы КОД: // Бұл код бортта 3 -релені қосу және өшіру болып табылады
a3_on () жарамсыз
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
жарамсыз a3_off ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
5 -қадам: Бағдарламалау - II
Q4 кестесінің астындағы код:
// Бұл код 4 -реле бортында қосылады және өшіріледі
жарамсыз a4_on ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
жарамсыз a4_off ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
Q5 кестесінің астындағы код:
// Бұл код - бортта 5 -релелік қосу және өшіру
жарамсыз a5_on ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
жарамсыз a5_off ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
Q6 кестесінің астындағы КОД: // Бұл код бортта 6 -релені қосу және өшіру болып табылады
жарамсыз a6_on ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
жарамсыз a6_off ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
Q7 кестесінің астындағы КОД: // Бұл код бортта 7 релесін қосу және өшіру болып табылады
void a7_on () {
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
жарамсыз a7_off ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
Q8 кестесінің астындағы КОД: // Бұл код бортта 8 релесін қосу және өшіру болып табылады
жарамсыз a8_on () {
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
жарамсыз a8_off ()
{
// Таратуды бастаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кешіктіру (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранға шығару
Serial.print («GPIO мәні:»);
Serial.println (GPIO, BIN);
}
6 -қадам: бейне
Қосымша сұрақтар бойынша біздің сайтқа кіруге болады:
www.dcubetechnologies.com
Ұсынылған:
I2C дисплейі бар RFID Arduino Uno релелік қосқышы: 4 қадам
I2C дисплейі бар RFID Arduino Uno релелік қосқышы: Сәлеметсіз бе, бұл менің алғашқы жобам, менің атым Оскар, мен 13 жастамын. Бұл жоба қалыпты емес, I2C дисплейімен жұмыс істейді
NodeMCU релелік модулін қолданатын Alexa Smart Home жүйесі: 10 қадам
NodeMCU релелік модулін қолданатын Alexa Smart Home жүйесі: Бұл IoT жобасында мен NodeMCU ESP8266 көмегімен Alexa Smart Home Automation жүйесін жасадым. Реле модулі. Дауыстық пәрменмен шамды, желдеткішті және басқа тұрмыстық техниканы оңай басқаруға болады. Echo Dot ақылды динамигін қосу үшін
Arduino негізіндегі дауыспен басқарылатын IOT релелік қосқышы (Google Home және Alexa қолдауымен): 11 қадам
Arduino негізіндегі дауысты басқарылатын IOT релелік қосқышы (Google Home және Alexa қолдауымен): Бұл жоба Arduino негізіндегі, дауыспен басқарылатын IOT реле қосқышын қалай жасау керектігін сипаттайды. Бұл реле, сіз iOS және Android үшін қосымшаны пайдаланып қашықтан қосуға немесе өшіруге, сонымен қатар оны IFTTT -ге байланыстыруға және Goog көмегімен дауыспен басқаруға болады
Tinkercad -тегі Arduino -мен интерфейсті LCD: 5 қадам
Tinkercad -тегі Arduino -мен интерфейсті LCD: Бұл мақаладағы код Hitachi HD44780 стандартты драйверін қолданатын СК -ге арналған. Егер сіздің СКД -де 16 түйреуіш болса, онда Hitachi HD44780 драйвері болуы мүмкін. Бұл дисплейлерді 4 биттік немесе 8 биттік режимде қосуға болады. СКД 4 сыммен қосылады
Nodemcu үшін интерфейсті LCD 20X4 дисплейі: 3 қадам
Nodemcu -ға 20X4 дисплейлі дисплей: Мен бұны бұрынғы тапсырмада қиындықтарға тап болғандықтан бөлісуге шешім қабылдадым, мен Nodemcu -мен графикалық (128x64) СКД интерфейсін қолдануға тырыстым, бірақ нәтиже бермеді. Менің ойымша, бұл кітапханаға қатысты болуы керек (графикаға арналған кітапхана