Un programme qui marche, mais qui ne marche pas ....

Bonjour à tous et à toutes,

J'ai réglé mes soucis de librairie et j'ai réussi a écrire des donnés sur la carte SD présente dans mon montage.

Cependant, depuis que j'ai ajouté le module SD dans mon code, l'écran LCD et le capteur de force ne fonctionnent plus, je demande notamment l'affichage d'une ligne de texte dans le void setup, et rien ne se passe, et je peine a comprendre pourquoi, des gens auraient une idée ?

Le code se compile bien et il n'y a "aucune" erreur dedans.

Merci,

Vincent

Digital_Scale_Vincent.ino (3.95 KB)

Quel type d'arduino avez vous?

avez vous ouvert la console série à 9600 bauds ?

CS_PIN ne sert toujours à rien

j'ai réussi a écrire des donnés sur la carte SD présente dans mon montage

vous écrivez toujours dans un fichier sans nom qui n'est pas ouvert dans le setup

essayez cela avec le moniteur série à 115200 bauds

//-------------------------------------------------------------------------------------------
//Librairies
#include <LiquidCrystal_I2C.h> // Importe la librairie LiquidCrystal_I2C pour la gestion de l'écran LCD
#include <HX711_ADC.h> // Importe la librairie HX711_ADC pour la gestion de l'amplificateur HX711 et du capteur d'effort
#include <SD.h> // Importe la librairie SD pour permettre la gestion de la carte SD

HX711_ADC LoadCell(4, 5); // Allocation du capteur d'effort sur les broches 4 et 5, paramètres : dt pin, sck pin
LiquidCrystal_I2C lcd(0x27, 16, 2);// Set the LCD address to 0x27 for a 16 chars and 2 line display
File monFichier; // Génération du fichier de données

void setup() {
  Serial.begin(115200);
  Serial.print("Initialisation de la carte SD en cours..."); // Afficher sur le moniteur série le texte Initialisation de la carte SD en cours ...

  if (SD.begin()) { // Si la carte SD est initialisée ...
    Serial.println(" Initialisation terminee."); // Afficher sur le moniteur série le texte Initialisation terminée
  } else {        // Si l'initialisation ne fonctionne pas
    Serial.println(" Echec de l'initialisation."); // Afficher sur le moniteur série le texte Echec de l'initialisation
    while (true); // on s'arrête ici dans le cas d'un échec de l'intialisation de la carte SD
  }

  monFichier = SD.open("donnees.csv", FILE_WRITE); // on crée le fichier s'il faut, sinon écrit à la fin du fichier
  if (monFichier) {
    monFichier.println(F("Valeur d'effort")); // Affiche le texte valeur d'effort dans le fichier texte
    Serial.println(F("Valeur d'effort")); // Affiche le texte valeur d'effort dans le moniteur série
    monFichier.close(); // Ferme le fichier texte
  } else { // Si l'écriture ne fonctionne pas
    Serial.println(F(" Echec de l'écriture de l'en tête."));
    while (true); // on s'arrête ici dans le cas d'un échec de l'écriture
  }

  LoadCell.begin(); // Connextion a l'amplificateur HX711
  LoadCell.start(2000); // Le capteur d'effort a 2000ms pour se stabiliser
  LoadCell.setCalFactor(43.5); // Mise en place du facteur de calibration, valable pour un unique montage

  lcd.begin(); // démarrage de l'afficheur LCD, ça efface l'écran
  lcd.backlight(); // Allumage du rétro-éclairage
  lcd.print(F("*** PRET ***")); // Affichage sur l'écran LCD du texte Initialisation
}

void loop() {
  LoadCell.update(); // retrieves data from the load cell
  float effort = LoadCell.getData(); // get output value
  lcd.setCursor(0, 0); // set cursor to first row
  lcd.print(F("Poids[g]:")); // print out to LCD
  lcd.setCursor(0, 1); // set cursor to second row
  lcd.print(effort); // print out the retrieved value to the second row
  // On enregistre la donnée
  monFichier = SD.open("donnees.csv", FILE_WRITE); //Maximum 8 caractères avant le .csv
  if (monFichier) {
    monFichier.println(effort);
    Serial.println(effort);
    monFichier.close();
  } else {
    Serial.println(F("Impossible d'ouvrir le fichier"));
  }
  delay(5000);
}

Bonjour J-M-L Un grand merci pour votre aide.

J'ai une Arduino Uno REV 3

Concernant cela: "vous écrivez toujours dans un fichier sans nom qui n'est pas ouvert dans le setup" je dois donc ouvrir le fichier dans le setup ?

Merci.

Cordialement,

Vincent

Bon, une mise a jour,

J'ai utilisé votre fichier J-M-L et en fait je constate deux choses, la cellule d'effort ne marche toujours pas, et il y'a la superposition de deux textes sur l'écran lcd, Poids [g] et Initialisation, comment puis-je régler ce problème, avec un delay ?

Merci.

Vincent

Une mise à jour, avec le schéma de câblage.

Bon, une mise a jour encore, le câblage doit être mauvais dans la mesure ou en utilisant le programme de test du HX711, je n'obtiens qu'une valeur d'effort qui est aberrante et qui ne varie pas.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.