Wrócę jeszcze na chwilę do koordynat GPS, bo wczoraj o pozycji Zatoki Gwinejskiej pisałem i faktycznie o ile 0.0 po przekonwertowaniu pokazywały wartości na wyświetlaczu to w miarę przemieszczania GPS wartości te się zmieniały więc może to nie do końca, że w ogóle nie zwraca wartości tylko albo zwraca przesunięte albo błędne, które w jakiś sposób mimo wszystko reagują na przemieszczanie się modelu.
Jeżeli piszesz o tym wątku to chciałem wgrać kod @matulekpl ale doczytałem później, że on to robił do serii X, a nie D dlatego zaprzestałem ale chyba faktycznie w wolnej chwili sprawdzę jak to wygląda, tylko mam pytanie odnośnie podłączenia, bo jego schemat różni się od mojego ale chyba nie ma różnicy którego VCC, GND i RXI użyję ważny jest tylko pin do RX odbiornika, bo w programie musi być taki sam jak podłączony fizycznie zgadza się? Dodatkowo w tym momencie mam go podłączonego przez rezystor do pinu RX w D8R-II Plus, na schemacie @matulekpl jest dodatkowo do odbiornika doprowadzone GND i połączone z GND Arduino czy lepiej jest podłączyć w ten sposób czy tylko użyć jednego przewodu tak jak mam obecnie?
Edit.
Pytanie o podłączenie nadal aktualne ale wgrałem program, zamieniłem Serial1 na Serial, bo nie przechodziło weryfikacji, zmieniłem PIN2 na PIN11, bo pod ten mam podpięty przewód i niestety nic się nie dzieje, brak telemetrii, a na Arduino świeci jedna dioda, druga w rogu nie miga tak jak przy działającym programie.
Co najmniej dwóm użytkownikom tego forum działa ten kod, a dlaczego u mnie nic nie zwraca, nie mam pomysłów... oczywiście kompiluje i wgrywa bez żadnych błędów.
Kod: Zaznacz cały
#include "NazaDecoderLib.h"
#include "FrSkySportSensorGps.h"
#include "FrSkySportSensorRpm.h"
#include "FrSkySportSensorVario.h"
#include "FrSkySportSingleWireSerial.h"
#include "FrSkySportTelemetry.h"
#include "SoftwareSerial.h"
FrSkySportSensorGps gps;
FrSkySportSensorRpm rpm;
FrSkySportSensorVario vario;
FrSkySportTelemetry telemetry;
void setup()
{
Serial.begin(115200);
telemetry.begin(FrSkySportSingleWireSerial::SOFT_SERIAL_PIN_11, &gps, &rpm, &vario);
}
void loop()
{
if(Serial.available())
{
if(NazaDecoder.decode(Serial.read()) == NAZA_MESSAGE_GPS)
{
gps.setData(NazaDecoder.getLat(), NazaDecoder.getLon(),
NazaDecoder.getGpsAlt(), NazaDecoder.getSpeed(), NazaDecoder.getCog(),
NazaDecoder.getYear(), NazaDecoder.getMonth(), NazaDecoder.getDay(),
NazaDecoder.getHour(), NazaDecoder.getMinute(), NazaDecoder.getSecond());
rpm.setData(0.0, NazaDecoder.getNumSat(), NazaDecoder.getFixType());
vario.setData(NazaDecoder.getGpsAlt(), NazaDecoder.getGpsVsi());
}
}
telemetry.send();
}