#include "../include/Balance.h" Balance::Balance(int doutPin, int sckPin) { scale.begin(doutPin, sckPin); this->initialized = false; scale.set_scale(); scale.tare(); this->initialVal = 0; this->calibrationFact = 0; } boolean Balance::initCalibration() { scale.set_scale(); scale.tare(); this->initialVal = scale.read_average(20); return true; } boolean Balance::calibration(int poidsRef,int moyenne_calibration) { int rawValref = 0; // Valeur brute de plexiglas et poids réf int tempPoids = 0; // C'est la valeur du poids en grammes calculée grâce au facteur de calibration rawValref = scale.read_average(moyenne_calibration); this->calibrationFact = (rawValref - this->initialVal) / poidsRef; do { scale.set_scale(calibrationFact); tempPoids = scale.get_units(5); if (tempPoids < poidsRef) { calibrationFact -= 1; } else if (tempPoids > poidsRef) { calibrationFact += 1; } } while (tempPoids != poidsRef); return initialized = true; } double Balance::getAverage(int nbMesure) { if (initialized == true) { return scale.get_units(nbMesure); } else { return 0; } } double Balance::getValue() { if (initialized == true) { return scale.get_units(); } else { return 0; } } void Balance::setCalibrationFact(int caliFact){ this->initialized = true; this->calibrationFact = caliFact; scale.set_scale(caliFact); }