Weight scale using ADS1220

Dependencies:   ADS1220 mbed

Fork of WeightScale by san m

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?

UserRevisionLine numberNew 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 }