Spisu treści:
- Krok 1: Przegląd
- Krok 2: Czego potrzebujesz / Linki
- Krok 3: Schemat obwodu
- Krok 4: Programowanie - I
- Krok 5: Programowanie - II
- Krok 6: Wideo
![Zastosowanie MCP-23008 przy użyciu interfejsu przekaźnika (I2C):: 6 kroków Zastosowanie MCP-23008 przy użyciu interfejsu przekaźnika (I2C):: 6 kroków](https://i.howwhatproduce.com/images/010/image-28375-j.webp)
Wideo: Zastosowanie MCP-23008 przy użyciu interfejsu przekaźnika (I2C):: 6 kroków
![Wideo: Zastosowanie MCP-23008 przy użyciu interfejsu przekaźnika (I2C):: 6 kroków Wideo: Zastosowanie MCP-23008 przy użyciu interfejsu przekaźnika (I2C):: 6 kroków](https://i.ytimg.com/vi/CgaPKAdRFVw/hqdefault.jpg)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
![Zastosowanie MCP-23008 za pomocą interfejsu przekaźnika (I2C) Zastosowanie MCP-23008 za pomocą interfejsu przekaźnika (I2C)](https://i.howwhatproduce.com/images/010/image-28375-1-j.webp)
dzień dobry
Dobre Pozdrowienia..!!
I (Somanshu Choudhary) w imieniu firmy Dcube tech zamierza kontrolować przekaźniki za pomocą protokołu I2C za pomocą Arduino nano i MCP23008.
Krok 1: Przegląd
![Przegląd Przegląd](https://i.howwhatproduce.com/images/010/image-28375-2-j.webp)
- Urządzenie MCP23X08 zapewnia 8-bitową, równoległą rozbudowę we/wy ogólnego przeznaczenia dla magistrali I2C lub aplikacji SPI.
- MCP23X08 składa się z wielu 8-bitowych rejestrów konfiguracyjnych do wyboru wejścia, wyjścia i polaryzacji. Master systemu może aktywować wejścia/wyjścia jako wejścia lub wyjścia, zapisując bity konfiguracyjne wejścia/wyjścia. Dane dla każdego wejścia lub wyjścia są przechowywane w odpowiednim rejestrze wejścia lub wyjścia. Biegunowość rejestru portu wejściowego może być odwrócona za pomocą rejestru odwrócenia polaryzacji. Wszystkie rejestry mogą być odczytane przez administratora systemu.
- LINK DO KARTY KATALOGOWEJ:
Krok 2: Czego potrzebujesz / Linki
![Czego potrzebujesz / Linki Czego potrzebujesz / Linki](https://i.howwhatproduce.com/images/010/image-28375-3-j.webp)
1. Arduino Nano LINK:
2. Tarcza dla Arduino Nano LINK:
3. Kabel USB typu A do Micro typu B o długości 6 stóp
4. I²C kabel LINK:
5. Osiem przekaźników sterowanych SPDT I²C
6. Łącze adaptera:
Krok 3: Schemat obwodu
![Schemat obwodu Schemat obwodu](https://i.howwhatproduce.com/images/010/image-28375-4-j.webp)
![Schemat obwodu Schemat obwodu](https://i.howwhatproduce.com/images/010/image-28375-5-j.webp)
Krok 4: Programowanie - I
![Programowanie - I Programowanie - I](https://i.howwhatproduce.com/images/010/image-28375-6-j.webp)
![Programowanie - I Programowanie - I](https://i.howwhatproduce.com/images/010/image-28375-7-j.webp)
- W tym kodzie używam paradygmatu programowania funkcji
- Użyłem różnych zakładek do definiowania funkcji i wywoływania funkcji
KOD POD ZAKŁADKĄ q:
// Prosty kod wywołujący funkcję
#include void setup()
{
// adres I2C MCP23008
#define MCP_ADDR 0x20
// Dołącz do magistrali I2C jako master
Wire.początek();
// Rozpocznij komunikację szeregową i ustaw szybkość transmisji
Serial.początek(9600);
// Rozpocznij transmisję z danym urządzeniem na magistrali I2C
Wire.beginTransmission(MCP_ADDR);
// Wybierz rejestr IODIR – I/O DIRECTION REGISTER
Wire.write(0x00);
// Wybierz żądaną operację (wyjście)
Wire.write(0x00);
// Wybierz rejestr KONFIGURACJI
Wire.write(0x05);
// Wybierz żądaną operację
Wire.write(0x0E);
// zakończ transmisję
Wire.endTransmission();
}
pusta pętla()
{
a1_on();
opóźnienie (1000);
a1_off();
opóźnienie (1000);
a2_on();
opóźnienie (1000);
a2_off();
opóźnienie (1000);
a3_on();
opóźnienie (1000);
a3_off();
opóźnienie (1000);
a4_on();
opóźnienie (1000);
a4_off();
opóźnienie (1000);
a5_on();
opóźnienie (1000);
a5_off();
opóźnienie (1000);
a6_on();
opóźnienie (1000);
a6_off();
opóźnienie (1000);
a7_on();
opóźnienie (1000);
a7_off();
opóźnienie (1000);
a8_on();
opóźnienie (1000);
a8_off();
}
KOD POD ZAKŁADKĄ q1:
// Ten kod służy do włączania i wyłączania przekaźnika 1 na pokładzie
nieważne a1_on() {
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x01);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
nieważne a1_off()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
KOD POD ZAKŁADKĄ q2:
// Ten kod służy do włączania i wyłączania przekaźnika 2 na pokładzie
nieważne a2_on() {
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x02);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
nieważne a2_off()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
KOD POD ZAKŁADKĄ q3:// Ten kod służy do włączania i wyłączania przekaźnika 3 na pokładzie
nieważne a3_on()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x04);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
nieważne a3_off()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
Krok 5: Programowanie - II
![Programowanie - II Programowanie - II](https://i.howwhatproduce.com/images/010/image-28375-8-j.webp)
KOD POD ZAKŁADKĄ q4:
// Ten kod służy do włączania i wyłączania przekaźnika 4 na pokładzie
nieważne a4_on()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x08);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
nieważne a4_off()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
KOD POD ZAKŁADKĄ q5:
// Ten kod służy do włączania i wyłączania przekaźnika 5 na pokładzie
nieważne a5_on()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x10);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
nieważne a5_off()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
KOD POD TAB q6:// Ten kod służy do włączania i wyłączania przekaźnika 6 na pokładzie
nieważne a6_on()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x20);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
nieważne a6_off()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
KOD POD TAB q7:// Ten kod służy do włączania i wyłączania przekaźnika 7 na pokładzie
nieważne a7_on() {
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x40);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
nieważne a7_off()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
KOD POD TAB q8: // Ten kod służy do włączania i wyłączania przekaźnika 8 na pokładzie
nieważne a8_on() {
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x80);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
nieważne a8_off()
{
// Rozpocznij transmisję
Wire.beginTransmission(MCP_ADDR);
Wire.write(0x09);
Wire.write(0x00);
opóźnienie(1800);
Wire.requestFrom(MCP_ADDR, 1);
int GPIO = Wire.read();
Wire.endTransmission();
// Wyjście na ekran
Serial.print("Wartość GPIO:");
Serial.println(GPIO, BIN);
}
Krok 6: Wideo
W przypadku dalszych pytań zapraszamy do odwiedzenia naszej strony:
www.dcubetechnologies.com
Zalecana:
Alexa Smart Home System przy użyciu modułu przekaźnika NodeMCU: 10 kroków
![Alexa Smart Home System przy użyciu modułu przekaźnika NodeMCU: 10 kroków Alexa Smart Home System przy użyciu modułu przekaźnika NodeMCU: 10 kroków](https://i.howwhatproduce.com/images/001/image-912-15-j.webp)
Alexa Smart Home System przy użyciu modułu przekaźnika NodeMCU: W tym projekcie IoT stworzyłem system Alexa Smart Home Automation przy użyciu NodeMCU ESP8266 & Moduł przekaźnikowy. Możesz łatwo sterować oświetleniem, wentylatorem i innymi urządzeniami gospodarstwa domowego za pomocą polecenia głosowego. Aby połączyć inteligentny głośnik Echo Dot z
Ręczna gra nożyczek Arduino Paper Rock przy użyciu wyświetlacza LCD 20x4 z I2C: 7 kroków
![Ręczna gra nożyczek Arduino Paper Rock przy użyciu wyświetlacza LCD 20x4 z I2C: 7 kroków Ręczna gra nożyczek Arduino Paper Rock przy użyciu wyświetlacza LCD 20x4 z I2C: 7 kroków](https://i.howwhatproduce.com/images/002/image-4226-14-j.webp)
Przenośna gra Arduino Paper Rock Scissors wykorzystująca wyświetlacz LCD 20x4 z I2C: Witam wszystkich, a może powinienem powiedzieć "Hello World!" Jest to podręczna gra Arduino Paper Rock Scissors wykorzystująca wyświetlacz LCD I2C 20x4. I
Obliczanie wilgotności, ciśnienia i temperatury przy użyciu BME280 i interfejsu fotonowego.: 6 kroków
![Obliczanie wilgotności, ciśnienia i temperatury przy użyciu BME280 i interfejsu fotonowego.: 6 kroków Obliczanie wilgotności, ciśnienia i temperatury przy użyciu BME280 i interfejsu fotonowego.: 6 kroków](https://i.howwhatproduce.com/images/003/image-6140-j.webp)
Obliczanie wilgotności, ciśnienia i temperatury za pomocą BME280 i interfejsu fotonowego.: Natrafiamy na różne projekty, które wymagają monitorowania temperatury, ciśnienia i wilgotności. W ten sposób zdajemy sobie sprawę, że te parametry faktycznie odgrywają kluczową rolę w oszacowaniu wydajności pracy systemu w różnych warunkach atmosferycznych
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
![Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków](https://i.howwhatproduce.com/images/001/image-2825-28-j.webp)
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)
![DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami) DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/003/image-6629-65-j.webp)
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: to moja pierwsza publikacja eva artykułu o majsterkowaniu w Internecie. Więc przepraszam za literówki, protokoły itp. Poniższe instrukcje pokazują, jak zrobić PRACOWĄ lutownicę na gorące powietrze odpowiednią do WSZYSTKICH zastosowań wymagających lutowania. To lutowanie gorącym powietrzem