SESIÓN 23
Eaglebot contador
OBJETIVO DE LA SESIÓN
Que las y los estudiantes practiquen lo anteriormente aprendido con el robot Eaglebot, cumpliendo algunos retos.
MATERIALES PARA TRABAJAR DURANTE LA SESIÓN
> Computadora
> Arduino UNO
> Cable de descarga
> Display 7 segmentos cátodo común
> Resistencia 220Ω
> Resistencia 10kΩ
> Cables jumper M-M
> Protoboard
> Push button
> Lápiz
> Colores
Actividad 1. Ruleta D7S: Conexión
Observa el siguiente diagrama y replicalo con tus materiales.
Actividad 2. Ruleta D7S: Programación
Observa el siguiente diagrama de flujo y tradúcelo en el lenguaje de programación de Arduino. Posteriormente, haz que funcione la ruleta para mostrar número aleatorios en el display de siete segmentos.
//Sesión 23, Actividad 1: Programación
#define segmento_1 12
#define segmento_2 13
#define segmento_3 11
#define segmento_4 10
#define segmento_5 9
#define segmento_6 8
#define segmento_7 7 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(6, INPUT); }
void loop() {
digitalWrite(segmento_1, LOW);
digitalWrite(segmento_2, LOW);
digitalWrite(segmento_3, LOW);
digitalWrite(segmento_4, LOW);
digitalWrite(segmento_5, LOW);
digitalWrite(segmento_6, LOW);
digitalWrite(segmento_7, LOW);
int lectura = digitalRead(6);
if(lectura == HIGH){
int randomNumber = random(0, 10); delay(1000);
Serial.println(randomNumber);
if(randomNumber == 1){
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);
if(randomNumber == 2){
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);
if(randomNumber == 3){
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);
if(randomNumber == 4){
digitalWrite(segmento_1, LOW);
digitalWrite(segmento_2, HIGH);
digitalWrite(segmento_3, HIGH);
digitalWrite(segmento_4, HIGH);
digitalWrite(segmento_5, HIGH);
digitalWrite(segmento_6, HIGH);
digitalWrite(segmento_7, HIGH);
if(randomNumber == 5){
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);
}
if(randomNumber == 6){
digitalWrite(segmento_1, HIGH);
digitalWrite(segmento_2, LOW);
digitalWrite(segmento_3, HIGH);
digitalWrite(segmento_4, LOW);
digitalWrite(segmento_5, LOW);
digitalWrite(segmento_6, LOW);
digitalWrite(segmento_7, LOW);
}
if(randomNumber == 7){
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);
}
if(randomNumber == 8){
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);
}
if(randomNumber == 9){
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);
}
if(randomNumber == 0){
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);
digitalWrite(segmento_1, LOW);
digitalWrite(segmento_2, LOW);
digitalWrite(segmento_3, LOW);
digitalWrite(segmento_4, LOW);
digitalWrite(segmento_5, LOW);
digitalWrite(segmento_6, LOW);
digitalWrite(segmento_7, LOW);
Actividad 3. Ruleta D7S: Diálogo
Dialoga con tus compañeras y compañeros las mejoras que se le pueden hacer al circuito o al programa y escribe en las líneas de abajo las ideas que compartieron.
En caso de haber problemas con los LEDs del display, recomiendo que en la programación escriban todos los pines de los LEDs del display, aún cuando no tengan que encenderse. En este caso es necesario escribir “LOW” para que permanezcan apagados.