san m
/
WeightScale
Weight scale using ADS1220
Fork of WeightScale by
main.cpp@5:58df937cd05d, 2017-02-15 (annotated)
- Committer:
- sandeepmalladi
- Date:
- Wed Feb 15 15:53:57 2017 +0000
- Revision:
- 5:58df937cd05d
- Parent:
- 4:3ca00da0024d
Weight Scale Implementation using ADS1220
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sandeepmalladi | 0:94208ccccbde | 1 | #include "mbed.h" |
sandeepmalladi | 0:94208ccccbde | 2 | #include "ADS1220.h" |
sandeepmalladi | 0:94208ccccbde | 3 | #include "math.h" |
sandeepmalladi | 0:94208ccccbde | 4 | |
sandeepmalladi | 0:94208ccccbde | 5 | |
sandeepmalladi | 1:933f47cce5bf | 6 | #define PGA 128 // Programmable Gain = 1 |
sandeepmalladi | 1:933f47cce5bf | 7 | #define VREF 5.0 // Internal reference of 2.048V |
sandeepmalladi | 0:94208ccccbde | 8 | #define VFSR VREF/PGA |
sandeepmalladi | 0:94208ccccbde | 9 | #define FSR (((long int)1<<23)) |
sandeepmalladi | 0:94208ccccbde | 10 | #define LSB_Size (VFSR/FSR) |
sandeepmalladi | 0:94208ccccbde | 11 | |
sandeepmalladi | 1:933f47cce5bf | 12 | ADS1220 ads1220_com(SPI_MOSI, SPI_MISO, SPI_SCK,SPI_CS); |
sandeepmalladi | 0:94208ccccbde | 13 | Serial data_serial(USBTX, USBRX); |
sandeepmalladi | 0:94208ccccbde | 14 | InterruptIn DRDY(PC_5); |
sandeepmalladi | 0:94208ccccbde | 15 | |
sandeepmalladi | 0:94208ccccbde | 16 | |
sandeepmalladi | 0:94208ccccbde | 17 | |
sandeepmalladi | 0:94208ccccbde | 18 | |
sandeepmalladi | 0:94208ccccbde | 19 | |
sandeepmalladi | 1:933f47cce5bf | 20 | bool New_data_avialable; |
sandeepmalladi | 0:94208ccccbde | 21 | void ext_int_DRDY(void); |
sandeepmalladi | 0:94208ccccbde | 22 | float code2volt(float c); |
sandeepmalladi | 0:94208ccccbde | 23 | |
sandeepmalladi | 1:933f47cce5bf | 24 | signed long tData; |
sandeepmalladi | 1:933f47cce5bf | 25 | float volt; |
sandeepmalladi | 0:94208ccccbde | 26 | |
sandeepmalladi | 0:94208ccccbde | 27 | int main() |
sandeepmalladi | 0:94208ccccbde | 28 | { |
sandeepmalladi | 1:933f47cce5bf | 29 | data_serial.baud(115200); |
sandeepmalladi | 0:94208ccccbde | 30 | wait(0.1); |
sandeepmalladi | 0:94208ccccbde | 31 | DRDY.rise(&ext_int_DRDY); |
sandeepmalladi | 0:94208ccccbde | 32 | ads1220_com.Config(); |
sandeepmalladi | 0:94208ccccbde | 33 | ads1220_com.SendStartCommand(); |
sandeepmalladi | 0:94208ccccbde | 34 | while(1) |
sandeepmalladi | 0:94208ccccbde | 35 | { |
sandeepmalladi | 1:933f47cce5bf | 36 | if(New_data_avialable) |
sandeepmalladi | 1:933f47cce5bf | 37 | { |
sandeepmalladi | 1:933f47cce5bf | 38 | New_data_avialable = 0; |
sandeepmalladi | 1:933f47cce5bf | 39 | tData = ads1220_com.ReadData(); |
sandeepmalladi | 1:933f47cce5bf | 40 | volt = code2volt(tData); |
sandeepmalladi | 1:933f47cce5bf | 41 | data_serial.printf("\rVoltage : %f\n",volt); |
sandeepmalladi | 1:933f47cce5bf | 42 | } |
sandeepmalladi | 0:94208ccccbde | 43 | } |
sandeepmalladi | 0:94208ccccbde | 44 | } |
sandeepmalladi | 0:94208ccccbde | 45 | |
sandeepmalladi | 0:94208ccccbde | 46 | float code2volt(float c) |
sandeepmalladi | 0:94208ccccbde | 47 | { |
sandeepmalladi | 0:94208ccccbde | 48 | float Vout = 0; |
sandeepmalladi | 0:94208ccccbde | 49 | Vout = (float)(c*LSB_Size*1000); //In mV |
sandeepmalladi | 0:94208ccccbde | 50 | return Vout; |
sandeepmalladi | 0:94208ccccbde | 51 | } |
sandeepmalladi | 0:94208ccccbde | 52 | |
sandeepmalladi | 0:94208ccccbde | 53 | void ext_int_DRDY(void) |
sandeepmalladi | 0:94208ccccbde | 54 | { |
sandeepmalladi | 0:94208ccccbde | 55 | New_data_avialable = 1; |
sandeepmalladi | 0:94208ccccbde | 56 | } |