Skocz do zawartości

Znaki zapytania podczas komunikacji z klonem Nano


Recl56

Pomocna odpowiedź

Cześć,

mam problem z klonem Arduino Nano, tzn. za każdym razem kiedy program wymaga jakies komunikacji dostaje w odpowiedzi odwrócone znaki zapytania i znaki "x", a to wszystko w jednej linijce (BAUD ten sam). Nie mam problemu z wgraniem kodu, porty działają, blink działa, sterowanie jasnością diody za pomocą PWM działa. Ale kiedy próbuje podłączyć serwo albo nadać/odebrać komunikat w stylu "Witaj (imię)", czy odczytać napięcie to przestaje działać. Jest to moje drugie arduino (pierwsze to oryginalne Uno), wiec problem raczej nie tkwi w kodzie bo na uno działa. Próbowałem instalować sterowniki do CH340G, wypalić bootloader, chociaż ani nie wiem czy mi sie to udało, ani czy mi to potrzebne, bo podobno ma preinstalowany bootloader na co wskazuje złota folia na wejsciu(?) no i brak problemu z wgrywaniem kodu. Zauważyłem, że diody RX TX świecą sie tylko przez chwilę, podczas wgrywania i gasną.

Dzięki za pomoc!

Link do komentarza
Share on other sites

1. "Witaj ___"

String OdebraneImie = "";

void setup() {
  Serial.begin(9600);
}

void loop() {
  if(Serial.available() > 0) {
    OdebraneImie = Serial.readStringUntil('\n');
    Serial.println("Witaj " + OdebraneImie + "!!!");
  }

}

2. "Pomiar"

int odczytanaWartosc = 0;
float napiecie = 0;
 
void setup() {
  Serial.begin(9600);//Uruchomienie komunikacji przez USART
}
 
void loop() {
  odczytanaWartosc = analogRead(A5);//Odczytujemy wartość napięcia
  napiecie = odczytanaWartosc * (5.0/1024.0);
  Serial.println(napiecie);//Wysyłamy ją do terminala
  delay(300);//Czekamy, aby wygodniej odczytywać wyniki  
}

3. "Serwo"

#include <Servo.h>
Servo servo_pin_3;
void setup()
{
  servo_pin_3.attach(3,530,2600);
}
void loop()
{
  servo_pin_3.write( 0 );
  delay( 2000 );
  servo_pin_3.write( 180 );
  delay( 2000 );
  servo_pin_3.write( 0 );
  delay( 2000 );
  servo_pin_3.write( 180 );
  delay( 1000 );
}

Tak to wygląda. Jak mówiłem, na Uno działa, na nano nie za bardzo. Komunikaty wyglądają tak: "⸮⸮⸮xx⸮x⸮xxx⸮x", a serwo się po prostu nie rusza 😕

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Hej @Recl56 . Jesteś pewny, że masz ustawioną taką samą prędkość transmisji w IDE jak w programie (9600) ?

"Odwrócone pytajniki i x" - co by nie wpisać - dostałem jak w IDE było ustawione 38400 baud a w sketchu tak jak masz 9600.

F1.thumb.jpg.08db6041b9a7d4e70ad9b812894f6e32.jpg

Po ustawieniu w IDE na 9600 jest OK. Sprawdzone na Nano, Arduino IDE 1.8.19

F2.thumb.jpg.804129be5e99e0a9f501e0024371d6b3.jpg

  • Lubię! 1
Link do komentarza
Share on other sites

@farmaceuta Ciekawy trop, Nano rusza serwo ale bardzo nieregularnie i/lub delikatnie np. zmieni pozycję o 180, ale na tym koniec, zatrzymuje się. Ewentualnie za 3 sekundy poruszy o 1-2 stopnie (mimo że nie ma takiego opóźnienia) i też się zatrzyma. Próbowałem resetować, zmieniać delay, piny i przewody/płytkę, ale nie widzę żadnego schematu, czasem coś ruszy, czasem nie. Uno bez problemu.

Link do komentarza
Share on other sites

@keram167 Dla pewności sprawdziłem i niestety to samo. Próbowałem różne baud i albo zmieniły się znaki (⸮xxx⸮x⸮~x⸮~) albo nic nie przesłało. Wersja IDE ta sama.

724141964_Screenshot2022-12-19at19_41_19.thumb.png.5a194eb18e20117c825137c9c5854664.png

Zastanawiają mnie troche te diody TX RX, bo za każdym upload'em zapalają się w określonej sekwencji, ale zawsze gasną.

Link do komentarza
Share on other sites

Dnia 18.12.2022 o 19:07, Recl56 napisał:

mam problem z klonem Arduino Nano

Nie jest to przypadkiem klon klona, czyli NANO z uC LGT8F328P? Na pierwszy rzut oka to samo, programator USBASP nie zadziała do wypalenia bootloadera, kod wgrany jak dla Atmega328p niby działa, w ogóle jaja że to idzie wgrać i coś miga, ale działa choć procek inny i serial robi różne dziwne rzeczy.

Z właściwym core ten uC działa w miarę OK, jest szybszy, choć ma też wady.

  • Lubię! 1
Link do komentarza
Share on other sites

Rozumiem, że eksperymentowałeś z wszystkimi prędkościami Serial i ustawieniami CR/NL...... Mógłbyś sobie nawet szkic napisać by to zautomatyzować.

Można także uruchomić port szeregowy np. tak Serial.begin(9600,SERIAL_8N1); To domyślne ustawienie, ale Twój moduł nie działa normalnie.
Czy aby nie masz czegokolwiek podłączonego pod piny D0 i D1 (Rx/Tx)?
Próbowałeś użyć zamiast wbudowanego w Arduino IDE innego programu terminala np. Putty, Termite .....
Zmieniłeś kabel USB, prot w PC ......?

Standardowy program PLIK-PRZYKLADY-BASICS-BLINK się wgrywa i działa?

Dziwna sprawa z tym portem

Edytowano przez Belferek
  • Lubię! 1
Link do komentarza
Share on other sites

1 godzinę temu, kaczakat napisał:

Nie jest to przypadkiem klon klona, czyli NANO z uC LGT8F328P?

Z początku nie brałem tego pod uwagę, a zainstalowałem LG board package, tylko stwierdziłem, że skoro nawet się nie uploaduje to pewnie to nie to. Do tego wizualnie nie przypomina zielonych klonów-klonów, ale zaczynam myśleć, że faktycznie może coś w tym być (https://allegro.pl/oferta/arduino-nano-v3-0-atmega328p-16mhz-ch340-zlutowany-12878873424 - wygląda dokładnie tak). Chociaż na razie nie udało mi się tego rozwiązać.

Link do komentarza
Share on other sites

1 godzinę temu, Belferek napisał:

Rozumiem, że eksperymentowałeś z wszystkimi prędkościami Serial i ustawieniami CR/NL

Zgadza się

1 godzinę temu, Belferek napisał:

Można także uruchomić port szeregowy np. tak Serial.begin(9600,SERIAL_8N1); To domyślne ustawienie, ale Twój moduł nie działa normalnie.

Niestety nic to nie zmieniło 😕

1 godzinę temu, Belferek napisał:

Czy aby nie masz czegokolwiek podłączonego pod piny D0 i D1 (Rx/Tx)?

Nic, tylko USB

1 godzinę temu, Belferek napisał:

Zmieniłeś kabel USB, prot w PC ......?

Port tak, ale kabla niestety nie mam innego

1 godzinę temu, Belferek napisał:

Standardowy program PLIK-PRZYKLADY-BASICS-BLINK się wgrywa i działa?

Tak, tak. Ale sprawdziłem dokładnie i co ciekawe dioda zapala się i gaśnie w 4-sekundowych odstępach

1 godzinę temu, Belferek napisał:

Próbowałeś użyć zamiast wbudowanego w Arduino IDE innego programu terminala np. Putty, Termite .....

Spróbuję, dzięki

Link do komentarza
Share on other sites

Problem z zegarem? A gdy delay(1000) w blinku zmienisz na delay(200) to migają diody szybciej? Mógłbyś wkleić do poczytania komunikaty z konsoli jakie dostajesz przy wgrywaniu szkicu (zaznacz w PLIK-PREFERENCJE wyświetlanie wszystkich komunikatów i ostrzeżeń w czasie wgrywania / kompilacji). Ciekawe co się tam pokazuje.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.