Show Posts
Pages: [1]
1  International / Portugues / Ponte H controlado por rádio frequência on: October 25, 2013, 04:25:03 pm
Fala aí pessoal

É o seguinte, estou num projeto e gostaria que alguem me auxiliasse em uma parte que estou com duvida.
Mas antes eu vou explicá-lo brevemente. Estou, por enquanto, com dois arduinos. Um para envio e outro para recepção de dados por Rádio frequência.
O arduino de recepção controla duas pontes H.
E como vocês já sabem, cada ponte H necessita de dois sinais, analógicos ou digitais.  Atualmente eu estou utilizando sinal digital. Mas quero passar a usar PWM, pois é melhor, e mais preciso, para controlar os motores.
Meu Arduino de envio de dados enviará, por exemplo, "75, 0, 0, 75" para fazer um motor rodar para direita e o outro rodar para esquerda, com 75% de sua potência.
E é agora que chega a minha duvida:
Pois esses dados serão enviados no mesmo "pacote", e não consigo viabilizar um código para "separar" cada dado para cada entrada da ponte H
Eu queria, de alguma forma, armazenar separadamente cada dado do pacote. Ficaria algo mais o menos assim

Code:
M1PWM1 = 75;
M1PWM2 = 0;
M2PWM1 = 0;
M2PWM2 = 75;

Os dados chegam através da biblioteca Virtual Wire. E meu código do loop está assim.
Code:
[...]
Void loop(){
[..]
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    if (vw_get_message(buf, &buflen)){
int i;                           
for (i = 0; i < buflen; i++){
    Serial.print((char)buf[i]);
            char state = ((char)buf[i]);
        }
    }
[...]
}

"(char)buf", no caso, é a mensagem recebida.

Se alguem me auxiliar eu ficarei muito grato.
2  International / Portugues / Re: Receptor RF on: July 05, 2013, 09:20:22 pm
Olá,

se todos estiverem trabalhando na mesma frequência, não há problema algum.
Com relação a distancia, há informações que passam de 100m seu alcance.
Os ruídos podem ser eliminados usando algumas técnicas de correção no código do receptor.
3  International / Portugues / Re: Serial.print() ASCII on: February 25, 2013, 03:04:07 pm
Fala aí pessoal. Não pude testar o código no final de semana, pois o laboratório da minha escola estava fechado. Mas hoje, quando testei a dica do nosso amigo bubulindo. Funcionou =D, mas ficou com "sujeira" vindo junto na transmissão.
4  International / Portugues / Re: Serial.print() ASCII on: February 23, 2013, 06:46:16 am
É isso mesmo, mas tentei com outras maneiras e também não consegui .-.

Mas, de qualquer formar, está postado o código do receptor.


Code:
#include <VirtualWire.h>

int LED = 13;
void setup()
{
  Serial.begin(9600);
  Serial.println("setup");
  vw_set_ptt_inverted(true);
  vw_setup(2000);
  vw_set_rx_pin(9);
  vw_rx_start();
    pinMode(LED, OUTPUT);  
}
void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    digitalWrite(13, LOW);
    if (vw_get_message(buf, &buflen))
    {
int i;

        digitalWrite(LED, HIGH);
Serial.print("Got: ");

for (i = 0; i < buflen; i++)
{
   Serial.print(buf[i], HEX);
   Serial.print(' ');
}
Serial.println();
        digitalWrite(LED, LOW);
    }
}


5  International / Portugues / Serial.print() ASCII on: February 22, 2013, 08:00:59 pm
Olá pessoa =D. É o seguinte, eu to fazendo um código de transmissão RF e quero, por enquanto, apenas transmitir textos. Porém no meu serial monitor recepitor, não está aparecendo o texto em si - ACSII(texto humano)- mas sim, em hexadecimal - veja a imagem. Queria saber se há alguma maneira de mostrar o texto que eu quero ao invés de códigos numéricos.

 
Pages: [1]