Go Down

Topic: Ajuda Comunicação (Read 347 times) previous topic - next topic

tpmoitinho

Prezados,

Estou precisando criar um Buzz quando um valor aparecer no Monitor do Arduino :

Seria para GPS ou Giro Compass :

Executei o Código para comunicação Arduino e o GPS = funcionou : Sendo que agora quando aparecer as coordenada xpto quero que toque um Buzz

bubulindo

Tens de converter as coordenadas em numeros e depois comparar com uma janela da localização que pretendes.

As funções de conversão são ftoa(), sprintf() e podes programar uma tu próprio...
This... is a hobby.

tpmoitinho

Este é meu codigo que esta funcionando : Pegando o sinal da GiroCompass . Vejo no monitor Print ....

//Serial Relay - Arduino will patch a
//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART

#include <SoftwareSerial.h>

//#include <nmea.h>

SoftwareSerial GPRS(0, 3);

unsigned char buffer[64];  // buffer array for data receive over serial port
int count=0;               // counter for buffer array


void setup()
{
  GPRS.begin(4800);
  Serial.begin(4800);
}

void loop()
{
  if (GPRS.available())
  {
    while(GPRS.available())
    {
      buffer[count++]=GPRS.read();
      if(count == 64)break;
    }
    Serial.write(buffer,count);
    clearBufferArray();
    count = 0;
  }
  if (Serial.available())
    GPRS.write(Serial.read());
}

void clearBufferArray()
{
  for (int i=0; i<count;i++)
  {
    buffer=NULL;
  }
}
//Serial Relay - Arduino will patch a
//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART

#include <SoftwareSerial.h>

//#include <nmea.h>

SoftwareSerial GPRS(0, 3);

unsigned char buffer[64];  // buffer array for data receive over serial port
int count=0;               // counter for buffer array


void setup()
{
  GPRS.begin(4800);
  Serial.begin(4800);
}

void loop()
{
  if (GPRS.available())
  {
    while(GPRS.available())
    {
      buffer[count++]=GPRS.read();
      if(count == 64)break;
    }
    Serial.write(buffer,count);
    clearBufferArray();
    count = 0;
  }
  if (Serial.available())
    GPRS.write(Serial.read());
}

void clearBufferArray()
{
  for (int i=0; i<count;i++)
  {
    buffer=NULL;
  }
}

Preciso que o Buzz toque quando no monitor ele identifica sertas informações com as coordenadas ...

bubulindo

Qual é a parte do que eu disse anteriormente que não entendeste?

Esta biblioteca:

http://arduiniana.org/libraries/tinygps/

parece fazer a parte mais complexa do que pretendes. Depois é apenas comparar com as coordenadas que queres.
This... is a hobby.

tpmoitinho

Caro Bubulino

Me desculpe : sou novato na programação : Consegui este código e consigo ler a Giro Compass . Vejo no monitor que esta pegando as coordenadas . Agora quero quando aparecer as coordenadas 110º 115º 120º 130º 135º tocar buzz .

Pode me ajudar .

Não sei como eu coloco no código   . Preciso de ajuda : isso seria para uma oportunidade de emprego

bubulindo

Eu compreendo isso, mas ao apontar para uma biblioteca, podias fazer download, instalar e testar um dos exemplo... se um dos exemplos funcionar vens aqui e perguntas como podes adicionar esse teste...

E para o fazeres seria algo como:

Code: [Select]

float flat, flon;
 
// returns +/- latitude/longitude in degrees
gps.f_get_position(&flat, &flon, &fix_age);


if (flat > 110 && flat < 111) {
   digitalWrite(buzzer, HIGH);
   delay(500);
   digitalWrite(buzzer, LOW);
} //podias repetir este codigo para os outros valores.
 

Isto não é uma oportunidade de emprego... é uma oportunidade para aprenderes algo de novo.
This... is a hobby.

AWOL

@tpmoitinho: Please stop using the "report to moderator control" - reply to the forum
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.
I speak for myself, not Arduino.

bubulindo

This is new... someone actually tries to help and its reported to the moderator... :\
This... is a hobby.

Go Up