domingo, 18 de agosto de 2019

Aporte III Parcial I Quimestre: Prototipo Simon Dice

Unidad Educativa Particular Politécnico
Informática
2do "A" Oxford - III Parcial I Quimestre
Estefano Viteri - Miguel Rodríguez 
Aporte III Parcial I Quimestre: Prototipo Simon Dice

Materiales de trabajo:

  • 1 protoboard
  • 1 arduino
  • 1 potenciómetro 1k o 10k ohmios
  • 1 display lcd
  • 4 pulsadores
  • 4 leds diferente color
  • 5 resistencias 220 (rojo rojo café) o 330 ohmios
  • 4 resistencias 1k ohmio (café negro rojo)
  • Cables macho - macho y macho -hembra

Desarrollo de la actividad:

     Haciendo empleo de los materiales mencionados en la parte superior se inició la realización del prototipo del juego 'Simón Dice' mediante la programación y conexión de la placa Arduino UNO de tal forma que controlando los componentes de LEDs, botoneras y la pantalla LCD, se logre asemejar el uso y juego del clásico 'Simón Dice' del cual con anterioridad se habían hecho múltiples indagaciones respecto al diseño y ejecución de la producción del juego para lo cual el proyecto detallado en la presente entrada de blog es el proceso de realización del prototipo del juego 'Simón Dice'.

     El juego 'Simón Dice' es uno de memoria guiándose por las luces y botones del juego para lo cual en este caso se utilizarían botoneras, LEDs y la pantalla LCD para llevar a la realidad el juego. A partir de esto se tomó como guía la siguiente disposición o circuito electrónico:

     Haciendo las respectivas modificaciones al circuito y a la programación se obtuvieron los siguientes resultados:

#include <LiquidCrystal.h>      // incluir la libreria

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int led1 = 8;
int led2 = 10;
int led3 = 13;
int led4 = 9;

int pulsador1 = A0;
int pulsador2 = 1;
int pulsador3 = 6;
int pulsador4 = 7;

int datoPulsador1;
int datoPulsador2;
int datoPulsador3;
int datoPulsador4;

byte icono_1[8] = 
{
  B11000,
  B11000,
  B01100,
  B01100,
  B00110,
  B00110,
  B00011,
  B00011
};

byte icono_2[8] = 
{
  B00011,
  B00011,
  B00110,
  B00110,
  B01100,
  B01100,
  B11000,
  B11000
};

byte icono_3[8] = 
{
  B00011,
  B00011,
  B00110,
  B00110,
  B01100,
  B01100,
  B11000,
  B11000
};

byte icono_4[8] = 
{
  B11000,
  B11000,
  B01100,
  B01100,
  B00110,
  B00110,
  B00011,
  B00011
};

void setup()
{
  lcd.begin(16, 2);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  
  pinMode(pulsador1, INPUT);
  pinMode(pulsador2, INPUT);
  pinMode(pulsador3, INPUT);
  pinMode(pulsador4, INPUT);
  
  lcd.print("   Bienvenido   ");
  delay(1000);
  lcd.clear();
  lcd.createChar(1,icono_1);
  lcd.createChar(2,icono_2);
  lcd.createChar(3,icono_3);
  lcd.createChar(4,icono_4);
  
  lcd.setCursor(7, 0);
  lcd.write(1);
  lcd.write(2);
  lcd.setCursor(7, 1);
  lcd.write(3);
  lcd.write(4);
  
  digitalWrite(led1, HIGH);
  delay(250);
  digitalWrite(led1, LOW);
  delay(250);
  digitalWrite(led2, HIGH);
  delay(250);
  digitalWrite(led2, LOW);
  delay(250);
  digitalWrite(led3, HIGH);
  delay(250);
  digitalWrite(led3, LOW);
  delay(250);
  digitalWrite(led4, HIGH);
  delay(250);
  digitalWrite(led4, LOW);
  delay(250);
  digitalWrite(led3, HIGH);
  delay(250);
  digitalWrite(led3, LOW);
  delay(250);
  digitalWrite(led2, HIGH);
  delay(250);
  digitalWrite(led2, LOW);
  delay(250);
  digitalWrite(led1, HIGH);
  delay(250);
  digitalWrite(led1, LOW);
  delay(250);
}

void loop() {
  lcd.clear();
  datoPulsador1 = analogRead(pulsador1);
  datoPulsador2 = digitalRead(pulsador2);
  datoPulsador3 = digitalRead(pulsador3);
  datoPulsador4 = digitalRead(pulsador4);
  
  if (datoPulsador1 > 1000) {
    digitalWrite(led1, HIGH);
    lcd.print("Led Rojo");
    delay(200);
    digitalWrite(led1, LOW);
  }
  
  if (datoPulsador2 == HIGH) {
    digitalWrite(led2, HIGH);
    lcd.print("Led Verde");
    delay(200);
    digitalWrite(led2, LOW);
  }
  
  if (datoPulsador3 == HIGH) {
    digitalWrite(led3, HIGH);
    lcd.print("Led Blanco");
    delay(200);
    digitalWrite(led3, LOW);
  }
  
  if (datoPulsador4 == HIGH) {
    digitalWrite(led4, HIGH);
    lcd.print("Led Azul");
    delay(200);
    digitalWrite(led4, LOW);
  }
}
Vídeo demostrando el funcionamiento del prototipo llevado a cabo.


REFLEXIÓN: ¿QUÉ DIFICULTADES TUVO? Y ¿CÓMO LOGRO SUPERARLA? Y CONCLUSIÓN DE COMO FUNCIONA EL COMPONENTE TRABAJADO. 

       La principal dificultad que encontramos al realizar el proyecto fue que al principio no logramos conseguir que funcione correctamente el LCD el cual debía mostrar una frase de bienvenida, luego un icono y finalmente mostrar el con palabras el color de LED que estuviera siendo presionado o activado. Algo que ayudó significativamente a la solución de los problemas fue la eliminación de cables que no eran realmente necesarios, formando un circuito más limpio y ordenado del cual pudimos identificar los problemas y realizar los cambios pertinentes a las conexiones y a la programación. Revisando minuciosamente cada conexión y componente del programa del proyecto, se consiguió llevar a cabo satisfactoriamente el prototipo del 'Simón Dice'. 




lunes, 5 de agosto de 2019

PRÁCTICA INDIVIDUAL #1: ARDUINO + DISPLAY LCD

Unidad Educativa Particular Politécnico
Informática
2do "A" Oxford - III Parcial I Quimestre
Estefano Viteri
PRÁCTICA INDIVIDUAL #1: ARDUINO + DISPLAY LCD

Materiales de trabajo:

  • 1 protoboard
  • 1 display LCD
  • 1 arduino
  • 1 potenciómetro
  • 1 resistencia 220 (rojo rojo café)
  • Cables macho - macho o macho - hembra
Desarrollo de la Actividad:

     Se implementaron los materiales mencionados en la parte superior para realizar la conexión y programación de la placa Arduino UNO junto a un display LCD para que éste muestre los símbolos de Batman y Superman los cuales se alternarían, controlando mediante el potenciómetro la intensidad de la luz del display LCD.

    Se soldaron los espadines en el LCD para poder conectarlo al protoboard y se procedió a realizar todas las conexiones relacionadas principalmente con los pines del LCD de los cuales algunos se conectaron al Arduino como salidas digitales y otros a energía positiva (5V), negativa (GND), etc. Siguiendo como ejemplo y guía la siguiente disposición:
   Luego se constataron todas las partes del programa a implementar al Arduino UNO, para permitir la función en sí del prototipo para lo cual se realizaron varias pruebas en las que muchas veces se encontraron fallos, finalmente se evidencia el funcionamiento del proyecto con el LCD:



    De tal forma, utilizando la programación del Arduino UNO, realizamos la programación para mostrar en la pantalla del LCD un símbolo personalizado por cada uno, utilizando las ténicas ya aprendidas, para lo cual el resultado fue el siguiente pues se utilizó la misma conexión:

Aquí se puede apreciar el símbolo creado


REFLEXIÓN: ¿QUÉ DIFICULTADES TUVO? Y ¿CÓMO LOGRO SUPERARLA? Y CONCLUSIÓN DE COMO FUNCIONA EL COMPONENTE TRABAJADO. 

    Al ser la primera vez utilizando el componente electrcónico de la pantalla LCD en el circuito, fue un poco confuso en lo personal, familiarizarme con todas las conexiones y relaciones con la programación del Arduino UNO necesarias para que funcione como se espere. La principal dificultad que tuve fue con la conexión de algunos cables a la pantalla puesto a que al inicio no lograba hacer que funcione el circuito y no se había soldado correctamente algunas patas de los espadines con la pantalla LCD, hasta que finalmente pude ordenar en concordancia todas las conexiones, soldar bien los espadines y hacer que funcione el circuito.  A pesar de esto, se realizó satisfactoriamente la programación y conexión revisando minuciosamente cada conexión y componente del programa del proyecto.