Skocz do zawartości

Klon Arduino NANO - program przestaje działać


betonowy

Pomocna odpowiedź

Cześć, mam prosty program na arduino nano - wpisujemy w klawiaturę kod ( klawiatura 4x3, keypad.h), jeśli jest poprawny,  zmienia stan na przekaźniku i wyłącza elektromagnes, jeśli nie, nic się nie dzieje. Dodatkowo reset wpisanego hasła za pomocą '*'. Otóż program po prostu przestaje działać w losowym momencie, nie pomaga reset ani wyłączenie zasilania na dłuższy czas, jedynie wgranie programu od nowa. Spotkał się ktoś kiedyś z taką sytuacją? Sytuacja już z 2 takim arduino.  Załączam cały kod, może coś przeoczyłem. Pozdrawiam, Kamil 


#include <Keypad.h>
char password[9] = {'2','2','4','4','2', '2','5','5','5'};
//char password1[5] = {'1','1','1','1','1'};
char dane[9] = {};
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
int x = 0;
char hexaKeys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {5, 6, 7, 8}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {2, 3, 4}; //connect to the column pinouts of the keypad

Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS );

void setup(){
  Serial.begin(9600);
  pinMode(11, OUTPUT);
  digitalWrite(11, HIGH);
//  keypad.addEventListener(keypadEvent);
}
  
void loop(){


char customKey = customKeypad.getKey();
 if (customKey == '*')reset();
 else if (customKey)
 {
  dane[x]= customKey;
  x++;
 }
  if ( dane[0]== password[0] &&
      dane[1]==password[1] &&
      dane[2] == password[2] &&
      dane[3] == password[3] &&
      dane[4] == password[4] &&
      dane[5] == password[5] &&
      dane[6] == password[6] &&
      dane[7] == password[7] &&
      dane[8] == password[8] )
      {
        Serial.println("DZIAŁA"); 
        digitalWrite(11, LOW);
        delay(500);
        digitalWrite(11, HIGH);
        
        delay(500);
        reset();
      }

      }
 
void reset() {
  for(int i=0; i<9; i++)
  {
    dane[i]=0;
    x=0;
    Serial.println("RESET"); 
    digitalWrite(11, HIGH);
  }
}

 

Link do komentarza
Share on other sites

Napisz co to za elektromagnes, jak podłączony, jak sterowany, z czego zasilasz całość i czy zamiast wgrywać nowy kod próbowałeś po prostu wyłączyć i włączyć zasilanie. Jest bardzo mała szansa, by program sam się kasował czy niszczył.

Być może z powodu machania indukcyjnością umiera USB i to zawiesza cały program. Nie wypisuj niczego przez konsolę, nie używaj w ogóle Serial. Po uruchomieniu zapal na sekundę jakąś dodatkową diodę LED a potem np. migaj nią po każdym wykryciu przycisku na klawiaturze. Przynajmniej będziesz widział czy program jeszcze żyje.

Link do komentarza
Share on other sites

Elektromagnes trzymający, indukcyjność nieznana, udźwig jakieś 60kg. Podłączony pod przekaźnik, w momencie wpisania kodu przekaźnik zmienia stan i rozwiera obwód, jednocześnie zwalniając magnes. Oddalony od kontrolera o jakieś 30 cm. Nano zasilane jest z zewnętrznego zasilacza podłączonego pod 5V. Do tego zasilacza podłączone są jeszcze ledy i kilka przekaźników. Elektromagnes zasilany z osobnego zasilacza +12V. Tak, próbowałem zarówno resetu z przycisku jak i wyłączenia zasilania. Wnioskuje że program nie żyje po tym, że po starcie powinien ustawić odpowiedni stan przekaźnika i zewrzeć magnes a tego nie robi. Dodam że raz przestało działać po miesiącu, raz po tygodniu, po zmianie uC i oddaleniu go od magnesu po jakichś 2 tygodniach. 

Na stałe nie ma nic podłączone pod USB, w takim wypadku też Serial może wywalić program?

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.