Spisu treści:

Przekaźnik I2C z Arduino IDE: 5 kroków
Przekaźnik I2C z Arduino IDE: 5 kroków

Wideo: Przekaźnik I2C z Arduino IDE: 5 kroków

Wideo: Przekaźnik I2C z Arduino IDE: 5 kroków
Wideo: [Arduino] #5 - Wyświetlacz LCD i moduł I2C 2024, Listopad
Anonim
Przekaźnik I2C z Arduino IDE
Przekaźnik I2C z Arduino IDE

Zamawiam ładną płytkę przekaźnikową, ale nie było instrukcji ArduinoIDE, tylko Raspberry Pi e.o. Dowiaduję się, jak go używać z Arduino i chcę się nim podzielić, abyś mógł zaoszczędzić ten czas.

Oryginalny przykład RaspberryPi:

wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099

Fajną rzeczą jest to, że możesz ułożyć do 4 plansz. Możesz więc użyć max. 4 x 4 = 16 przekaźników na jednej magistrali I2C.

Istnieją również pewne wady:

  • małe końcówki, nie pasują do przewodu 1 mm2
  • nie można zmienić okablowania dolnych złączy, gdy są ułożone razem

Ale wciąż poręczna deska.

Krok 1: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie

Na zdjęciach widać okablowanie.

52Pi potrzebuje zarówno 5V (dla przekaźnika), jak i 3.3V (układ I2C).

Potrzebne są więc 5 przewodów:

  • GND do GND
  • 5 V do 5 V
  • 3,3 V do 3,3 V
  • SLA do SLA
  • SCL do SCL

Jeśli używasz Arduino UNO lub innego 5 V, uważaj na maks. 3,6 V z kontrolera I2C! Użyj rezystorów lub obniż napięcie 5 V z pinów Arduino!

Krok 2: Prosty przykład kodu:

/* Przykład Arduino IDE (ESP) dla przekaźnika I2C.

* By Laurens Korste www.boktorrobotica.nl * bezpłatnie. */ #include // dla komunikacji I2C void setup() { // ta reguła nie dotyczy UNO lub płyt z dedykowanymi pinami I2C Wire.begin(D1, D2); // dołącz do magistrali i2c z SDA=D1 i SCL=D2 dla NodeMCU } void loop() { Wire.beginTransmission(0x10);/* rozpocznij transmisję na adres I2C 10 (aby zmienić również na 11, 12 lub 13) */ Wire.zapis (0x01); /* wybór przekaźnika 1 (z 4) na płytce 10 (również 0x02, 0x03, 0x04) */ Wire.write(0xFF); /* ustaw przekaźnik 1 na płycie 10 na ON. zrobią to wszystkie liczby > 0 */ Wire.endTransmission(); /* zatrzymaj transmisję */ delay(3000); Wire.beginTransmission(0x10); /* */ Wire.write(0x01); Wire.write(0x00); /* ustaw przekaźnik 1 na płycie 10 na OFF */ Wire.endTransmission(); /* zatrzymaj transmisję */ delay(3000); }

Krok 3: Kod testu czterech przekaźników

/* szkic Laurensa Korste dla Arduino (ESP / NodeMCU)

* Ale inne płyty również to zrobią * www.boktorrobotica.nl * W tym skeych al 4 przekaźniki zostaną aktywowane i dezaktywowane */ #include // dla komunikacji I2C void setup() { Serial.begin(115200); // rozpocznij serial do debugowania (9600 dla UNO) Wire.begin(D1, D2); // dołącz do magistrali i2c z SDA=D1 i SCL=D2 NodeMCU nie ma potrzeby używania UNO } void loop() { for (int i=1; i<=4; i++){ Wire.beginTransmission(0x10); // zacznij od adresu urządzenia Wire.write(i); // wybór relais Wire.write(0xFF); // wyślij kod "on" FF (wystarczy każde zliczenie od 01 do FF) Wire.endTransmission(); // zatrzymaj przesyłanie Serial.write(i); Serial.println("aan"); opóźnienie (1000); Wire.beginTransmission(0x10); // zacznij od adresu urządzenia Wire.write(i); Wire.write(0x00); // Wyślij kod "off" Wire.endTransmission(); // zatrzymaj przesyłanie Serial.write(i); Serial.println("uit"); opóźnienie (1000); } }

Krok 4: Mój projekt

Mój projekt
Mój projekt
Mój projekt
Mój projekt

Napisałem kod do obsługi moich 3 rolet. Można to zrobić za pomocą przełączników, ale także za pomocą aplikacji BLYNK, patrz zdjęcie.

  • Jedno krótkie naciśnięcie uruchomi jedną migawkę (lub zatrzyma ją, gdy się porusza).
  • Jedno długie naciśnięcie i wszystkie trzy żaluzje otwierają się (lub zamykają lub zatrzymują się).
  • Podwójny nacisk: żaluzje przechodzą do pozycji „otwory”.

Jak widać na zdjęciu zintegrowałem też czujnik temperatury i światła.

Teraz wszystko na dobrej płytce bazowej i schludnie w pudełku.

Krok 5: Wywołaj przekaźnik jednym poleceniem

Jest to przydatne, gdy potrzebujesz tylko jednego polecenia do aktywacji lub dezaktywacji przekaźnika. Poniżej znajduje się funkcja, która może to zrobić (z lowbyte i highbyte).

/* szkic Laurensa Korste dla Arduino (ESP / NodeMCU) z płytą przekaźnikową I2C * Ale inne płyty również to zrobią * href= https://www.boktorrobotica.nl; www.boktorrobotica.nl * https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SKU:_EP-0099;www.boktorrobotica.nl * W tym szkicu przekaźnik zostanie aktywowany jednym wywołaniem; *// #include // dla komunikacji I2C // Deklaracja przekaźników 4 PCB Możliwe 4 przekaźniki. W tym szkicu tylko dwie PCB // PCB i przekaźniki są połączone tak, że można je wywołać jednym poleceniem const byte PutOn=0xFF;//polecenie włączenia const byte PutOff=0x00;//polecenie wyłączenia const word Relay1bord1=0x1001;//można zmienić losowanie nazw na przykładzie Relay1 const word Relay2bord1=0x1002;//można zmienić losowanie nazw na przykładzie Relay2 const word Relay3bord1=0x1003;//można zmienić losowanie nazw na przykładzie Relay3 const word Relay4bord1=0x1004;//możesz zmienić losowanie nazw na przykładzie Relay4 const word Relay1bord2=0x1101;//możesz zmienić losowanie nazw na przykładzie Relay5 const w or Relay2bord2=0x1102; //możesz zmienić nazwy na przykład Relay6 const word Relay3bord2=0x1103; //możesz zaryzykować nazwy na przykład Relay7 const word Relay4bord2=0x1104; //możesz zmienić nazwy na przykład Relay8 const word Relay1bord3=0x1201; //możesz zaryzykować nazwy na przykład Relay9 const word Relay2bord4=0x1302; //możesz zaryzykować nazwy na przykład Relay14 void setup() { Serial.begin(115200); // rozpocznij serial do debugowania (9600 dla UNO) Wire.begin(D1, D2); // dołączanie do magistrali i2c z SDA=D1 i SCL=D2 NodeMCU nie ma potrzeby używania UNO } void loop() { // aby przełączyć przekaźnik 4 na PCB 2 na RelayActie(Relay4bord2, PutOn); opóźnienie (1000); // aby wyłączyć przekaźnik 4 na PCB 2 RelayActie(Relay4bord2, PutOff); opóźnienie (1000); } void RelayActie(word Relay, byte OnOrOff){ Wire.beginTransmission (highByte(Relay)); Wire.write (lowByte(Przekaźnik)); Wire.write (OnOrOff); Wire.endTransmission(); }

Zalecana: