• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kod do arduino nano
#1
Lightbulb 
Witam,
Czy ktoś mógłby mi pomóc? Huh No więc chodzi o arduino. Po wgraniu programu <w załączniku> arduino nie wibruje, nie wydaję dźwięku a wyświetlacz jest cały biały z niektórymi pixelami wyłączonymi. Undecided Kod pochodzi z projektu Watchduino 2. Inne kody działają. gdy wgram jakiś program <wyświetlający na wyświetlaczu> i wgram ten w załączniku, arduino wysyła zakłócony obraz z poprzedniego programu, tylko z dodatkowymi losowymi pixelami.

korzystam z:
moduł bluetooth HC-06
Arduino nano
SSD1306 i2c 0,96"

Plik arduino znajduje się w folderze "Watch", w folderze skompresowanym w załączniku

Gdyby ktoś by mi pomógł, byłbym wdzięczny.


Załączone pliki
.zip   watchduino2-master.zip (Rozmiar: 1.34 MB / Pobrań: 3)
 
Odpowiedź
#2
A skąd pomysł, że to ma wydawać dźwięki i wibrować gdy wgrasz do Arduino Nano? Jakoś nie wymieniłeś buzera i jakiegoś "wibratora" wśród "korzystam z:".  Ekran pokazuje krzaki bo zapewne albo nie inicjalizujesz go prawidłowo albo może po prostu ma inny adres na magistrali I2C niż domyślny.   Dłubanie w tak obszernym kodzie to zabawa na długie zimowe wieczory, jeśli Ci się nie chce bawić to musisz mieć dokładnie taki sam zestaw - w opisie projektu jest wymienione np. Arduino pro mini 8Mhz, raczej nie masz takiego NANO na 8MHz, no i całej reszty.
Akurat to może nie jest istotne, zapewne wiesza się na komendach AT do modułu BT, może masz inny, może źle ustawiona prędkość (powinna być na 9600). Po zakomentowaniu w funkcji sysinit() funkcji do BT pokazuje ekran startowy, ale pewnie znowu się wiesza, bo ekran stoi i cały czas jest włączony, a powinien się uśpić. Ja w ogóle Bt nie mam podłączonego, a ekran ma adres 0x3C. Trzeba by grzebać dalej, ale to i tak nie ma sensu, bo jak nawet zadziała u mnie to wcale nie musi u Ciebie. Są tam opcje do debugowania, ale tak ustawione, że nic nie pokazały, bo serial jest inicjowany na końcu setupu. Jak się nie poddajesz, to zacznij od sprawdzenia czy BT masz ustawiony na 9600 i prowidłowo podłaczony, np. innym szkicem. Bez tego nic nie zobaczysz na ekranie. Jak masz za mało wiedzy to zacznij od prostych projektów i tak po kilkuset programach wróć do tego, w między czasie polecam kurs:  https://forbot.pl/blog/kurs-arduino-srod...owac-id936.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
A skąd pomysł, że to ma wydawać dźwięki i wibrować gdy wgrasz do Arduino Nano? Jakoś nie wymieniłeś buzera i jakiegoś "wibratora" wśród "korzystam z:".  Ekran pokazuje krzaki bo zapewne albo nie inicjalizujesz go prawidłowo albo może po prostu ma inny adres na magistrali I2C niż domyślny.   Dłubanie w tak obszernym kodzie to zabawa na długie zimowe wieczory, jeśli Ci się nie chce bawić to musisz mieć dokładnie taki sam zestaw - w opisie projektu jest wymienione np. Arduino pro mini 8Mhz, raczej nie masz
takiego NANO na 8MHz, no i całej reszty.
Akurat to może nie jest istotne, zapewne wiesza się na komendach AT do modułu BT, może masz inny, może źle ustawiona prędkość (powinna być na 9600). Po zakomentowaniu w funkcji sysinit() funkcji do BT pokazuje ekran startowy, ale pewnie znowu się wiesza, bo ekran stoi i cały czas jest włączony, a powinien się uśpić. Ja w ogóle Bt nie mam podłączonego, a ekran ma adres 0x3C. Trzeba by grzebać dalej, ale to i tak nie ma sensu, bo jak nawet zadziała u mnie to wcale nie musi u Ciebie. Są tam opcje do debugowania, ale tak ustawione, że nic nie pokazały, bo serial jest inicjowany na końcu setupu. Jak się nie poddajesz, to zacznij od sprawdzenia czy BT masz ustawiony na 9600 i prowidłowo podłaczony, np. innym szkicem. Bez tego nic nie zobaczysz na ekranie. Jak masz za mało wiedzy to zacznij od prostych projektów i tak po kilkuset programach wróć do tego, w między czasie polecam kurs:  https://forbot.pl/blog/kurs-arduino-srod...owac-id936

Z tym wibratorem i brzęczykiem zapomniałem dopisać, ale są prawidłowo podłączone, bo 1 raz zadziałało, wibrowało, buzzer wydawał dźwięki, a ekran wyświetlał, co miał. Po 2 sekundach znowu wyświetlał się śnieg i nic poza tym. Myślę, że po prostu to wina kodu. Jest przystosowany do 8mhz i 3.3v pro mini, a ja używam nano 5V 16mhz.
 
Odpowiedź
#4
Skoro raz zadziałało, to raczej nie wina kodu tylko sprzętu.
Pewni wszystko na pająka, stykówka. nie ma się co dziwić, że jak mucha pierdnie to raz działa raz nie.
 
Odpowiedź
#5
Skoro raz zadziałało, to raczej nie wina kodu tylko sprzętu.
Pewni wszystko na pająka, stykówka. nie ma się co dziwić, że jak mucha pierdnie to raz działa raz nie.

Inne kody działają. Coś musi Arduino zawieszać. Być może to rzeczywiście te komendy AT, bo tam jest moduł bt HM-10 a ja korzystam z HC-06. Do mojego modułu komendy AT powinny być wysyłane z terminalu w komputerze.
 
Odpowiedź
#6
No jest to wina kodu, nie wiem jak Ci się udało uruchomić to za pierwszym razem. Niestety autor nie przewidział możliwości działania programu gdy BT jest odłączony. Napisałem, że udało mi się osiągnąć opisywany przez Ciebie efekt bez modułu BT. A z kolei uruchomiłem komentując w setupie wszystko związane z komendami AT dla BT. Musiałbyś sobie wziąć PDF HM-10, PDF HC-06 i to co się da przerobić na HC-06, to czego się nie da usunąć z kodu (o ile to jeszcze będzie w ogóle miało sens). Komendy do obu modułów wysyła się przez UART, nieważne czy z Arduino czy z terminala komputera przez USB-UART. Niektóre BT wymagają znaku końca linii (zwykle HC05 i HC06), niektóre go mieć nie mogą ( zwykle HC10). Niektóre komendy mogą być takie same, niektóre mogą działać inaczej.  W setup pierwsze co się dzieje to nawiązanie komunikacji z BT, jak nie odpowiada to program stoi, więc i nic działać nie będzie. Nie chce Ci się uczyć to musisz znaleźć ten sam sprzęt.
W tym konkretnym programie akurat prędkość procesora i napięcie zasilania nie mają znaczenia (przynajmniej bez BT). Ja uruchomiłem na Nano 16MHz i na 8MHz , oczywiście kompilując i przestawiając procek  odpowiednio. Może moduł BT nie przeżył komunikacji po 5V, ja swoje wszystkie HC-05 i HM-10 podłączałem wprost do UART 5V i przeżyły, ale co do zasady one są na 3.3V. Napięcie w każdym USB może być inne, może moje ma 4.8V, a Twoje 5.2V i się usmażyło. Pisałem Ci, sprawdź jak jest ustawiony BT i czy działa, za pierwszym razem mógł być ustawiony OK, watchduino, nie wiem po co, ustawia mu to przy uruchomieniu:
Kod:
//    bt.sendATCommand("AT");
//    bt.sendATCommand("AT+PWRM0");
//    bt.sendATCommand("AT+NAMEWatchduino");
//    bt.sendATCommand("AT+RESET");
Po tych komendach pewnie BT się nie podniósł do drugiego uruchomienia.
Zresztą nawet jeśli to przejdzie to i tak dalej może mieć problemy w każdym miejscu gdzie jest inna komenda AT.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#7
(24-09-2018, 20:41)kaczakat napisał(a): No jest to wina kodu, nie wiem jak Ci się udało uruchomić to za pierwszym razem. Niestety autor nie przewidział możliwości działania programu gdy BT jest odłączony. Napisałem, że udało mi się osiągnąć opisywany przez Ciebie efekt bez modułu BT. A z kolei uruchomiłem komentując w setupie wszystko związane z komendami AT dla BT. Musiałbyś sobie wziąć PDF HM-10, PDF HC-06 i to co się da przerobić na HC-06, to czego się nie da usunąć z kodu (o ile to jeszcze będzie w ogóle miało sens). Komendy do obu modułów wysyła się przez UART, nieważne czy z Arduino czy z terminala komputera przez USB-UART. Niektóre BT wymagają znaku końca linii (zwykle HC05 i HC06), niektóre go mieć nie mogą ( zwykle HC10). Niektóre komendy mogą być takie same, niektóre mogą działać inaczej.  W setup pierwsze co się dzieje to nawiązanie komunikacji z BT, jak nie odpowiada to program stoi, więc i nic działać nie będzie. Nie chce Ci się uczyć to musisz znaleźć ten sam sprzęt.
W tym konkretnym programie akurat prędkość procesora i napięcie zasilania nie mają znaczenia (przynajmniej bez BT). Ja uruchomiłem na Nano 16MHz i na 8MHz , oczywiście kompilując i przestawiając procek  odpowiednio. Może moduł BT nie przeżył komunikacji po 5V, ja swoje wszystkie HC-05 i HM-10 podłączałem wprost do UART 5V i przeżyły, ale co do zasady one są na 3.3V. Napięcie w każdym USB może być inne, może moje ma 4.8V, a Twoje 5.2V i się usmażyło. Pisałem Ci, sprawdź jak jest ustawiony BT i czy działa, za pierwszym razem mógł być ustawiony OK, watchduino, nie wiem po co, ustawia mu to przy uruchomieniu:
Kod:
//    bt.sendATCommand("AT");
//    bt.sendATCommand("AT+PWRM0");
//    bt.sendATCommand("AT+NAMEWatchduino");
//    bt.sendATCommand("AT+RESET");
Po tych komendach pewnie BT się nie podniósł do drugiego uruchomienia.
Zresztą nawet jeśli to przejdzie to i tak dalej może mieć problemy w każdym miejscu gdzie jest inna komenda AT.
Rzeczywiście, po podłączeniu bt od razu zmienił nazwę na watchduino - tak miało być, zamienię resztę komend AT.
 
Odpowiedź
#8
(24-09-2018, 21:50)niebieskikot napisał(a): dzisiaj rozwiązałem problem, wystarczy połączyć smartfon z arduino przez bluetooth, aby zaczął działać.
Czyli, jak zwykle, kod programu to demo,zabawka nienadający sie do użytku. Dobrze,że jego działanie nie jest zależne od faz Księżyca.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości