Arduino Polska Forum

Pełna wersja: Zapamietywanie stanu switcha
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.

Mam switch UP-down do multiefektu MIDI Smile
24 kanały, przerzucane dwoma nożnymi switchami.
Chciałbym aby po rozłączeniu i ponownym podłączeniu zasilacza do switcha pamiętał od jakiego kanału startować..tzn ana którym skończył.

Ma ktoś jakieś pomysły?
Dla uściślenia: chcesz zapamiętać stan kanału po odłączeniu zasilania od Arduino?
(03-11-2017, 12:01)krn78 napisał(a): [ -> ]Dla uściślenia: chcesz zapamiętać stan kanału po odłączeniu zasilania od Arduino?

Tak Wink
Dodaj sobie bibliotekę EEPROM.

#include <EEPROM.h>

W miejscu zmiany kanału, trzeba napisać kawałek kodu, który będzie zapisywał tą zmianę do pamięci.
Na przykład tak:


Kod:
      if(zmiana kanału){
           Nr_K1 = ((Nr_K/10)%10);
           Nr_K2 = ((Nr_K/1)%10);
           EEPROM.write(0,Nr_K1);
           EEPROM.write(1,Nr_K2);
           }
         }

Gdzie:
Nr_K, to zmienna przechowująca numer kanału.
Nr_K1 i Nr_K2, to zmienne przechowujące pierwszą i drugą cyfrę liczby Nr_K. 
Do eeprom zapisujemy pojedyncze bity. Bit pierwszy przechowuje część dziesiętną, a drugi jedności.

W miejscu gdzie inicjujesz zmienną z numerem kanału, możesz przypisać jej wartość odczytaną z pamięci.
Odczyt z eeprom może wyglądać tak:

Kod:
 Nr_K = ((EEPROM.read(0))*10)+EEPROM.read(1);
Czytamy pierwszy bit, a że jest to część dziesiętna, to mnożymy go przez dziesięć i dodajemy jedności odczytane z bitu drugiego.
niestety....zbytnim nowicjuszem jestem ,żeby to dopasować do mojego kodu... Sad
Wrzuć tu, co już napisałeś, to Ci pomogę.
Tylko pamiętaj o komentarzach, bo nie chce mi się odgadywać która zmienna do czego służy.
(03-11-2017, 12:01)krn78 napisał(a): [ -> ]Dla uściślenia: chcesz zapamiętać stan kanału po odłączeniu zasilania od Arduino?

Hej znasz się co nie co na EEPROM-ie? Wink
Coś tam wymyśliłem...ale działa połowicznie Wink


https://pastebin.com/DFfwikN8

Switch UP/DOWN, +wyswietlacz 2 cyfry.

MIDI SET 0-23 co daje w realu 1-24 kanałyWink



Na kanale 1-szym po wył/wł. wyświetla 25...a na 24 po wył./wł wyświetla ....99...
Na innych kanałach zapisuje i włącza się na tym kanale Wink
HELPWink
Nikt nic......? Sad