Cześć,
posiadam siłownik liniowy, który działa na zasadzie zmiennej polaryzacji dlatego też użyłem modułu esp-12f 2 relays, w którym 1 przekaźnik otwiera a drugi zamyka siłownik przez co w aplikacji Supla mam 2 osobne przyciski do 2 przekaźników. Czy jest możliwość scalić 2 przekaźniki w jeden przycisk na zasadzie przesunięcia w prawo - otwieranie- pierwszy przekaźnik, przesunięcia w lewo - zamykanie - drugi przekaźnik.
Pozdr.
Połączenie 2 przekaźników w jeden przycisk w aplikacji
-
kurus
- Posts: 1312
- Joined: Wed Jan 15, 2020 8:17 pm
Niema takiej opcji, jedynie co możesz to ustawić moduł jako roleta i wtedy masz po przeciągnięciu otwórz i zamknij w drugą stronę..
-
Zibi
- Posts: 646
- Joined: Wed Jul 31, 2019 9:20 am
- Location: Białogard
Mógłbyś spróbować dołożyć scalak CD4017 i sterować z jednego przycisku, ale jeśli to ma być sterowanie z apki i przycisku to zostaje tylko napisanie logiki sterowania.
Sekwencja sterowania:
Przycisk siłownik otwiera,
Przycisk Stop
Przycisk siłownik zamyka
Przycisk Stop
Jeśli nie było stopu to wyłącza się po określonym czasie i program czeka na kolejne wciśnięcie i uruchamia siłownik w stronę przeciwną.
Sekwencja sterowania:
Przycisk siłownik otwiera,
Przycisk Stop
Przycisk siłownik zamyka
Przycisk Stop
Jeśli nie było stopu to wyłącza się po określonym czasie i program czeka na kolejne wciśnięcie i uruchamia siłownik w stronę przeciwną.
-
YoMan
- Posts: 3521
- Joined: Thu Apr 30, 2020 5:18 pm
- Location: Częstochowa
- Has thanked: 3 times
- Been thanked: 3 times
przekaźnik NC/NO - wyłączony leci w lewo, załączony leci w prawo (... chyba, że potrzebujesz jeszcze stop ale o tym nie pisałeś)MatLow wrote: Wed Jul 05, 2023 11:12 am Cześć,
posiadam siłownik liniowy, który działa na zasadzie zmiennej polaryzacji dlatego też użyłem modułu esp-12f 2 relays, w którym 1 przekaźnik otwiera a drugi zamyka siłownik przez co w aplikacji Supla mam 2 osobne przyciski do 2 przekaźników. Czy jest możliwość scalić 2 przekaźniki w jeden przycisk na zasadzie przesunięcia w prawo - otwieranie- pierwszy przekaźnik, przesunięcia w lewo - zamykanie - drugi przekaźnik.
Pozdr.
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
________________________________________
Wziąłem udział w SOP2023 & SOP2024
-
MatLow
- Posts: 8
- Joined: Wed Nov 21, 2018 9:42 am
Funkcji "stop" nie potrzebuję. Siłownik ma się otworzyć i zamknąć całkowicie. Obecnie załączenie przekaźnika w supla cloud mam skonfigurowane na kilkadziesiąt sek. W tym czasie siłownik się otwiera/zamyka i jak dojdzie do końca to zasilanie na siłowniku jest odcinane przez krańcówki do pozostałego czasu działania przekaźników.
-
YoMan
- Posts: 3521
- Joined: Thu Apr 30, 2020 5:18 pm
- Location: Częstochowa
- Has thanked: 3 times
- Been thanked: 3 times
Skoro mówisz o zmiennej polaryzacji to zakładam, że mówisz o prądzie stałym (przy zmiennym raczej by były 2 przewody fazowe i neutralny) zatem podłączyłbym dwa przekaźniki równolegle pod jeden pin i podłączył podobnie jak tutaj: viewtopic.php?p=146562#p146562 tylko przy którymś z przekaźników odwrócił polaryzację.MatLow wrote: Wed Jul 05, 2023 2:06 pm Funkcji "stop" nie potrzebuję. Siłownik ma się otworzyć i zamknąć całkowicie. Obecnie załączenie przekaźnika w supla cloud mam skonfigurowane na kilkadziesiąt sek. W tym czasie siłownik się otwiera/zamyka i jak dojdzie do końca to zasilanie na siłowniku jest odcinane przez krańcówki do pozostałego czasu działania przekaźników.
Niestety nie znam się na tyle na elektronice, żeby stwierdzić jednoznacznie czy można tak wprost podłączyć czy też nie trzeba użyć dodatkowego elementu typu tranzystor, optoizolator lub coś innego. Znając swoją naturę pewnie bym podłączył i sprawdził ale może koledzy bardziej obeznani się tutaj wypowiedzą
YoMan
________________________________________
Wziąłem udział w SOP2023 & SOP2024
________________________________________
Wziąłem udział w SOP2023 & SOP2024
-
Zibi
- Posts: 646
- Joined: Wed Jul 31, 2019 9:20 am
- Location: Białogard
Code: Select all
#define PRZEKAZNIK 12
#define PRZEKAZNIK2 13
#define PRZYCISK 5
#include <SuplaDevice.h>
#include <supla/control/roller_shutter.h>
#include <supla/control/button.h>
#include <supla/control/pin_status_led.h>
#include <supla/control/action_trigger.h>
// Choose where Supla should store roller shutter data in persistant memory
// We recommend to use external FRAM memory
#define STORAGE_OFFSET 100
#include <supla/storage/eeprom.h>
Supla::Eeprom eeprom(STORAGE_OFFSET);
// #include <supla/storage/fram_spi.h>
// Supla::FramSpi fram(STORAGE_OFFSET);
#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("XXXX", "XXXXXX");
byte redOn = 0;
byte greenOn = 0;
byte a = 0;
byte b = 0;
unsigned long lastTurnOnTimeStamp;
unsigned long time_shutter = 40000; // Ustaw taki sam czas pracy jak w cloud dla rolet zeby wyzerowala sie zmienna.
bool flaga = false;
auto rs = new Supla::Control::RollerShutter(PRZEKAZNIK, PRZEKAZNIK2, false);
Supla::Control::Button *button_zam = nullptr; //{};
enum default_actions {MOJA_AKCJA};
class addedActionsClass : public Supla::ActionHandler, public Supla::Element {
public: addedActionsClass() {}
void handleAction(int event, int action) {
if (action == MOJA_AKCJA) {
flaga = true;
}
}
};
addedActionsClass *custAct = new addedActionsClass;
void Sterowanie_Rolet() {
// Oba Przekazniki Wylaczone zaczynamy od pierwszego...
if (flaga) {
flaga = false;
if (redOn == 0 && greenOn == 0) {
Serial.println("Przycisk Zamknij");
redOn = 1;
greenOn = 0;
} else if (redOn > 0) {
if (redOn == 1 || redOn == 2) {
redOn = 3;
} else {
Serial.println("Przycisk Otworz");
redOn = 0;
greenOn = 1;
}
} else if (greenOn > 0) {
if (greenOn == 1 || greenOn == 2) {
greenOn = 3;
} else {
greenOn = 0;
redOn = 1;
}
}
}
if (redOn == 1) {
redOn = 2;
a = 0;
Serial.println("Zamknij");
rs->close();
lastTurnOnTimeStamp = millis();
} else if (greenOn == 1) {
greenOn = 2;
b = 0;
Serial.println("Otworz");
rs->open();
lastTurnOnTimeStamp = millis();
}
// gdy minie czas od ostatniego włączenia, to wyłączmy przekazniki
if (millis() - lastTurnOnTimeStamp > time_shutter) {
if (redOn == 2) {
redOn = 3;
}
if (greenOn == 2) {
greenOn = 3;
}
}
if (redOn == 3 && a == 0) {
a = 1;
Serial.println("Zamykanie Stop");
rs->stop();
}
if (greenOn == 3 && b == 0) {
b = 1;
Serial.println("Otwieranie Stop");
rs->stop();
}
}
void setup() {
Serial.begin(115200);
// Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
char GUID[SUPLA_GUID_SIZE] = { };
// Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = { };
button_zam = new Supla::Control::Button(PRZYCISK, true, true);
button_zam->setMulticlickTime(800, false);
button_zam ->addAction(MOJA_AKCJA, custAct, Supla::ON_PRESS);
SuplaDevice.begin(GUID, // Global Unique Identifier
"svrX.supla.org", // SUPLA server address
"@gmail.com", // Email address used to login to Supla Cloud
AUTHKEY); // Authorization key
}
void loop() {
SuplaDevice.iterate();
Sterowanie_Rolet();
}