Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

3 місяці тому
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #ifndef SCALE_H
  2. #define SCALE_H
  3. #include <HX711.h>
  4. #include <EEPROMex.h>
  5. #define e_scale 0
  6. #define e_calib_w 8
  7. #define e_gain 10
  8. #define none 0
  9. #define tar 1
  10. #define cal 2
  11. #define shift_element 3
  12. #define delay_vypis 800
  13. #define NUMBER_OF_READINGS 30
  14. class Scale {
  15. private:
  16. HX711 hx711;
  17. double sum = 0;
  18. long sum_raw = 0;
  19. int count = 0;
  20. double average_gram = 0;
  21. long average_raw = 0;
  22. double EPSILON = 0.01;
  23. long raw;
  24. long offset = 0;
  25. double scaled_weight = 15940.0; // aprox. 15 g
  26. double actual_gram;
  27. const int out = 2;
  28. const int clck = 3;
  29. public:
  30. void init();
  31. long init_reading();
  32. void read();
  33. void tare();
  34. void calibrate();
  35. long get_raw() const {
  36. return raw;
  37. }
  38. long get_average_raw() const {
  39. return average_raw;
  40. }
  41. long get_offset() const {
  42. return offset;
  43. }
  44. int get_calibration_weight() const {
  45. return EEPROM.readInt(e_calib_w);
  46. }
  47. double get_weight() const {
  48. return scaled_weight;
  49. }
  50. double get_actual_gram() const {
  51. return actual_gram;
  52. }
  53. double get_average_grain() const {
  54. return average_gram / 0.06479891;
  55. }
  56. double get_average_gram() const {
  57. return average_gram;
  58. }
  59. };
  60. #endif