Arduino Polska Forum

Pełna wersja: Sterowanie sekwencyjne przekaźnikami
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam serdecznie.
Chciałbym przez Arduino UNO sterować sekwencyjnie w zadanym jednym czasie 12 przekaźnikami poprzez magistralę I2C i Expandery. Przejrzałem już chyba wszystko co możliwe we wszelkich poradnikach i na YT i wszędzie są urządzenia i kody do urządzeń z przekaźnikami uruchamianymi albo jakimiś czujnikami, albo po BT lub przyciskami. Mnie chodzi o taki kod, by jednym uruchomieniem wyzwolił czas załóżmy 3min w którym ustawię rożne czasy załączania i wyłączania z osobna każdego z 12 przekaźników.
Czy jest to możliwe? A najlepiej jeszcze by ten czas (przykładowe 3min) zmieniać dla każdego wejścia Arduino, np. in1-3min, in2-5min, in3-9min.

Posiadam Arduino UNO, Expandery PCF8574 i plytkę z 12 przekaźnikami optoizolowanymi.

Z góry dziękuję za wszelkie podpowiedzi i pomoc.
Jest możliwe, trzeba przejść kurs Arduino, jak go zrozumiesz włączenie z obsługą millis lub innym nieblokującym sposobem na obsługę czasu, to obsługa PCF8574 (opcjonalnie, bo nie jest potrzebny). Parametry do Arduino najprościej przesłać przez terminal, może być po kablu, może być przez BT z terminala na Androidzie. Wysyłasz linijkę tekstu np. AT:600,340,234,3432,34 i masz przesłany czas działania 6 przekaźników co do sekundy. Arduino musi zauważyć przesłany tekst o początku "AT:" i zignorować każdy inny, z pozostałego tekstu wyłowić liczby i przypisać je do zmiennych (proste, bo są całkowite i rozdzielone przecinkami, może być ;@%$ itp.), potwierdzić odbiór komunikatu i ewentualnie wypisać wartości wszystkich zmiennych by wizualnie to skontrolować. To nazywa się parsowanie tekstu.
Do 12 przekaźników nie potrzebujesz ekspandera, na UNO jest 14 pinów cyfrowych (-2 dla UART) i 6 analogowych/cyfrowych. Zostanie jeszcze parę wolnych by całość zrobić alternatywnie na menu obsługiwanym przyciskami (jeden pin na analogu dla przycisków), 2 z I2C do ekranu LCD).