Bonjour à toutes et à tous !
Dans le cadre d'un projet d'amélioration continu dans mon entreprise, je suis en train de concevoir une "balance" afin de contrôler le poids de nos produits sur un convoyeur horizontal.
Cette balance sera composé d'un châssis, d'un Arduino Mega, d'un capteur de force 5Kg qui évoluera vers un 20 KG par la suite, d'un Amplificateur HX711 et pour finir un écran Nokia 5110.
Après avoir regarder de nombreux tutos en Anglais sur des projets similaires, j'ai récupéré quelques bouts de codes qui ont l'aire de passer le compilateur jusqu'à ce que je demande l'affichage d'une variable de type "Float" obtenue grâce à LoadCell.getData.
Bien mieux que des mots, je vous expose le code de ma console et au dessous le code erreur du compilateur : (l'erreur apparaît à la toute dernière du code ci-dessous "lcd.print(i)")
// (c) Michael Schoeffler 2017, http://www.mschoeffler.de
#include <HX711_ADC.h> // https://github.com/olkal/HX711_ADC
#include <Wire.h>
#include <Nokia_LCD.h>
HX711_ADC LoadCell(4, 5); // parameters: dt pin, sck pin<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>
Nokia_LCD lcd(8 /* CLK */, 9 /* DIN */, 10 /* DC */, 12 /* CE */, 11 /* RST */);
void setup() {
LoadCell.begin(); // start connection to HX711
LoadCell.start(2000); // load cells gets 2000ms of time to stabilize
LoadCell.setCalFactor(999.0); // calibration factor for load cell => strongly dependent on your individual setup
lcd.begin(); // begins connection to the LCD module
}
void loop() {
LoadCell.update(); // retrieves data from the load cell
float i = LoadCell.getData(); // get output value
lcd.setCursor(0, 0); // set cursor to first row
lcd.print("Poids [g]:"); // print out to LCD
lcd.setCursor(0, 1); // set cursor to secon row
lcd.print(i); // print out the retrieved value to the second row
}
l'erreur :
****\Documents\Arduino\sketch_jan21a\sketch_jan21a.ino: In function 'void loop()':
sketch_jan21a:21:18: error: call of overloaded 'print(float&)' is ambiguous
In file included from ****\Documents\Arduino\sketch_jan21a\sketch_jan21a.ino:5:0:
****\Documents\Arduino\libraries\Nokia_5110_LCD_library\src/Nokia_LCD.h:80:10: note: candidate: bool Nokia_LCD::print(int)
bool print(int number);
^
****\Documents\Arduino\libraries\Nokia_5110_LCD_library\src/Nokia_LCD.h:81:10: note: candidate: bool Nokia_LCD::print(unsigned int)
bool print(unsigned int number);
^
****\Documents\Arduino\libraries\Nokia_5110_LCD_library\src/Nokia_LCD.h:82:10: note: candidate: bool Nokia_LCD::print(long int)
bool print(long number);
^
****\Documents\Arduino\libraries\Nokia_5110_LCD_library\src/Nokia_LCD.h:83:10: note: candidate: bool Nokia_LCD::print(long unsigned int)
bool print(unsigned long number);
^
exit status 1
call of overloaded 'print(float&)' is ambiguous
L'écran m'affiche bien le "Poids [g]" lorsque je supprime lcd.print(i);
mais lorsque je remet cette ligne, le code reviens...
j'ai voulu essayer de voir si le HX711 répondait bien en réalisant la méthode proposée par Artouste sur un topic du 19/12/2017 à la réponse N°11 ( Balance avec arduino et capteurs de force - Français - Arduino Forum ) mais je n'ai pas compris sa manipulation. Faut il un multimètre ?
J'ai quelques notions en codage mais là, je suis bloqué... Y a t'y quékun qui peut m'aider ?
Par avance, merci !