Cześć,
tworzę od dłuższego czasu model samochodu zdalnie sterowanego. Niestety napotkałem na ścianę, której nie umiem rozbroić mówiąc krótko: Arduino UNO (wersja "nieoryginalna") wiesza mi się co poznaje po wypisaniu niepełnej linijki instrukcji Serial.print oraz braku migania diody RX. Dodatkowo silniczki, które powinny reagować na zmiany wartości nie robią tego, nie reagują zgodnie z tym jak powinny być sterowane kodem - ewidentna zwiecha. Aby uwidocznić problem starałem się go uzyskać przy minimalnej ilości informacji potrzebnych do przekazania tutaj, eliminując kolejne rzeczy niemające wpływu na występowanie tego problemu z projektu. Zmieniałem też płytkę Arduino przy pełnym projekcie, by wykluczyć wadę tejże. Zachowywała się identycznie.
W ten sposób scenariusz problemu uzyskuję gdy: arduino nie jest podłączone do żadnego kabla poza kablem USB do laptopa. Żaden z pinów nie ma przypiętego kabelka. Program wklejam poniżej:
Przy takim kodzie, program pokazuje na konsoli COM5 napis "forwa" i następuje zwiecha. To się nie dzieje w dwóch alternatywnych sytuacjach:
1) gdy używam digitalWrite (linijka A2) zamiast analogWrite (linijki A1); chcę docelowo tymi pinami sterować prędkością silniczków (przez sterownik), więc to nie jest żadne rozwiązanie,
2) linia X inicjalizująca drivera jest wygaszona.
Jak dla mnie to jest tu jakiś konflikt jeśli chodzi o piny. Tylko obiekt RH_ASK nie korzysta z tego co wiem z pinów 9 i 3! Jeśli zamienię piny PWM 9 i 3 na 6 i 5 jest identycznie.
Proszę o pomoc w zrozumieniu, co tu się dzieje, dlaczego Arduino zachowuje się tak dla przypadków jak wyżej? Co mogę zmienić, by projekt działał bez problemu? Wszelkie propozycje lub pytania mile widziane: tak jak napisałem stoję z projektem, na którym bardzo mi zależy
Pozdrawiam serdecznie,
Michał
tworzę od dłuższego czasu model samochodu zdalnie sterowanego. Niestety napotkałem na ścianę, której nie umiem rozbroić mówiąc krótko: Arduino UNO (wersja "nieoryginalna") wiesza mi się co poznaje po wypisaniu niepełnej linijki instrukcji Serial.print oraz braku migania diody RX. Dodatkowo silniczki, które powinny reagować na zmiany wartości nie robią tego, nie reagują zgodnie z tym jak powinny być sterowane kodem - ewidentna zwiecha. Aby uwidocznić problem starałem się go uzyskać przy minimalnej ilości informacji potrzebnych do przekazania tutaj, eliminując kolejne rzeczy niemające wpływu na występowanie tego problemu z projektu. Zmieniałem też płytkę Arduino przy pełnym projekcie, by wykluczyć wadę tejże. Zachowywała się identycznie.
W ten sposób scenariusz problemu uzyskuję gdy: arduino nie jest podłączone do żadnego kabla poza kablem USB do laptopa. Żaden z pinów nie ma przypiętego kabelka. Program wklejam poniżej:
Kod:
#include <RH_ASK.h>
#ifdef RH_HAVE_HARDWARE_SPI
#include <SPI.h> // Not actually used but needed to compile
#endif
#define M_1A 9
#define M_1B 3
int vSpeed = 0;
int vDelay = 500;
unsigned long vTime = 0;
RH_ASK driver;
void setup() {
Serial.begin(9600);
bool initOk = false;
initOk = driver.init(); // LINE X
if (!initOk) {
Serial.println("init failed");
}
pinMode(M_1A, OUTPUT);
pinMode(M_1B, OUTPUT);
}
void loop() {
if (millis() - vTime >= vDelay) {
Serial.println("forward");
vSpeed = vSpeed + 30 > 255 ? 255 : vSpeed + 30; // increase speed by 30.
analogWrite(M_1A, vSpeed); // LINE A1
//digitalWrite(M_1A, HIGH); // LINE A2
digitalWrite(M_1B, LOW);
vTime = millis();
}
}
Przy takim kodzie, program pokazuje na konsoli COM5 napis "forwa" i następuje zwiecha. To się nie dzieje w dwóch alternatywnych sytuacjach:
1) gdy używam digitalWrite (linijka A2) zamiast analogWrite (linijki A1); chcę docelowo tymi pinami sterować prędkością silniczków (przez sterownik), więc to nie jest żadne rozwiązanie,
2) linia X inicjalizująca drivera jest wygaszona.
Jak dla mnie to jest tu jakiś konflikt jeśli chodzi o piny. Tylko obiekt RH_ASK nie korzysta z tego co wiem z pinów 9 i 3! Jeśli zamienię piny PWM 9 i 3 na 6 i 5 jest identycznie.
Proszę o pomoc w zrozumieniu, co tu się dzieje, dlaczego Arduino zachowuje się tak dla przypadków jak wyżej? Co mogę zmienić, by projekt działał bez problemu? Wszelkie propozycje lub pytania mile widziane: tak jak napisałem stoję z projektem, na którym bardzo mi zależy
Pozdrawiam serdecznie,
Michał