MLE:Sesion 27

Page 1

SESIÓN 27

Reto Eaglebot 2da Parte

OBJETIVO DE LA SESIÓN

Que las y los estudiantes pongan a prueba lo anteriormente aprendido en programación y circuitos electrónicos. En esta sesión, realizarán retos con el robot Eaglebot con el fin de poner en práctica sus conocimientos en programación. La sesión se encuentra dividida en dos partes para garantizar el máximo aprovechamiento.

MATERIALES PARA TRABAJAR DURANTE LA SESIÓN

> Computadora

> Arduino UNO

> Robot Eaglebot

> Cable de descarga

> Push button

> Resistencias 220Ω y 10kΩ

> Potenciómetro

> Display de 7 segmentos

> Pista Maratón

> LEDs

> Jumpers M-M

> Lápiz

> Colores

Actividad 1. Reto de programación 1

Escribe el programa en lenguaje de programación de arduino, para hacer una cuenta regresiva de 9 a 0 en un display de 7 segmentos.

#define segmento_1 2

#define segmento_2 3

#define segmento_3 4

#define segmento_4 5

#define segmento_5 6

#define segmento_6 7

#define segmento_7 8

void setup() {

Serial.begin(9600);

pinMode(segmento_1, OUTPUT); pinMode(segmento_2, OUTPUT); pinMode(segmento_3, OUTPUT); pinMode(segmento_4, OUTPUT); pinMode(segmento_5, OUTPUT); pinMode(segmento_6, OUTPUT); pinMode(segmento_7, OUTPUT);

pinMode(A0, INPUT); }

void loop(){

int lectura = analogRead(A0); int numero = map(lectura, 0, 1023, 0, 10);

if(numero == 9){

Serial.println(numero);

digitalWrite(segmento_1, HIGH); digitalWrite(segmento_2, HIGH); digitalWrite(segmento_3, HIGH); digitalWrite(segmento_4, HIGH); digitalWrite(segmento_5, LOW); digitalWrite(segmento_6, HIGH); digitalWrite(segmento_7, HIGH); delay(1000); }

if(numero == 8){

// 8

Serial.println(numero); digitalWrite(segmento_1, HIGH); digitalWrite(segmento_2, HIGH); digitalWrite(segmento_3, HIGH);

digitalWrite(segmento_4, HIGH); digitalWrite(segmento_5, HIGH); digitalWrite(segmento_6, HIGH); digitalWrite(segmento_7, HIGH); delay(1000); }

if(numero == 7){

//7

Serial.println(numero); digitalWrite(segmento_1, HIGH); digitalWrite(segmento_2, HIGH); digitalWrite(segmento_3, HIGH); digitalWrite(segmento_4, LOW); digitalWrite(segmento_5, LOW); digitalWrite(segmento_6, LOW); digitalWrite(segmento_7, LOW); delay(1000); }

88 SESIÓN 27

if(numero == 6){

//6

Serial.println(numero); digitalWrite(segmento_1, HIGH); digitalWrite(segmento_2, LOW); digitalWrite(segmento_3, HIGH); digitalWrite(segmento_4, HIGH); digitalWrite(segmento_5, HIGH); digitalWrite(segmento_6, HIGH); digitalWrite(segmento_7, HIGH); delay(1000);

}

if(numero == 5){

//5

Serial.println(numero);

digitalWrite(segmento_1, HIGH);

digitalWrite(segmento_2, LOW);

digitalWrite(segmento_3, HIGH); digitalWrite(segmento_4, HIGH);

digitalWrite(segmento_5, LOW);

digitalWrite(segmento_6, HIGH);

digitalWrite(segmento_7, HIGH); delay(1000);

}

if(numero == 4){

//4

Serial.println(numero);

digitalWrite(segmento_1, LOW);

digitalWrite(segmento_2, HIGH);

digitalWrite(segmento_3, HIGH);

digitalWrite(segmento_4, LOW);

digitalWrite(segmento_5, LOW);

digitalWrite(segmento_6, HIGH);

digitalWrite(segmento_7, HIGH); delay(1000);

}

if(numero == 3){

//3

Serial.println(numero);

digitalWrite(segmento_1, HIGH);

digitalWrite(segmento_2, HIGH);

digitalWrite(segmento_3, HIGH);

digitalWrite(segmento_4, HIGH);

digitalWrite(segmento_5, LOW);

digitalWrite(segmento_6, LOW);

digitalWrite(segmento_7, HIGH); delay(1000);

}

if(numero == 2){

//2

Serial.println(numero);

digitalWrite(segmento_1, HIGH);

digitalWrite(segmento_2, HIGH);

digitalWrite(segmento_3, LOW);

digitalWrite(segmento_4, HIGH);

digitalWrite(segmento_5, HIGH);

digitalWrite(segmento_6, LOW);

digitalWrite(segmento_7, HIGH); delay(1000);

}

Actividad 2. Reto de programación 2

if(numero == 1){

//1

Serial.println(numero);

digitalWrite(segmento_1, LOW);

digitalWrite(segmento_2, HIGH);

digitalWrite(segmento_3, HIGH);

digitalWrite(segmento_4, LOW);

digitalWrite(segmento_5, LOW);

digitalWrite(segmento_6, LOW);

digitalWrite(segmento_7, LOW); delay(1000);

} if(numero == 0){

//0

Serial.println(numero);

digitalWrite(segmento_1, HIGH);

digitalWrite(segmento_2, HIGH);

digitalWrite(segmento_3, HIGH);

digitalWrite(segmento_4, HIGH);

digitalWrite(segmento_5, HIGH); digitalWrite(segmento_6, HIGH);

digitalWrite(segmento_7, LOW); delay(1000);

Realiza un diagrama de flujo de un programa en Arduino, en el cual deberás controlar el Eaglebot con 2 potenciómetros y 2 botones. Un potenciómetro hará que el Eaglebot gire a la derecha, un botón hará que vaya hacia adelante, otro botón hará que avance hacia atrás y por último el segundo potenciómetro hará girar al robot hacia la izquierda. Recuerda que el diagrama de flujo expresa la lógica de programación, este diagrama debe ser capaz de pasarse al lenguaje de programación de Arduino sin ambigüedad. Posteriormente reflexiona y comparte con el grupo,dónde podrías utilizar esta programación en la vida cotidiana.

89
} }

Inicio

Declarar las constantes para los pines de los motores

Preparación Setup

Declarar las variables para los pines de los push y los potenciómetros

Si la lectura de adelante es alta

Declarar una variable para la lectura de los pulsadores (adelante y atrás) )y los potenciómetros (poten1 y poten2)

Asignar los pines del led y del buzzer como salidas digitales

Asignar los pines de los pulsadores como entradas analógicas

Asignar los pines de los motores como salidas digitales

Loop

Apagar los pines de los motores

Si la lectura de atrás es alta

Encender los motores hacia adelante

Encender los motores hacia atrás

Crear una variable vuelta_ izquierda donde se utilice la función map sobre la variable poten1

Crear una variable vuelta_ derecha donde se utilice la función map sobre la variable poten2

Encender el motor de la izquierda según el valor de la variable vuelta_ izquierda

Encender el motor de la derecha según el valor de la variable vuelta_derecha

90 SESIÓN 27

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.