Actividad 14: "Comunicación Serial 2"

Comunicación Serial II

En esta actividad se presentan los dos circuitos explicados previamente en la clase virtual, uno de ellos correspondiente al control de dos leds mediante el teclado de nuestro computador y el otro que permite la comunicación serial entre dos dispositivos, a continuación se presentan los montajes y códigos realizados en Tinkercad.

Ejemplo 1: este montaje consiste en un Arduino al cual están conectados dos leds conectados a los pines 13 y 12, además se implemento un pulsador el cual está conectado a pin 7 de Arduino.



Código 1: este código permite en control de los dos led mediante el teclado de nuestro computador al pulsar la tecla correspondiente. En este caso se establece que en encendido o apagado del led1 (Rojo) se realizara mediante las teclas "a" y "b" respectivamente, de igual forma para el led2 (Verde) se encenderá y apagará mediante las teclas "c" y "d" respectivamente. Además con las letra "e" encendemos los leds simultáneamente y con la tecla "e" los apagamos simultáneamente. Por ultimo se agrego un pulsador para apagar ambos leds sin hacer uso del teclado.

int pin_led1 = 13;
int pin_led2 = 12;
int pin_boton = 7;
char dato;

void setup(){
Serial.begin(9600);//inicializamos velocidad de transmisión
pinMode(pin_led1, OUTPUT);//definido como salida
  pinMode(pin_led2, OUTPUT);//definido como salida
  pinMode(pin_boton, INPUT);//definido como Entrada
}

void loop(){
  
if(digitalRead(pin_boton)==HIGH){
digitalWrite(pin_led1, LOW);//apagamo el led1
    digitalWrite(pin_led2, LOW);//apagamo el led2
}
  
//LECTURA DE LOS DATOS SERIALES:--------------------------------
  if (Serial.available()){//preguntando si hay datos disponibles
      dato = Serial.read();//guardamos el dato
    
    if(dato=='a'){//Enciende led 1
digitalWrite(pin_led1, HIGH);//encendemos el led1
    }
    
    if(dato=='b'){//Apaga led 1
digitalWrite(pin_led1, LOW);//apagamos el led1
    }
    
    if(dato=='c'){//Enciende led 2
digitalWrite(pin_led2, HIGH);//encendemos el led2
    }
    
    if(dato=='d'){//Apaga led 2
digitalWrite(pin_led2, LOW);//apagamos el led2
    }
    
    if(dato=='e'){//Enciende todos los leds
digitalWrite(pin_led1, HIGH);//encendemos el led1
      digitalWrite(pin_led2, HIGH);//encendemos el led2
    }
    
    if(dato=='f'){//Apagamos todos los leds
digitalWrite(pin_led1, LOW);//apagamo el led1
      digitalWrite(pin_led2, LOW);//apagamo el led2
    }
  }
//FIN LECTURA DE LOS DATOS SERIALES:--------------------------------
  
}


Ejemplo 2: para este ejemplo se realizo la interconexión entre dos arduinos, pero mediante los pines TX y RX correspondientes a los pines de transmisión y recepción de datos seriales. Al Arduino del lado izquierdo se conectaron dos les a sus pines 9 y 8, este arduino será usado como receptor y dependiendo de los datos enviados por el Arduino del lado derecho este procederá a encender o apagar los leds. Es decir que el primer Arduino actuará como un Esclavo esperando los datos y el segun actuará como un Maestro quien enviará las señales de encendido y pagado. Es de aclarar que la tierra (GND) de ambos arduinos debe ser compartida para que estos tengan la misma referencia y la comunicación serial pueda funcione adecuadamente.


Códigos:
//Arduino Receptor
int pin_led1 = 9;
int pin_led2 = 8;
char dato;

void setup(){
  Serial.begin(9600);
  pinMode(pin_led1, OUTPUT);
  pinMode(pin_led2, OUTPUT);
}

void loop(){
  if (Serial.available()) {//esperamos que llegue algun dato
    dato = Serial.read();//guardarmos el dato   
    if(dato=='a'){//si dato = a, enciende el led1
    digitalWrite(pin_led1, HIGH);
    }
    
    if(dato=='b'){//si dato = b, apagamos el led1
    digitalWrite(pin_led1, LOW);
    }
    
    if(dato=='c'){//si dato = c, enciende el led2
    digitalWrite(pin_led2, HIGH);
    }
    
    if(dato=='d'){//si dato = d, apagamos el led2
    digitalWrite(pin_led2, LOW);
    }
  }
}

////////////////////////////////////////////////////////////////////////////
//ARDUINO TRANSMISOR:
void setup(){
  Serial.begin(9600);//velocidad de trasnmicion
}

void loop(){
  Serial.print('a');
  delay(2000);
  Serial.print('c');
  delay(2000);
  Serial.print('b');
  delay(2000);
  Serial.print('a');
  delay(2000);
  Serial.print('b');
  Serial.print('d');
  delay(2000);
}

/////////////////////////////////////////////////////////////////////////////////////////////

Actividad:

Para esta actividad el estudiante deberá hacer en la plataforma Tinkercad el montaje de ambos ejemplos, teniendo en cuenta la explicado en clase y la dudas resuletas.

Entregar:
Como evidencia el estudiante de forma individual deberá enviar captura de pantalla del montaje , el código y un vídeo corto de la simulación de cada punto,  al siguiente correo y con el asunto:

Correo: electronica2020colgalan@gmail.com
Asunto: Actividad 14: "Comunicación Serial 2" Nombre y Apellido" grado 10

NOTA: 
La fecha limite de entrega es domingo 16/08/2020 hasta la media noche. Es muy importante enviar la evidencia correspondiente. Las inquietudes o dudas se responderán en el horario de mañana y deben ser enviadas al correo electronica2020colgalan@gmail.com, o al final del blog en la sección de comentarios.

Comentarios

Entradas más populares de este blog

Activida 5: Puente H y Arduino

Actividad 4: El Puente H con Transistores

Actividad 7: "Entradas Análogas"