bonjour,
je voudrais qu'on m'aide pour créer un algorigramme, il faut qui soit simple et cours de premier niveau par rapport au programme ci-dessous:
const float pi = 3.14159265; // Nombre Pi
int period = 1000; // Période de mesure (miliseconde)
int delaytime = 1000; // Temps entre les mesures (miliseconde)
int radio = 70 ; // Distance du centre au capteur (mm)
unsigned int Sample = 0; // Mesure a 0
unsigned int counter = 0; // compteur
unsigned int RPM = 0; // Tours par minute
float speedwind = 0; // Vitesse du vent (km/h)
// include the library code:
#include <LiquidCrystal.h>
// Test utilisation servomoteur SG90 //
#include <Servo.h>
Servo monservo; // crée l’objet pour contrôler le servomoteur
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup()
{
pinMode(2, INPUT); // sur le port 2
digitalWrite(2, HIGH); // impulssion haute
Serial.begin(115200); // Port série a 115200 baud
Serial.println("Anemometre"); // affichage sur moniteur serie
Serial.println("**********"); // idem
Serial.print(" Mesure toutes les secondes : "); //idem
Serial.println();
lcd.begin(16,2);
monservo.attach(9); // utilise la broche 9 pour le contrôle du servomoteur
}
void loop()
{
Sample++;
windvelocity();
RPMcalc();
WindSpeed();
Serial.print(speedwind); // afficher le vent sur moniteur serie
Serial.print(" [km/h] "); // afficher sur miniteur serie
Serial.println();
delay(1000); // affichage toutes les vsecondes
Serial.print(" Mesure suivante... "); // afficher sur moniteur serie
Serial.println();
lcd.setCursor(0,0); // affiche sur le première ligne
lcd.print(speedwind); // afficher le vent sur le lcd
lcd.print(" [km/h] "); // afficher sur le lcd
if (speedwind > 50)
{
monservo.write(70); // positionne le servomoteur à 70°
lcd.setCursor(0,9);
lcd.print("Securite");
}
if (speedwind < 50)
{
delay(3000);
monservo.write(35); // positionne le servomoteur à 35°
lcd.setCursor(0,9);
lcd.print(" ");
}
}
// Mesurer la vitesse du vent
void windvelocity()
{
speedwind = 0;
counter = 0;
attachInterrupt(0, addcount, CHANGE);
unsigned long millis();
long startTime = millis();
while(millis() < startTime + period) {
}
detachInterrupt(1);
}
void RPMcalc(){
RPM=((counter/2)*60)/(period/1000); // Calculer tours par minute (RPM)
}
void WindSpeed(){
speedwind = ((((2 * pi * radio * RPM)/60) / 1000) / 1000) * 3600; // Calculer la vitesse du vent en km/h
}
//declaration de addcount
void addcount()
{
counter++;
}
Merci.