• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
sterowanie przekaźnikami
#1
Witam,
mam problem ze sterowaniem przekaźnikami. Arduino Uno zlicza implusy w postaci przerwania int0 na pinie 2 i po przekroczeniu progu ma załączyć dwa przekaźniki . Jeden służy do wyłączenia maszyny natomiast drugi zapala lampkę sygnalizującą zatrzymanie. Oba przekażniki sterują napięciem 24V DC . W przerwaniu int1 na pinie 3 resetuję przekażniki aby maszyna ponownie mogła się uruchomić . Problem polega na tym że diody sygnalizujące załączenie przekaźników tylko mrugną w momencie przekroczenia zadanego progu i nie załączają przekaźników. Co dziwne gdy użyję tylko jednego przekaźnika układ działa ok. W czym może być problem? Z góry dziękuję za każde sugestie.
Przekaźniki których użyłem :
https://botland.com.pl/przekazniki/6551-...25vac.html


Kod:
#include <Timers.h>

volatile int licznik =0;
volatile int prog =4;

Timers<1>akcja;

void setup() {
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(3, INPUT_PULLUP);
 digitalWrite(4,LOW);
 digitalWrite(5,LOW);
 pinMode(2, INPUT_PULLUP);
 attachInterrupt(0,przycisk,FALLING);
 attachInterrupt(1,reset,FALLING);
 akcja.attach(0,5000,zapis);

}

void loop() {
akcja.process();

}

void reset()
{
 digitalWrite(4,LOW);
 digitalWrite(5,LOW);
}
void zapis()
{
 Serial.println(licznik);
 if(licznik>=prog)
 {
     digitalWrite(4, HIGH);
     digitalWrite(5, HIGH);
 }
 licznik=0;
}

void przycisk()
{
  static unsigned long lastTime;
 unsigned long timeNow = millis();
 
 if (timeNow - lastTime < 25)
   return;
  licznik++;
  lastTime = timeNow;
}
 
 
Odpowiedź
#2
A jak zasilasz cewki przekaźników? Nie jest tak że jak załączasz oba na raz to napięcie klęka, resetuje się Arduino i program zaczyna lecieć od początku? Poprawność programu można sprawdzić samymi ledami zamiast przekaźników, jak inaczej działa po podłączeniu innego obciążenia to już elektryka. Najlepiej inne źródło zasilania niż arduino, mozna dodać duży kondensator, można dodać opóźnienie załączenia drugiego przekaźnika, one tak jak silniki przy rozruchu biorą X razy więcej prądu niż podczas podtrzymania stanu. Można sprawdzić czy Arduino się resetuje - na czas testów zamiast zerować licznik wywoływać tę część za każdym razem gdy (licznik%prog==0) i wyrzucać jego wartość na terminal Arduino.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości