Scientific task box V1

Dependencies:   HX711 DS1820

Dependents:   Scientific_RTOS Scientific_RTOS

Committer:
Alessio_Zaino
Date:
Thu Sep 05 20:55:56 2019 +0000
Revision:
4:d9c5d93963a8
Parent:
0:01deb85101c9
final;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Alessio_Zaino 0:01deb85101c9 1 #include "HX711.h"
Alessio_Zaino 0:01deb85101c9 2
Alessio_Zaino 0:01deb85101c9 3 HX711::HX711(PinName pin_dout, PinName pin_slk) :_pin_dout(pin_dout), _pin_slk(pin_slk)
Alessio_Zaino 0:01deb85101c9 4 {
Alessio_Zaino 0:01deb85101c9 5 _pin_slk = 1;
Alessio_Zaino 0:01deb85101c9 6 wait_ms(100);
Alessio_Zaino 0:01deb85101c9 7 _pin_slk = 0;
Alessio_Zaino 0:01deb85101c9 8
Alessio_Zaino 0:01deb85101c9 9 averageValue();
Alessio_Zaino 0:01deb85101c9 10 // this->setOffset(averageValue());
Alessio_Zaino 0:01deb85101c9 11 this->setScale(1);
Alessio_Zaino 0:01deb85101c9 12 }
Alessio_Zaino 0:01deb85101c9 13
Alessio_Zaino 0:01deb85101c9 14 HX711::~HX711()
Alessio_Zaino 0:01deb85101c9 15 {
Alessio_Zaino 0:01deb85101c9 16
Alessio_Zaino 0:01deb85101c9 17 }
Alessio_Zaino 0:01deb85101c9 18
Alessio_Zaino 0:01deb85101c9 19 long HX711::averageValue(unsigned char times)
Alessio_Zaino 0:01deb85101c9 20 {
Alessio_Zaino 0:01deb85101c9 21 long sum = 0;
Alessio_Zaino 0:01deb85101c9 22 for (unsigned char i = 0; i < times; i++)
Alessio_Zaino 0:01deb85101c9 23 {
Alessio_Zaino 0:01deb85101c9 24 sum += getValue();
Alessio_Zaino 0:01deb85101c9 25 }
Alessio_Zaino 0:01deb85101c9 26
Alessio_Zaino 0:01deb85101c9 27 return sum / times;
Alessio_Zaino 0:01deb85101c9 28 }
Alessio_Zaino 0:01deb85101c9 29
Alessio_Zaino 0:01deb85101c9 30 long HX711::getValue()
Alessio_Zaino 0:01deb85101c9 31 {
Alessio_Zaino 0:01deb85101c9 32 long valeur = 0;
Alessio_Zaino 0:01deb85101c9 33
Alessio_Zaino 0:01deb85101c9 34 while (_pin_dout)
Alessio_Zaino 0:01deb85101c9 35 ;
Alessio_Zaino 0:01deb85101c9 36
Alessio_Zaino 0:01deb85101c9 37 for (int i=0;i<24;i++)
Alessio_Zaino 0:01deb85101c9 38 {
Alessio_Zaino 0:01deb85101c9 39 _pin_slk = 1;
Alessio_Zaino 0:01deb85101c9 40 valeur=valeur<<1;
Alessio_Zaino 0:01deb85101c9 41 _pin_slk = 0;
Alessio_Zaino 0:01deb85101c9 42 if(_pin_dout) valeur++;
Alessio_Zaino 0:01deb85101c9 43 }
Alessio_Zaino 0:01deb85101c9 44
Alessio_Zaino 0:01deb85101c9 45 _pin_slk = 1;
Alessio_Zaino 0:01deb85101c9 46 _pin_slk = 0;
Alessio_Zaino 0:01deb85101c9 47
Alessio_Zaino 0:01deb85101c9 48 valeur=valeur^0x800000;
Alessio_Zaino 0:01deb85101c9 49
Alessio_Zaino 0:01deb85101c9 50 return valeur;
Alessio_Zaino 0:01deb85101c9 51 }
Alessio_Zaino 0:01deb85101c9 52
Alessio_Zaino 0:01deb85101c9 53 long HX711::getSignedValue()
Alessio_Zaino 0:01deb85101c9 54 {
Alessio_Zaino 0:01deb85101c9 55 return (getValue()-0x7FFFFF);
Alessio_Zaino 0:01deb85101c9 56 }
Alessio_Zaino 0:01deb85101c9 57
Alessio_Zaino 0:01deb85101c9 58 void HX711::setTare(long offset)
Alessio_Zaino 0:01deb85101c9 59 {
Alessio_Zaino 0:01deb85101c9 60 _offset = offset;
Alessio_Zaino 0:01deb85101c9 61 }
Alessio_Zaino 0:01deb85101c9 62
Alessio_Zaino 0:01deb85101c9 63 void HX711::setScale(float scale)
Alessio_Zaino 0:01deb85101c9 64 {
Alessio_Zaino 0:01deb85101c9 65 _scale = scale;
Alessio_Zaino 0:01deb85101c9 66 }
Alessio_Zaino 0:01deb85101c9 67
Alessio_Zaino 0:01deb85101c9 68 int HX711::getGram()
Alessio_Zaino 0:01deb85101c9 69 {
Alessio_Zaino 0:01deb85101c9 70 long val = (getValue() - _offset);
Alessio_Zaino 0:01deb85101c9 71 return (int)((val/_scale)*1000);
Alessio_Zaino 0:01deb85101c9 72 }