Bonjour à tous,
C'est un projet pour afficher pour l'instant les impulsions d'une ILS, le Volume total et le débit/h.
J’essaye de faire afficher les résultats avec un écran LCD 128*64.
Lorsque je configure pour afficher dans le moniteur série tous s'affiche correctement.
Mais lors des essais avec l’écran il n'y a que les éléments "V1.00"," Impulsions :" .... (Nombre_d_impulsion * Litre_par_tour, 3) qui s’affiche correctement. Le débit/h et sa variante ne s'affiche pas.
#include <U8glib.h>
const int ILS = 2; // pin pour la mesure des impulsions
int Etat_ILS = 0; // état de l'ILS
int Nombre_d_impulsion = 0; // comptage d'impulsion de l'ILS
int variable_stop = 1; // variable pour arrêter de compter
float Litre_par_tour = 0.00925926; // litre passer par tour d'ils
unsigned long precedent_millis = 0; // pour garder les milliseconde d'avant
const long interval = 2000; // interval entre les comptage
float time; // Pour calculer le temps
int Stock_d_impulsion = 0; // pour garder les impulsions d'avant
int Diffence_d_impulsion = 0; // pour stocker la différence des impulsion
U8GLIB_ST7920_128X64 u8g(13, 11, 12, U8G_PIN_NONE); //pour le lcd
void setup()
{
pinMode(ILS, INPUT);
Serial.begin(9600);
}
void loop()
{
Etat_ILS = digitalRead(ILS); // lit l'etat de la pin 2
unsigned long courant_millis = millis();
if (Etat_ILS != variable_stop) // compare la variable et l'ILS
{
if (Etat_ILS == HIGH) //si c'est 1 on compte
{
Nombre_d_impulsion++;
Stock_d_impulsion++;
u8g.firstPage();
do { //pour le lcd
u8g.setFont(u8g_font_profont11); //pour le lcd modifier police et taille
u8g.drawStr( 18, 7, "V1.00");
u8g.drawStr( 3, 17, " Impulsions :");
u8g.setPrintPos(85, 17);
u8g.print(Nombre_d_impulsion, DEC);
u8g.drawStr( 3, 27, " Volume :");
u8g.setPrintPos(85, 27);
u8g.print(Nombre_d_impulsion * Litre_par_tour, 3);
//u8g.drawStr( 3, 47, "Ligne 4");
} while ( u8g.nextPage() ); //pour le lcd
if (courant_millis - precedent_millis >= interval)
{ // si les milliseconde courante - les millis enregistré avant sont sup ou egale à 2s caluler le debit
u8g.drawStr( 3, 37, "L/h :");
u8g.setPrintPos ( 80, 37);
u8g.print((Stock_d_impulsion - Diffence_d_impulsion) * 30 * 60 * 0.00925926);
precedent_millis = courant_millis; //
Stock_d_impulsion = Diffence_d_impulsion;
}
}
variable_stop = Etat_ILS;
}
}
Si quelqu'un a une idée?
Par avance merci