Crystal Ball – Programmation en Arduino

Dans ce projet, nous avons appris à utiliser un écran à cristaux liquides, mieux connu sous son abréviation LCD. Bien que l’écran LCD soit connecté à divers signaux car il reçoit différents types d’informations, il existe déjà une bibliothèque de cristaux liquides disponible qui facilite la configuration et le contrôle des caractères affichés à l’écran sans traiter les bases de bas niveau de la façon dont l’écran travaux.

Broches LCD

L’écran a jusqu’à 16 broches, allant des broches numériques aux alimentations (Vcc, Vss, LED + -, etc.). Le R / W définit si le panneau doit être utilisé pour écrire ou pour lire. La broche numéro 6, ou E, avertit lorsqu’il doit recevoir une instruction. La broche numéro 3 règle la luminosité de l’écran.

La partie créative de ce projet a consisté à utiliser l’écran comme diseuse de bonne aventure. Si nous retournons la maquette à l’envers, l’écran recherchera entre ses réponses au hasard et l’affichera à l’écran. Le potentiomètre régule la luminosité.

Nous avons assemblé ce circuit:

P11 - Circuit

#include <LiquidCrystal.h>

LiquidCrystal lcd(12,11,5,4,3,2); // generates an instance 
in the lcd

const int switchPin = 6;
int switchState = 0;
int prevSwitchState = 0;
int reply;
void setup() {
  lcd.begin(16,2);
  
  pinMode(switchPin, INPUT);
  lcd.print("Preguntame");
  lcd.setCursor(0,1); // changes the Cursor to continue 
writing in the second row
  lcd.print("Bola de Cristal");
}
void loop() {
  switchState=digitalRead(switchPin);

  if (switchState != prevSwitchState) {
    if (switchState == LOW) {
      reply = random(8);
      lcd.clear(); // clears the writing
      lcd.setCursor(0,0);
      lcd.print("La bola dice:");
      lcd.setCursor(0,1);

      switch(reply){ // the program will enter the case 
assigned to the switch
        case 0:
        lcd.print("Si");
        break;
        case 1:
        lcd.print("Es probable");
        break;
        case 2:
        lcd.print("Ciertamente");
        break;
        case 3:
        lcd.print("Buenas perspectivas");
        break;
        case 4:
        lcd.print("No es seguro");
        break;
        case 5:
        lcd.print("Pregunta de nuevo");
        break;
        case 6:
        lcd.print("Ni idea");
        break;
        case 7:
        lcd.print("No");
        break;
      }
    }
  }
  

}

La vidéo montre les résultats: