Bonjour
Pour mon projet de terminale j'ai réalisé ce programme pour une station météo (ci-dessous) mais pour ma soutenance j'aurai besoin de ce programme en algorigramme.
Le problème est que je ne sais pas du tout par ou commencé.
Si vous pouviez m'aider
Merci d'avance
#include <LiquidCrystal.h>
#define pinILS 6
#define pi 3.14159265359
#define RayonDesBras 0.048 // en mètre de l'anénomètre
int sensorPin = A0; // pin du potentiomètre
int sensorValue = 0; // variable to store the value coming from the sensor
int degre =0;
int previousVitVent =0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
pinMode(pinILS, INPUT);
Serial.begin(9600);
}
unsigned long millis_old(0);
float deltaTime(0);
int vitesseVent(0);
float NombreTourSec(0);
float FEtalonage(0.82);
bool isActive(false);
void loop() {
sensorValue = analogRead(sensorPin); // lire valeur du capteur
degre = map(sensorValue, 0, 1023, 0, 359); // convertir valeur capteur en valeur en degré
lcd.setCursor(0,0); // position du début du texte de la première ligne
lcd.print("dir vent"); // texte à afficher
lcd.setCursor(9,0); // position du début du texte de la deuxième ligne
lcd.print(degre); // valeur de la variable à afficher
lcd.setCursor(13,0); // position du début du texte à afficher
lcd.print("deg"); // texte à afficher
lcd.setCursor(0,1); // position du début du texte à afficher
lcd.print("v vent"); // texte à afficher
lcd.setCursor(8,1);
lcd.print(vitesseVent); // texte à afficher
lcd.setCursor(12,1); // position du début du texte à afficher
lcd.print("km/h"); // texte à afficher
UpdateILS();
//convertion periode -> fréquense
if (deltaTime!=0)
{
NombreTourSec = (1000 / deltaTime);
}
else{
NombreTourSec=0;
}
vitesseVent = 2*pi*RayonDesBras*NombreTourSec*FEtalonage*3.6;
Serial.println(vitesseVent);
lcd.clear(); // remettre l'écran comme au début de la boucle
}
void UpdateILS()
{
//lecture du capteur
isActive = digitalRead(pinILS);
while(!isActive)
isActive = digitalRead(pinILS);
while(isActive)
isActive = digitalRead(pinILS);
while(!isActive)
isActive = digitalRead(pinILS);
deltaTime = (millis() - millis_old) ;
millis_old = millis(); // remise à 0 du compteur pour capturé la différence de temps au prochain tour
}