Girouette (Arduino+potentiomètre+LCD)

Le but est de réaliser l’IHM permettant l’affichage de l’angle donné par une girouette pour voilier. L’angle α représente l’angle entre l’axe du voilier et le vent.

Vous utiliserez une breadboard, 3 résistances, des fils, un potentiomètre et un afficheur LCD.

Montage :

Remarques :

Les 2 résistances montées en pont diviseur de tension sont des 10KΩ. Si le contraste est mauvais on peut remplacer une des deux par une résistance de 1KΩ.

Si les broches du LCD ne sont montées, vous utiliserez le port série pour afficher l’angle.

Exemple de code « Hello World » :

Installer la bibliothèque LiquidCristal (cf. http://arduino.blaisepascal.fr/installer-une-bibliotheque/)

#include <LiquidCrystal.h>

// initialiser la librairie avec les broches connectées
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  //Ouverture d'un port serie  
  Serial.begin(9600);
  // Défintion du nombre de caractères et de lignes
  lcd.begin(16, 2);
  // Afficher un message sur l'écran LCD
  lcd.print("hello, world!");
  Serial.println("Programme Hello World sur LCD!");
}

void loop() {
  // Mettre le curseur colonne 0, ligne 1
  // attention on commence à compter à partir de 0
  lcd.setCursor(0, 1);
  // Afficher le temps en ms depuis le demarrage
  lcd.print(millis() / 1000);
  Serial.println((String)millis()+ " ms depuis le demarrage");
}

TP Affichage de l’angle sur LCD

  1. Faire l’acquisition de la tension aux bornes du potentiomètre
  2. Utiliser les résultats du TD Indicateur de direction du vent fait en classe pour calculer l’angle.
  3. convertir cet angle en degrés
  4. Afficher l’angle (soit sur LCD soit sur le port série)
  5. Faire une vidéo du montage et envoyez la au professeur

TP Affichage de l’angle sur afficheur 4×7 segments

Exemple de code « compteur » :

Installer la bibliothèque SevSeg (cf. http://arduino.blaisepascal.fr/installer-une-bibliotheque/)

#include <SevSeg.h>

SevSeg sevseg; //Objet afficheur 7 segments

void setup() {
  byte numDigits = 4; // Nombre de digits  
  byte digitPins[] = {2,3,4,5}; // Connecteurs digitaux Arduino de 2 -> 5
  byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13}; // Branchements des Pins

  sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins);
  sevseg.setBrightness(60);
}

void loop() {
  static unsigned long timer = millis();
  static int deciSeconds = 0;
  
  if (millis() >= timer) {
    deciSeconds++; // 100 ms = 0.1 Second
    timer += 100; 
    if (deciSeconds == 10000) { // Reset 0 toute les 1000 secondes.
      deciSeconds=0;
    }
    sevseg.setNumber(deciSeconds, 1);
  }

  sevseg.refreshDisplay(); // Doit être effectué régulièrement
}

  1. Faire l’acquisition de la tension aux bornes du potentiomètre
  2. Utiliser les résultats du TD Indicateur de direction du vent fait en classe pour calculer l’angle.
  3. convertir cet angle en degrés
  4. Afficher l’angle
  5. Faire une vidéo du montage et envoyez la au professeur

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *