Skocz do zawartości

Znaki zapytania podczas komunikacji z klonem Nano


Pomocna odpowiedź

Napisano

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!

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 😕

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

@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.

@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ą.

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
(edytowany)

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
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ć.

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

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.

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...