sábado, 6 de mayo de 2017

Arduino proyecto 11: bola de cristal

Este proyecto trató de crear una bola de cristal para predecir el futuro. Las bolas de cristal pueden ayudar a ¨predecir¨ el futuro. les haces una pregunta a la bola omnisciente, y le das la vuelta para revelar una respuesta. Las respuestas serán predeterminadas, pero puedes apuntar cualquier cosa que te parezca. Usaras tu Arduin para elegir de un total de 8 respuestas. El interruptor de inclinación te ayuda a replicar el movimiento de agitar la bola en busca de respuestas.
Para crear este apasionante proyecto necesité: un interruptor de inclinación, una resistencia de 10 kiloohmios, una de 220 ohmios, un potenciometro y una pantalla LCD.
La interfaz me costó bastante crearla, ya que al incluir por primera vez una pantalla LCD necesita muchas clavijas conectadas a Arduino para funcionar.
Respecto al código es largo pero no muy difícil, ya que es un código extenso por las predicciones   introducidas. 
El único problema que tuve con este proyecto fue el tema de las clavijas conectadas a la pantalla LCD.
En un principio este iba a ser mi proyecto final, pero al final lo descarte porque no sabía como hacer una especie de bola o caja para introducir el Arduino y que se viera la pantalla LCD.




Código

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int switchPin = 6;
int switchState = 0;
int prevSwitchState = 0;
int reply;
void setup() {

    lcd.begin(16, 2);
    pinMode(switchPin, INPUT);
    lcd.print("¡Pregunta a la");
    lcd.setCursor(0, 1);
    lcd.print("Bola Magica!");

}//Fin de la función setup.
void loop() {

    switchState = digitalRead(switchPin);
    if (switchState != prevSwitchState) {
        if (switchState == LOW) {
            reply = random(8);
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("La bola dice:");
            lcd.setCursor(0, 1);
            switch(reply){
                case 0:
                lcd.print("Si");
                break;

                case 1:
                lcd.print("Lo mas probable");
                break;

                case 2:
                lcd.print("Ciertamente");
                break;

                case 3:
                lcd.print("Buena decision");
                break;

                case 4:
                lcd.print("No es seguro");
                break;

                case 5:
                lcd.print("Pregunta de nuevo");
                break;

                case 6:
                lcd.print("Lo dudo");
                break;

                case 7:
                lcd.print("No");
                break;

            }//Fin del switch.

        }//Fin del segundo if.

    }//Fin del primer if.
    prevSwitchState = switchState;

}//Fin de la función loop.


No hay comentarios:

Publicar un comentario