Go Down

Topic: Enviando mensagens de um Computador a outro com 2 Arduinos (Read 1 time) previous topic - next topic

vilneck

Eae galera

Eu sou um iniciante na programação de Arduino, e minha primeira missão é, enviar uma mensagem de um arduino a outro, e aparecer essa mensagem no Serial Monitor, pelos Tx e Rx, já vi vários códigos mas não consigo fazer o meu, alguem pode me dar alguma dica de um código que faça isso para mim aprender?

Obrigado

bubulindo

This... is a hobby.

vilneck

eu tentei vários códigos tipo um no emissor e outro no receptor para transmitir int, só que essa transmissão pelo jumper que não consigo fazer aparece umas coisas nada a ve do outro lado...

bubulindo

Nada como tirar os chips das placas e só usar os FTDI... É o mais simples que podes ter.

Senão a maneira de fazer isto é com a software serial.

Emissor e receptor...
Code: [Select]

SoftwareSerial mySerial(10, 11); // RX, TX
void setup() 
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  Serial.println("Goodnight moon!"); //an interesting song by Shivaree... :P

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}


Ligas o pino 10 do arduino A ao pino 11 do Arduino B.
Ligas o pino 10 do arduino B ao pino 11 do Arduino A.

This... is a hobby.

vilneck

Consegui atravez desse codigo mandar o caractere o, agr quero aprimorar para um oi

Emissor:
Code: [Select]


void setup() 
{
  Serial.begin(9600); //Inicia o bagulho Serial
}

void loop()
{
 
  if (Serial.available()>0)//Ve se o caminho está livre
   Serial.write('o');//Envia o caractere "o"
   delay(1000);//Dorme um pouco
}


Receptor:
Code: [Select]
char variavel;
void setup() 
{
  Serial.begin(9600);  //inicia serial
}

void loop()
{
  if (Serial.available())//Ve se esta chegando alguma Mensagem
  variavel=Serial.read();//Variavel recebe a mensagem
    Serial.println(variavel);//Mostra a Mensagem que veio do outro arduino
    delay(1000);//Dorme por um segundo
}

bubulindo

Ahhh, pensei que era óbvio... mas o código que deixei antes envia para o outro Arduino o que recebe no Serial Port.
Então se abrires o Serial port nos dois arduinos, o que enviares dum, vai chegar no outro e vice-versa.

O teu código não está a fazer exactamente o que pretendes... ou não explicaste bem o que pretendes.
This... is a hobby.

Mortis

#6
Apr 21, 2013, 04:47 pm Last Edit: Apr 21, 2013, 04:54 pm by Mortis Reason: 1
Se entendi bem, desejas escrever mais de um carácter em um arduino e ler  no outro arduino, se for isso, o que precisas fazer é criar um buffer.

Esse tópico trata desse assunto http://arduino.cc/forum/index.php/topic,157167.0.html, para que não fique repetitivo. ^^

Este trata de comunicação com o VB, mas te interessa a programação do arduino:
http://arduino.cc/forum/index.php/topic,156735.0.html

Diz se os posts acima ajudam e caso contrário qual a dúvida/problema.

Edit: Deixei passar o post que ainda esta fresco e que mostra bem como tratar a string(array de char) http://arduino.cc/forum/index.php/topic,161362.0.html

**mãos do bubulindo em todos eles rs

Go Up