Olá Pessoal bom dia, estou tentando escrever um codigo pra arduino, mais não estou conseguindo ...
Copiei alguns codigos tentei adaptar mais não deu...
Meu projeto é : Tenho um arduino Uno, um modulo GPS Ublox M6, e um LCD 16x2 com Ic2 e um buzzer 3 v, queria ler o sinal GPS calcular a velocidade de deslocamento, informar no LCD a velocidade e fazer o buzzer soar quando ultrapassar 80 kmh,, essa é a aplicação, já vi varios videos no youtube funcionando parecido mais quando carrego o codigo no meu arduino dar varios erros...
Grato pela atenção!!!
Tags:
Segue o codigo que usei, so consegui fazer aparecer no LCD a LAT e LONG, nada mais que isso!
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
float lattitude,longitude; // create variable for latitude and longitude object
SoftwareSerial gpsSerial(4,3);//rx,tx
TinyGPSPlus gps;// create gps object
void setup(){
Serial.begin(9600); // connect serial
lcd.begin(16, 2);
gpsSerial.begin(9600); // connect gps sensor
lcd.print("GPS TRACKER");
delay(2000);
lcd.clear();
}
void loop(){
while(1)
{
while (gpsSerial.available() > 0)
{ gps.encode(gpsSerial.read()); }
if (gps.location.isUpdated())
{
Serial.print("LAT="); Serial.println(gps.location.lat(), 6);
Serial.print("LONG="); Serial.println(gps.location.lng(), 6);
lattitude=gps.location.lat();
longitude=gps.location.lng();
break;
}
}
Serial.print("LATTITUDE="); Serial.println(lattitude,6);
Serial.print("LONGITUDE="); Serial.println(longitude,6);
lcd.print("LAT ");lcd.print(lattitude,6);
lcd.setCursor(0, 1);
lcd.print("LONG ");lcd.print(longitude,6);
delay(20000);
lcd.clear();
}
Olá.
Tente:
Serial.println(gps.speed.kmph());
Se não funcionar diga que erro deu.
Depois eu adaptei o codigo, mais nao esta passando, ta dando um erro, que nao consigo resolver.. segue codigo abaixo
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);
float lattitude,longitude; // create variable for latitude and longitude object
SoftwareSerial gpsSerial(4,3);//rx,tx
TinyGPSPlus gps;// create gps object
void setup(){
Serial.begin(9600); // connect serial
lcd.begin(16, 2);
gpsSerial.begin(9600); // connect gps sensor
lcd.setCursor(0,0);
lcd.print("GPS ISRAEL");
lcd.setCursor(0,1);
lcd.print("Boa tarde!");
delay(10000);
lcd.clear();
}
void loop(){
while(1)
{
while (gpsSerial.available() > 0)
{ gps.encode(gpsSerial.read()); }
if (gps.location.isUpdated())
{
Serial.print("LAT="); Serial.println(gps.location.lat(), 6);
Serial.print("LONG="); Serial.println(gps.location.lng(), 6);
Serial.print("kmh="); Serial.println(gps.speed.kmph(), 6);
lattitude=gps.location.lat();
longitude=gps.location.lng();
kmph=gps.speed.kmph();
break;
}
}
Serial.print("LATTITUDE="); Serial.println(lattitude,6);
Serial.print("LONGITUDE="); Serial.println(longitude,6);
Serial.print("KMH="); Serial.println(speed,6);
lcd.print("LAT ");lcd.print(lattitude,6);
lcd.setCursor(0, 1);
lcd.print("LONG ");lcd.print(longitude,6);
lcd.print("SPEED"); lcd.print (speed, 6);
delay(10000); // Delay de atualização da tela e dos dados
lcd.clear();
}
Olha o Erro do codigo
rduino: 1.8.10 (Windows 7), Placa:"Arduino/Genuino Uno"
C:\Users\Netbook\Documents\Arduino\Programa_GPS_LCD_IC2\Programa_GPS_LCD_IC2.ino: In function 'void loop()':
Programa_GPS_LCD_IC2:33:8: error: 'kmph' was not declared in this scope
kmph=gps.speed.kmph();
^~~~
Programa_GPS_LCD_IC2:41:39: error: 'speed' was not declared in this scope
Serial.print("KMH="); Serial.println(speed,6);
^~~~~
Foram encontradas múltiplas bibliotecas para "SoftwareSerial.h"
Usado: D:\arduino-1.8.10\hardware\arduino\avr\libraries\SoftwareSerial
Foram encontradas múltiplas bibliotecas para "TinyGPS++.h"
Usado: D:\arduino-1.8.10\libraries\TinyGPSPlus-1.0.2b
Foram encontradas múltiplas bibliotecas para "LiquidCrystal_I2C.h"
Usado: D:\arduino-1.8.10\libraries\LiquidCrystalI2C
Foram encontradas múltiplas bibliotecas para "Wire.h"
Usado: D:\arduino-1.8.10\hardware\arduino\avr\libraries\Wire
exit status 1
'kmph' was not declared in this scope
Este relatório teria mais informações com
"Mostrar a saida detalhada durante a compilação"
opção pode ser ativada em "Arquivo -> Preferências"
Boa tarde,
Referência sobre o módulo U-Blox 6 (procure por speed (Km/h no item 7)
$GPVTG,cogt,T,cogm,M,sog,N,kph,K,mode*cs
https://blog.eletrogate.com/gps-neo-6m-com-arduino-aprenda-usar/
Você esta usando muitas bibliotecas similares ! Não pode.
Foram encontradas múltiplas bibliotecas para "SoftwareSerial.h"
Usado: D:\arduino-1.8.10\hardware\arduino\avr\libraries\SoftwareSerial
Foram encontradas múltiplas bibliotecas para "TinyGPS++.h"
Usado: D:\arduino-1.8.10\libraries\TinyGPSPlus-1.0.2b
Foram encontradas múltiplas bibliotecas para "LiquidCrystal_I2C.h"
Usado: D:\arduino-1.8.10\libraries\LiquidCrystalI2C
Foram encontradas múltiplas bibliotecas para "Wire.h"
Recomendo que remova as bibliotecas similares e instale somente as que precisará usar.
http://labdegaragem.com/profiles/blogs/tutorial-arduino-instalando-...
Obrigado Helder, vou testar agora, muito obrigado!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por