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

Exibições: 544

Responder esta

Respostas a este tópico

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.

Inseri o codigo, mais não mudou nada no LCD e nem no monitor serial..

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"

Olá obrigada, vou testar, esse código vou inserir abaixo de long? Certo?

Boa tarde,

Referência sobre o módulo U-Blox 6 (procure por speed (Km/h no item 7) 

u-blox 6 Receiver Description

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

Tutorial: Arduino - Instalando Bibliotecas

http://labdegaragem.com/profiles/blogs/tutorial-arduino-instalando-...

Obrigado Helder, vou testar agora, muito obrigado!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço