Weight-machine-App
Dependencies: HX711 ST7567 mbed
main.cpp@1:c72a74304949, 2017-01-20 (annotated)
- Committer:
- josespaul
- Date:
- Fri Jan 20 11:49:14 2017 +0000
- Revision:
- 1:c72a74304949
- Parent:
- 0:bca8659e032c
optimised code. lcd support added
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
josespaul | 0:bca8659e032c | 1 | #include "mbed.h" |
josespaul | 0:bca8659e032c | 2 | #include "HX711.h" |
josespaul | 1:c72a74304949 | 3 | #include "ST7567.h" |
josespaul | 1:c72a74304949 | 4 | #define STEPS 100.0 |
josespaul | 0:bca8659e032c | 5 | #define MAX_WEIGHT 2.0 |
josespaul | 0:bca8659e032c | 6 | |
josespaul | 1:c72a74304949 | 7 | ST7567 lcd(P1_24, P1_20, P1_25, P1_22, P1_21); // mosi, sclk, reset, A0, nCS |
josespaul | 1:c72a74304949 | 8 | Serial pc(USBTX,USBRX,115200); |
josespaul | 1:c72a74304949 | 9 | HX711 Balance(P3_25,P3_26); |
josespaul | 0:bca8659e032c | 10 | PwmOut ser_mtr(P2_3); |
josespaul | 0:bca8659e032c | 11 | |
josespaul | 0:bca8659e032c | 12 | int main() |
josespaul | 0:bca8659e032c | 13 | { |
josespaul | 1:c72a74304949 | 14 | float current_value; |
josespaul | 1:c72a74304949 | 15 | float initial_value; |
josespaul | 0:bca8659e032c | 16 | float weight; |
josespaul | 1:c72a74304949 | 17 | float i,j; |
josespaul | 1:c72a74304949 | 18 | lcd.set_contrast(0x3F); |
josespaul | 1:c72a74304949 | 19 | lcd.cls(); |
josespaul | 1:c72a74304949 | 20 | lcd.locate(0, 1); |
josespaul | 1:c72a74304949 | 21 | lcd.printf("\n\n\n Hello !"); |
josespaul | 1:c72a74304949 | 22 | wait(2); |
josespaul | 1:c72a74304949 | 23 | lcd.cls(); |
josespaul | 1:c72a74304949 | 24 | lcd.locate(0, 1); |
josespaul | 1:c72a74304949 | 25 | lcd.printf("\n\n\n Calibtrating Sensors .."); |
josespaul | 1:c72a74304949 | 26 | ser_mtr.write(0.05f); |
josespaul | 0:bca8659e032c | 27 | wait(1); |
josespaul | 1:c72a74304949 | 28 | initial_value = Balance.getValue(); |
josespaul | 1:c72a74304949 | 29 | ser_mtr.write(0.105f); |
josespaul | 0:bca8659e032c | 30 | wait(1); |
josespaul | 1:c72a74304949 | 31 | lcd.cls(); |
josespaul | 1:c72a74304949 | 32 | |
josespaul | 0:bca8659e032c | 33 | while (true) |
josespaul | 0:bca8659e032c | 34 | { |
josespaul | 1:c72a74304949 | 35 | current_value = Balance.getValue(); |
josespaul | 1:c72a74304949 | 36 | weight = ((float)current_value-(float)initial_value)/315701; //Calibration - 315701 is the corresponding value for 1KG |
josespaul | 1:c72a74304949 | 37 | lcd.locate(4, 4); |
josespaul | 1:c72a74304949 | 38 | if (weight < 0.005) |
josespaul | 1:c72a74304949 | 39 | weight = 0.00; |
josespaul | 1:c72a74304949 | 40 | lcd.printf("\n\n\n Weight %.3lf KG",weight); |
josespaul | 1:c72a74304949 | 41 | //pc.printf("current_value : %ld Kilograms :%.3lf\n",current_value,weight); |
josespaul | 1:c72a74304949 | 42 | for(i=0, j=0.105; i<=MAX_WEIGHT; i=i+(MAX_WEIGHT/STEPS), j=j-(0.055/STEPS)) { |
josespaul | 1:c72a74304949 | 43 | if(weight >= i) |
josespaul | 0:bca8659e032c | 44 | ser_mtr.write(j); |
josespaul | 0:bca8659e032c | 45 | } |
josespaul | 1:c72a74304949 | 46 | } |
josespaul | 0:bca8659e032c | 47 | } |