Ir al contenido principal

Comunicación serial 2 Arduinos

 Para comunicar serialmente dos arduinos se debe usar los pines Rx y Tx, importante recordar que si una arduino envía tiene conectado el pin Tx,, por lo que la arduino que recibe deberá tener conectado el pin Rx.

  • 0 : RX (pin por el que RECIBE los datos serie)
  • 1 : TX (pin por el que ENVÍA los datos serie)

Se explica con la siguiente imagen. Adicionalmente las tierras deben estar conectadas. La arduino que trae conectado el potenciómetro será la arduino encargada para este primer ejemplo de realizar el envío de un dato para condiciones del potenciómetro, estos datos serán recibidos por la arduino que trae conectado el led para crear un led intermitente en un intervalo específico según reciba información de la primera arduino. 

El código para enviar un dato de manera repetitiva para probar la transmisión es el siguiente:

int sensorValue=0;
void setup()
{
  pinMode(A0, INPUT);
  Serial.begin(9600);

}

void loop()
{
  // read the input on analog pin 0:
  sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(10); // Delay a little bit to improve simulation performance
  Serial.write("a");
  delay(1000);
  Serial.write("b");
  delay(2000);
  Serial.write("c");
  delay(4000);
}

El código para recibir un dato y activar el led es el siguiente:
void setup(){ 
  pinMode(13,OUTPUT);
  Serial.begin(9600);
}
void loop(){ 
        char dato= Serial.read();//Guardamos en la variable dato el valor leido
        Serial.print(dato);
      
      switch(dato){ //Comprobamos el dato
         case 'a':  //Si recibimos una 'a' ...
          for(int i=0; i<20; i++){
               digitalWrite(13,HIGH);
               delay(80);
               digitalWrite(13,LOW);
               delay(80);
          }
          break;
         case 'b':    //si recibimos una 'b' ...
         for(int i=0; i<10; i++){
               digitalWrite(13,HIGH);
               delay(1000);
               digitalWrite(13,LOW);
               delay(1000);
          }
          break;
          default:
           digitalWrite(13,LOW);
           break;
        }
}

Ahora modificaremos el código para enviar un dato en función del potenciómetro:

  • Si el dato es menor que 200 envíe la letra a
  • Si el dato esta entre 200 y 600 envía la letra b
  • y si el dato es mayor a 600 envía la letra c

int sensorValue = 0;
void setup()
{
  pinMode(A0, INPUT);
  Serial.begin(9600);
}

void loop()
{
  // read the input on analog pin 0:
  sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(10); // Un pequeño tiempo
  if (sensorValue<200){
  	Serial.write('a');
    delay(2000);}
  else if (sensorValue>200 && sensorValue<600){
  	Serial.write('b');
    delay(2000);}
  else{
    Serial.write('c');
    delay(2000);}
   
   
}

Ahora modifica el código para enviar el dato del potenciómetro
Arduino 1
int sensorValue = 0;
void setup()
{
  pinMode(A0, INPUT);
  Serial.begin(9600);
}

void loop()
{
  // read the input on analog pin 0:
  sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(10); // Un pequeño tiempo   
}
Arduino 2
int sensorValue = 0;
void setup()
{
   Serial.begin(9600);
}

void loop()
{
  if (Serial.available())
    {
        //char dato= Serial.read();//caracter
      	int dato=Serial.parseInt();// entero
        Serial.println(dato);
        delay(10); // Un pequeño tiempo   
}



Entradas populares de este blog

INICIOS DE LA INGENIERÍA MECATRÓNICA - HISTORIA

MECATRÓNICA Mecatrónica es la integración sinérgica de la mecánica, la electrónica, el control y los sistemas computacionales, gracias a lo cual es posible la solución de problemas de la industria y la sociedad. ANTECEDENTES HISTÓRICOS El término Mecatrónica , fue introducido por primera vez en 1969 por el ingeniero TETSURO MORI, trabajador de la empresa japonesa Yaskawa. En un principio se definió como la integración de la mecánica y la electrónica en una máquina o producto , pero luego se consolidó como una especialidad de la ingeniería e incorporó otros elementos como los sistemas de computación , los desarrollos de la microelectrónica , la inteligencia artificial, la teoría de control y otros relacionados con la informática , estabilidad y alcanzabilidad . Teniendo como objetivo la optimización de los elementos industriales a través de la optimización de cada uno de sus subprocesos con nuevas herramientas sinérgicas . En los a...

CÓDIGO DE DIBUJO TÉCNICO MECÁNICO INEN

 "En el Ecuador, desgraciadamente, se han estado utilizando todos los criterios técnicos y las convenciones prácticas sobre esta materia, provenientes de varios orígenes, peor aún, en muchos casos no se utiliza convención alguna, cayendo a menudo en el caos y en una presentación de los dibujos que no resiste la crítica profesional; por consiguiente,  el Código (CPE INEN 003 (1989) (Spanish): Código de dibujo técnico, mecánico) llena un gran vacío nacional y está llamado a proporcionar a todo el ámbito profesional de la Ingeniería, a la industria, al Gobierno, a las Universidades y Politécnicas y al usuario, en general, de un conjunto de normas prácticas, bien sustentadas técnicamente, que facilitan el intercambio de tecnologías y la interpretación de planos por todos los usuarios. Formatos de láminas (medidas en mm).  PLEGADO DE LÁMINAS FORMATO A4 visita este link para acceder al formato link para formato