Arduino Polska Forum
Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: "Projekt Arduino Polska" (https://forum.arduinopolska.pl/dzial-projekt-arduino-polska)
+--- Dział: Arduino dla domu (https://forum.arduinopolska.pl/dzial-arduino-dla-domu)
+--- Wątek: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. (/watek-arduino-zabezpieczenie-pompy-przed-zbyt-cz%C4%99stym-w%C5%82%C4%85czaniem-si%C4%99)

Strony: 1 2 3 4


RE: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - brumbrys - 30-08-2018

Polecam ten przekaźnik https://www.ebay.com/itm/30A-5V-12V-24V-1-Channel-Relay-Module-Board-With-Optocoupler-H-L-Level-Triger-/322273694679?var=&hash=item4b090253d7

styki trzymają nawet przy 3.3V ale lepiej dopasować rezystor przy optoizolatorze lub sterować moduł przez dodatkowy układ tranzystorowy


RE: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - es2 - 30-08-2018

(30-08-2018, 21:13)brumbrys napisał(a): styki trzymają nawet przy 3.3V

Jeden trzyma inny nie. Co na to producent? Co napisał w nocie katalogowej?
Kolejny problem, to 3,3V - spadek na driverze. Jaki to driver? Jak na bipolarnych, to 3,3V - dopuszczalne 10% - max spadek na driverze i przekaźnik na 5V niekoniecznie musi zadziałać. Jestem nawet przekonany, bez czytania not katalogowych, że tak będzie.

Takie porady, to czysta amatorszczyzna w rodzaju: "Całe życie przechodzę przez przejścia dla pieszych na czerwonym świetle i nic mi się nie stało".


RE: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - Robson Kerman - 30-08-2018

Transoptor, tak jak napisał es2, to jedyny prawilny wybór. To tak jakby porównać dorożkę z taksówką. Lepsze musi zdominować.
Po drugie, to te moduły przekaźnikowe dla Arduino faktycznie nie lubią być sterowane 3.3V
Jeden działa, drugi nie. Pewnie zależy od tolerancji elementów pasywnych.


RE: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - es2 - 02-09-2018

(04-02-2018, 20:08)kaczakat napisał(a): Pin 2 jest o tyle wygodny, że może być wykorzystane zewnętrzne przerwanie

W Mega328 (była mowa o UNO i NANO) KAŻDY pin GPIO może generować przerwanie.


RE: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - kaczakat - 02-09-2018

Dla Arduino UNO są tylko na pinach 2 i 3. Jak Pan może polecić jakąś "arduinową" funkcję/bibliotekę do PCINT to proszę od razu wrzucać i opisać jakie są ograniczenia, bo to nie jest taki sam mechanizm.


RE: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - Robson Kerman - 02-09-2018

Właśnie piszę o tym w tym wątku Przerwania od wszystkich pinów.
Mam już gotową bibliotekę, więc w ciągu tygodnia będzie udostępniona.
Działa jak normalna funkcja AttachInterrupts, z tą różnicą, że na każdym pinie.
Jak są jakieś opóźnienia, to pewnie jest kwestia kilku cykli zegarowych, niezauważalne.


RE: Arduino zabezpieczenie pompy przed zbyt częstym włączaniem się. - es2 - 02-09-2018

(02-09-2018, 12:36)kaczakat napisał(a): Dla Arduino UNO są tylko na pinach 2 i 3. Jak Pan może polecić jakąś "arduinową" funkcję/bibliotekę do PCINT to proszę od razu wrzucać i opisać jakie są ograniczenia, bo to nie jest taki sam mechanizm.

Gotowej biblioteki nie znam, nie będę szukał, bo dla mnie praktycznie wszystko co Arduinowe jest złe. Zresztą, po co biblioteka dla kilu linijek kodu? Mogę dać gotowce na "normalne" AVR, Mega328 nie używam, bo prawie do niczego sensownego się nie nadaje. Podążając za nota katalogową:
W PCICR ustawiamy zezwolenie na przerwania od grupy GPIO (PCIE2, PCIE1, PCIE0)
W PCMSK0, PCMSK1, PCMSK2 ustawiamy maskę GPIO, które mają wywołać przerwanie.
Deklarujemy wektor przerwania
Kod:
ISR( PCINT0_vect )
{

}

i/lub PCINT1_vect, PCINT2_vect

Przerwanie takie reaguje na oba zbocza i jeśli jest więcej niz jedno GPIO trzeba programowo określić, które wejscie wywołało przerwanie ewentualnie, które zbocze.

Ot i cała filozofia. Używałem tego bardzo często, naturalnie należy zapomnieć (jeśli chcemy określać zbocze czy nr wejścia a impuls przerwania jest krótki) o zawieszaniu przerwań na zbyt długi czas (jak to robi "genialna" biblioteki onewire i podobne, jakby nie można do tego użyć USART).