Estoy iniciandome en el mundo de Arduino y tengo un problema con un modulo de GPS, no consigo que escriba nada por el puerto serie. Lo tengo conectado a un Arduino Mega con el siguiente codigo:
#include <TinyGPS.h>
//at 9600 bps 8-N-1
//Computer is connected to Arduino/Crowduino
//SoftSerial Shield is connected to the Software UART:D2&D3
#include <SoftwareSerial.h>
SoftwareSerial SoftSerial(6, 7);
unsigned char buffer[256]; // buffer array for data recieve over serial port
int count=0; // counter for buffer array
void setup()
{
SoftSerial.begin(9600); // the SoftSerial baud rate
Serial.begin(9600); // the Serial port of Arduino baud rate.
}
void loop()
{
if (SoftSerial.available()) // if date is comming from softwareserial port ==> data is comming from SoftSerial shield
{
while(SoftSerial.available()) // reading data into char array
{
buffer[count++]=SoftSerial.read(); // writing data into array
if(count == 256)break;
}
Serial.write(buffer,count); // if no data transmission ends, write buffer to hardware serial port
clearBufferArray(); // call clearBufferArray function to clear the storaged data from the array
count = 0; // set counter of while loop to zero
}
if (Serial.available()) // if data is available on hardwareserial port ==> data is comming from PC or notebook
SoftSerial.write(Serial.read()); // write it to the SoftSerial shield
}
void clearBufferArray() // function to clear buffer array
{
for (int i=0; i<count;i++)
{ buffer*=NULL;} // clear all index of array with command NULL* } Los pines los tengo colocados de la siguiente forma: La Shield GPS alimentada a 5V con la placa de Arduino. PIN UART_TX 2 a RX0 de Mega PIN UART_RX 3 a TX0 de Mega Los he probado tambien en 6 / 7 de MEGA y tampoco. Muchas gracias por la ayuda.
1-- El GPS debe tener un LED que parpadee cuando obtenga señal de satélites.
2-- Para probarlo, no necesitas ningún programa. Conecta el Tx del GPS a los pines 0 o 1 del Arduino y abre el monitor serial en la velocidad que trasmita el GPS.
Y en el Shield GPS ¿puedo usar cualquier PIN del UART_TX y del UART_RX (tiene del 0-7 de Transmision y 0-7 de Recepción) o tengo que configurarlo tambien en el IDE?
Perdona por la ignorancia pero ya te digo que estoy iniciandome y estoy verde.
Jopapa:
1-- El GPS debe tener un LED que parpadee cuando obtenga señal de satélites.
2-- Para probarlo, no necesitas ningún programa. Conecta el Tx del GPS a los pines 0 o 1 del Arduino y abre el monitor serial en la velocidad que trasmita el GPS.
De momento como lo estoy haciendo dentro del taller no voy a recibir satelites pero si quiero que me escriba las sentencias RMC, GGA, etc.... aunque los datos de posicion no sean correctos
Y en el Shield GPS ¿puedo usar cualquier PIN del UART_TX y del UART_RX (tiene del 0-7 de Transmision y 0-7 de Recepción) o tengo que configurarlo tambien en el IDE?
Perdona por la ignorancia pero ya te digo que estoy iniciandome y estoy verde.
Ya entiendo tienes una tira de pines con rx pin y TX, con los jumpers puedes jugar para cualquiera de esos pines, pero para el mega no te vale,
Coloca el Shield normalmente sobre tu mega yvdespues con dos cables podrás conectar rx y TX desde esa tira de pines triple hasta los respectivos 18 y 19
GO_zalo:
Ya entiendo tienes una tira de pines con rx pin y TX, con los jumpers puedes jugar para cualquiera de esos pines, pero para el mega no te vale,
Coloca el Shield normalmente sobre tu mega yvdespues con dos cables podrás conectar rx y TX desde esa tira de pines triple hasta los respectivos 18 y 19
Ya lo he conseguido, te comento como lo he puesto porque sí he podido sin tener que colocar la shield encima del mega.
El jumper, como bien has dicho, en la fila que quiera (por ejemplo en el 5)y el puente desde ese 5 hasta TX0 del Mega.
La alimentacion como estaba, a 5V y ya escribe las sentencias, no me pilla señal porque estoy dentro, pero se ven las sentencias RMC, GLL, VTC etc...
Lo siguiente que quiero es mostrar los datos de Pos. Velocidad y Rumbo en un display. Intentaré buscando información por aquí y si no soy capaz os pediré ayuda.
Muchas gracias por la ayuda tan rapida. Un saludo.
Buenos Días
Estoy en la misma situación pero con un Arduino Uno, es el mismo código pero al compilar aparece un error:
Arduino_GPS_SerialPort_jnijnin:40: error: incompatible types in assignment of 'int' to 'unsigned char [256]'
{ buffer=NULL;} // clear all index of array with command NULL
y no encuentro una manera de solucionarlo, finalmente y aunque con ese error el código compila pero al subirlo al arduino uno no genera ningún tipo de información en la pantalla de monitor serie.
=(