Skocz do zawartości

Moduł przekaźnika wariuje po podpięciu zasilania


maciejunio

Pomocna odpowiedź

Cześć.

Buduje system automatycznego nawadniania i aktualnie utknąłem na przełącznikach i pompkach. Poniżej mój kod:

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

int pomiar = 0;
int RelayPinSix = 6;
int RelayPinSeven = 7;



void setup() {
  Serial.begin(115200);
  pinMode(RelayPinSix, OUTPUT);
  pinMode(RelayPinSeven, OUTPUT);
  digitalWrite(RelayPinSix, LOW);
  digitalWrite(RelayPinSeven, LOW);
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;); // Don't proceed, loop forever
  }
   display.clearDisplay();
}

void loop() {
  runPompOne();

  runPompTwo();
}


void runPompOne() {
  digitalWrite(RelayPinSix, HIGH);
  Serial.println("6 high");
  displayText("Pompa1:ON");
  delay(5000);
  digitalWrite(RelayPinSix, LOW);
  displayText("Pompa1:OFF");
  delay(1000);

}

void runPompTwo() {
  digitalWrite(RelayPinSeven, HIGH);
  displayText("Pompa2:ON");
  delay(5000);
  digitalWrite(RelayPinSeven, LOW);
  displayText("Pompa2:OFF");
  delay(1000);
}

void displayText(String textToDisplay) {
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.println(textToDisplay);
  display.display();
  delay(100);
}

Całość działa okej do momentu podpięcia zasilania do pomp. Poniżej wstawiam link do filmiku:

https://drive.google.com/file/d/1r1L5Xv1-255oMOb5-lWkz-k8uS0JhB7_/view?usp=sharing

 

W przypadku gdy przekaźnik steruje tylko jedna pompą całość działa okej.

Edytowano przez maciejunio
  • Lubię! 1
Link do komentarza
Share on other sites

Wywal zworkę z płytki przekaźników, zasil z osobnego zasilacza część przełączająca przekaźniki - zasilanie cewek, z płytki arduino ma dochodzić tylko sygnał na IN1, IN2, IN3, IN4 i przeciwny im biegun, czyli jak załączasz stanem niskim to VCC, albo odwrotnie.

Sygnały z Arduino mają zapalać ledy, te które  widzisz i te wewnątrz optoizolatorów, to wystarczy do sterowania. Dzięki temu płytka będzie oddzielona galwanicznie.

Jak to nie pomoże na zakłócenia to ewentualnie dodatkowo gasiki na przekaźniki RC, https://www.elektroda.pl/rtvforum/topic3978111.html.

  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.