2020_09_07_AD7190_LoRa

Dependencies:   mbed

Committer:
peng103617
Date:
Thu Aug 06 06:52:19 2020 +0000
Revision:
0:0e20215b178e
AD7190_LoRa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
peng103617 0:0e20215b178e 1 /* -- MBED - AD7190
peng103617 0:0e20215b178e 2
peng103617 0:0e20215b178e 3 Porting by Rododo Science. .... 2019/9/13
peng103617 0:0e20215b178e 4
peng103617 0:0e20215b178e 5 -- */
peng103617 0:0e20215b178e 6
peng103617 0:0e20215b178e 7
peng103617 0:0e20215b178e 8 #include "mbed.h"
peng103617 0:0e20215b178e 9 #include "AD7190.h"
peng103617 0:0e20215b178e 10 SPI spi(D11, D12, D13); // mosi, miso, sclk
peng103617 0:0e20215b178e 11 DigitalOut cs(D10); // Different CS operations
peng103617 0:0e20215b178e 12 DigitalIn ad_rdy(D9); // Use of a _RDY Pin
peng103617 0:0e20215b178e 13
peng103617 0:0e20215b178e 14 Serial uart(PC_4, PC_5);//TX4,RX4
peng103617 0:0e20215b178e 15 int idx=0;
peng103617 0:0e20215b178e 16
peng103617 0:0e20215b178e 17 Serial pc(USBTX, USBRX); // tx, rx
peng103617 0:0e20215b178e 18
peng103617 0:0e20215b178e 19 void setup()
peng103617 0:0e20215b178e 20 {
peng103617 0:0e20215b178e 21 cs.write(1);
peng103617 0:0e20215b178e 22 wait(1);
peng103617 0:0e20215b178e 23 pc.printf("Example Start\n");
peng103617 0:0e20215b178e 24 cs.write(0);
peng103617 0:0e20215b178e 25 while(AD7190_Init(800)==0){
peng103617 0:0e20215b178e 26 pc.printf("Can't allocate AD7190\n");
peng103617 0:0e20215b178e 27 wait(5);
peng103617 0:0e20215b178e 28 }
peng103617 0:0e20215b178e 29
peng103617 0:0e20215b178e 30 /* Calibrates channel AIN3(+) - AIN4(-). */
peng103617 0:0e20215b178e 31 AD7190_Calibrate(AD7190_MODE_CAL_INT_ZERO, AD7190_CH_AIN3P_AIN4M);
peng103617 0:0e20215b178e 32
peng103617 0:0e20215b178e 33 }
peng103617 0:0e20215b178e 34
peng103617 0:0e20215b178e 35 void loop()
peng103617 0:0e20215b178e 36 {
peng103617 0:0e20215b178e 37
peng103617 0:0e20215b178e 38 unsigned long val = AD7190_TemperatureRead();
peng103617 0:0e20215b178e 39 //pc.printf("Temperature = \t =%lu \r\n", val);
peng103617 0:0e20215b178e 40
peng103617 0:0e20215b178e 41 AD7190_ChannelSelect(AD7190_CH_AIN1P_AIN2M);
peng103617 0:0e20215b178e 42 /* Selects unipolar operation and ADC's input range to +-Vref/1. plesase refer AD7190_CONF_GAIN(x) */
peng103617 0:0e20215b178e 43 AD7190_RangeSetup(0, AD7190_CONF_GAIN_64);
peng103617 0:0e20215b178e 44
peng103617 0:0e20215b178e 45 //val = AD7190_SingleConversion();
peng103617 0:0e20215b178e 46 //pc.printf("ADC = \t%lu \r\n", val);
peng103617 0:0e20215b178e 47
peng103617 0:0e20215b178e 48 val = AD7190_ContinuousReadAvg(8);
peng103617 0:0e20215b178e 49 //pc.printf("ADC_avg = \t%lu \r\n", val);
peng103617 0:0e20215b178e 50
peng103617 0:0e20215b178e 51 double voltageAn34 = ( val * 0.00000011921 - 1 ) * 4.096 /64 ; //AIN=(輸出碼/2^23-1)*(Vref/gain)
peng103617 0:0e20215b178e 52
peng103617 0:0e20215b178e 53
peng103617 0:0e20215b178e 54 pc.printf("%f \r\n", voltageAn34);
peng103617 0:0e20215b178e 55
peng103617 0:0e20215b178e 56 uart.printf("s%f# \r\n", voltageAn34);
peng103617 0:0e20215b178e 57
peng103617 0:0e20215b178e 58 idx=idx+1;
peng103617 0:0e20215b178e 59 wait(0.01);
peng103617 0:0e20215b178e 60 //pc.printf("TX send s %f #\r\n",voltageAn34);
peng103617 0:0e20215b178e 61 //wait(1);
peng103617 0:0e20215b178e 62
peng103617 0:0e20215b178e 63
peng103617 0:0e20215b178e 64 }
peng103617 0:0e20215b178e 65
peng103617 0:0e20215b178e 66
peng103617 0:0e20215b178e 67 //---DON'T CHANGE BELOW----
peng103617 0:0e20215b178e 68 // MBED compensate
peng103617 0:0e20215b178e 69 // main() runs in its own thread in the OS
peng103617 0:0e20215b178e 70 int main() {
peng103617 0:0e20215b178e 71 //---Enable Debug---
peng103617 0:0e20215b178e 72 pc.baud(9600);
peng103617 0:0e20215b178e 73 uart.baud(9600);
peng103617 0:0e20215b178e 74 //--Mark out to disable debug
peng103617 0:0e20215b178e 75 setup();
peng103617 0:0e20215b178e 76 while (true) {
peng103617 0:0e20215b178e 77 loop();
peng103617 0:0e20215b178e 78
peng103617 0:0e20215b178e 79
peng103617 0:0e20215b178e 80 }
peng103617 0:0e20215b178e 81 }