İçindekiler:

MCP-23008'in Röle Arayüzü (I2C) Kullanılarak Uygulanması:: 6 Adım
MCP-23008'in Röle Arayüzü (I2C) Kullanılarak Uygulanması:: 6 Adım

Video: MCP-23008'in Röle Arayüzü (I2C) Kullanılarak Uygulanması:: 6 Adım

Video: MCP-23008'in Röle Arayüzü (I2C) Kullanılarak Uygulanması:: 6 Adım
Video: I2C Relay Board 8-Channel using MCP23008 2024, Temmuz
Anonim
MCP-23008'in Röle Arayüzü (I2C) Kullanılarak Uygulanması
MCP-23008'in Röle Arayüzü (I2C) Kullanılarak Uygulanması

Merhaba

Selamlar..!!

Dcube teknoloji girişimleri adına ben (Somanshu Choudhary), Arduino nano ve MCP23008 kullanarak I2C protokolü aracılığıyla Röleleri kontrol edeceğim.

1. Adım: Genel Bakış

genel bakış
genel bakış
  • MCP23X08 cihazı, I2C veri yolu veya SPI uygulamaları için 8 bit, genel amaçlı, paralel G/Ç genişletmesi sağlar.
  • MCP23X08, giriş, çıkış ve polarite seçimi için çoklu 8 bitlik konfigürasyon kayıtlarından oluşur. Sistem yöneticisi, G/Ç yapılandırma bitlerini yazarak G/Ç'leri giriş veya çıkış olarak etkinleştirebilir. Her giriş veya çıkış için veriler, karşılık gelen Giriş veya Çıkış kaydında tutulur. Giriş Port kaydının polaritesi, Polarite Ters Çevirme kaydı ile tersine çevrilebilir. Tüm kayıtlar sistem yöneticisi tarafından okunabilir.
  • VERİ SAYFASI BAĞLANTISI:

Adım 2: İhtiyacınız Olan Şeyler / Bağlantılar

İhtiyacınız Olan / Bağlantılar
İhtiyacınız Olan / Bağlantılar

1. Arduino Nano BAĞLANTISI:

2. Arduino Nano BAĞLANTISI için Kalkan:

3. USB Kablo Tip A'dan Mikro Tip B'ye 6 Feet Uzunluk

4. I²C Kablo BAĞLANTISI:

5. Sekiz SPDT I²C Kontrollü Röle

6. Adaptör BAĞLANTISI:

Adım 3: Devre Şeması

Devre şeması
Devre şeması
Devre şeması
Devre şeması

Adım 4: Programlama - I

Programlama - I
Programlama - I
Programlama - I
Programlama - I
  • Bu kodda Fonksiyon Programlama Paradigmasını kullanıyorum
  • İşlev tanımı ve işlev çağrısı için farklı sekmeler kullandım

SEKME ALTINDAKİ KOD q:

// Basit fonksiyon çağırma kodu

#include void kurulumu()

{

// MCP23008'in I2C adresi

#define MCP_ADDR 0x20

// I2C Bus'a master olarak katıl

Wire.begin();

// Seri iletişimi başlat ve baud hızını ayarla

Seri.başla(9600);

// I2C veriyolunda verilen cihazla iletimi başlat

Wire.beginTransmission(MCP_ADDR);

// IODIR – G/Ç YÖNÜ KAYIT kaydını seçin

Wire.write(0x00);

// Gerekli işlemi seçin (çıktı)

Wire.write(0x00);

// YAPILANDIRMA kaydını seçin

Wire.write(0x05);

// Gerekli işlemi seçin

Wire.write(0x0E);

// iletimi sonlandır

Wire.endTransmission();

}

boşluk döngüsü()

{

a1_on();

gecikme(1000);

a1_off();

gecikme(1000);

a2_on();

gecikme(1000);

a2_off();

gecikme(1000);

a3_on();

gecikme(1000);

a3_off();

gecikme(1000);

a4_on();

gecikme(1000);

a4_off();

gecikme(1000);

a5_on();

gecikme(1000);

a5_off();

gecikme(1000);

a6_on();

gecikme(1000);

a6_off();

gecikme(1000);

a7_on();

gecikme(1000);

a7_off();

gecikme(1000);

a8_on();

gecikme(1000);

a8_off();

}

SEKME ALTINDAKİ KOD q1:

// Bu kod, gemide röle 1'i açıp kapatmak içindir.

geçersiz a1_on() {

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x01);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

geçersiz a1_off()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

SEKME ALTINDAKİ KOD q2:

// Bu kod, gemide röle 2'yi açıp kapatmak içindir.

geçersiz a2_on() {

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x02);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

geçersiz a2_off()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

SEKMESİ ALTINDAKİ KOD q3:// Bu kod, gemideki röle 3'ü açıp kapatmak içindir.

geçersiz a3_on()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x04);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

geçersiz a3_off()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

Adım 5: Programlama - II

Programlama - II
Programlama - II

SEKME ALTINDAKİ KOD q4:

// Bu kod, gemide röle 4'ü açıp kapatmak içindir

geçersiz a4_on()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x08);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

geçersiz a4_off()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

SEKME q5 ALTINDAKİ KOD:

// Bu kod, gemide röle 5'i açıp kapatmak içindir

geçersiz a5_on()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x10);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

geçersiz a5_off()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

SEKME ALTINDAKİ KOD q6:// Bu kod, gemideki röle 6'yı açıp kapatmak içindir

geçersiz a6_on()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x20);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

geçersiz a6_off()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

SEKME ALTINDAKİ KOD q7:// Bu kod, gemide 7 numaralı röleyi açıp kapatmak içindir

geçersiz a7_on() {

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x40);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

geçersiz a7_off()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

SEKMESİ ALTINDAKİ KOD q8:// Bu kod, gemide röle 8'i açıp kapatmak içindir

void a8_on() {

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x80);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

geçersiz a8_off()

{

// İletimi başlat

Wire.beginTransmission(MCP_ADDR);

Wire.write(0x09);

Wire.write(0x00);

gecikme(1800);

Wire.requestFrom(MCP_ADDR, 1);

int GPIO = Wire.read();

Wire.endTransmission();

// Ekrana çıktı

Serial.print("GPIO değeri:");

Seri.println(GPIO, BIN);

}

6. Adım: Video

Daha fazla bilgi için sitemizi ziyaret etmekten çekinmeyin:

www.dcubetechnologies.com

Önerilen: