Buenas noches
Es la primera vez que escribo puesto que tengo arduino uno hace mucho tiempo pero por falta de tiempo nunca me habia puesto en serio con esto.
Tengo un problema creando un marcador para una motocicleta, quiero coger la velocidad via GPS, tengo el modulo GY-NEO6MV2 y he conectado por ahora un lcd1602 para probar luego intentare con un lcd tft.
El problema que tengo es que actualiza la velocidad cada 9 segundos aproximadamente en la pantalla. Y añadiendo un codigo para comprobar el checksum veo un problema de desbordamiento en el SoftwareSerial.
¿ Alguien podria echarme una mano para resolver este problema ?
Os lo agradezco de antemano, os adjunto el codigo y el error para que podais mirar.
Resistencia: -- Temperatura: 31 -- Velocidad : 1.07 -- Sped : 1 km/h -- Satelites: 6 -- Checksum : 28 -- Overfload : No
Resistencia: -- Temperatura: 31 -- Velocidad : 1.07 -- Sped : 1 km/h -- Satelites: 6 -- Checksum : 28 -- Overfload : No
Resistencia: -- Temperatura: 29 -- Velocidad : 1.07 -- Sped : 1 km/h -- Satelites: 6 -- Checksum : 29 -- Overfload : Si!
Resistencia: -- Temperatura: 31 -- Velocidad : 1.07 -- Sped : 1 km/h -- Satelites: 6 -- Checksum : 30 -- Overfload : Si!
Resistencia: -- Temperatura: 31 -- Velocidad : 1.07 -- Sped : 1 km/h -- Satelites: 6 -- Checksum : 30 -- Overfload : Si!
Resistencia: -- Temperatura: 29 -- Velocidad : 1.07 -- Sped : 1 km/h -- Satelites: 6 -- Checksum : 30 -- Overfload : No
Resistencia: -- Temperatura: 31 -- Velocidad : 1.07 -- Sped : 1 km/h -- Satelites: 6 -- Checksum : 30 -- Overfload : No
#include <LiquidCrystal.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);
int sensorPin = A1;
int medio=0;
int Temperatura=0;
int Rc=220;
int val;
int tempPin = A0;
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBAUD = 9600;
int speed1=0 ;
int sat=0;
TinyGPSPlus gps;
SoftwareSerial ss (RXPin, TXPin);
void setup() {
lcd.begin(16, 2);
Serial.begin(115200);
ss.begin(GPSBAUD);
lcd.setCursor(0,0); // Vision de pantalla generico no cambiara
lcd.print("Temp: ");
lcd.setCursor(11,0);
lcd.print("Sat:");
}
void loop()
{
while (ss.available() > 0 )
gps.encode(ss.read());
medio=analogRead(sensorPin); //
speed1=gps.speed.kmph();
val=analogRead(tempPin);
int mv = (val/1024.0)*5000;
int cel = mv/10;
int sat =gps.satellites.value();
Serial.print("Resistencia: "); // Serial print
//Serial.print(medio);
Serial.print(" -- ") ;
Serial.print(" Temperatura: ");
Serial.print(cel);
Serial.print(" -- Velocidad : ");
Serial.print(gps.speed.kmph());
Serial.print(" -- Sped : ");
Serial.print(speed1);
Serial.print(" km/h");
Serial.print(" -- Satelites: ");
Serial.print(sat); // Hasta aqui
Serial.print(" -- Checksum : ");
Serial.print(gps.failedChecksum());
Serial.print(" -- Overfload : ");
Serial.println(ss.overflow() ? "Si!" : "No");
lcd.setCursor(6,0); // Print Celsius
lcd.print(cel);
// lcd.print(" --");
lcd.setCursor(15,0); // Print Satellites ok
lcd.print(sat);
lcd.setCursor(0,1); // Print speed
lcd.print(speed1);
lcd.print(" km/h");
}
Gracias de antemano y saludos
Jaime