Dependencies:   mbed

Committer:
caa45040
Date:
Tue Apr 27 11:13:23 2021 +0000
Revision:
0:452bfcde2612
stm32l101f4p6 adc i2c_lcd 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caa45040 0:452bfcde2612 1 #include "mbed.h"
caa45040 0:452bfcde2612 2
caa45040 0:452bfcde2612 3 //10の割り算 0から1028までは、正しい。主に0から999
caa45040 0:452bfcde2612 4 #define DVI10(n) ((n*205)>>11)
caa45040 0:452bfcde2612 5
caa45040 0:452bfcde2612 6 AnalogIn adc_vbat(A3); //PA_4
caa45040 0:452bfcde2612 7
caa45040 0:452bfcde2612 8 #define ADDR (0xD0) // address
caa45040 0:452bfcde2612 9 #define ADDR_LCD (0x7C) // address
caa45040 0:452bfcde2612 10
caa45040 0:452bfcde2612 11 //I2C i2c(I2C_SDA, I2C_SCL); //767
caa45040 0:452bfcde2612 12 //I2C i2c(dp5, dp27); //1114
caa45040 0:452bfcde2612 13 I2C i2c(PA_10, PA_9); //010
caa45040 0:452bfcde2612 14
caa45040 0:452bfcde2612 15 char data_read[8]; //i2cバッファー
caa45040 0:452bfcde2612 16
caa45040 0:452bfcde2612 17 char INIT_com[]={0x0,0x38,
caa45040 0:452bfcde2612 18 0x0,0x39,
caa45040 0:452bfcde2612 19 0x0,0x4,
caa45040 0:452bfcde2612 20 0x0,0x14,
caa45040 0:452bfcde2612 21 0x0,0x70,
caa45040 0:452bfcde2612 22 0x0,0x56,
caa45040 0:452bfcde2612 23 0x0,0x6C,
caa45040 0:452bfcde2612 24 0x0,0x38,
caa45040 0:452bfcde2612 25 0x0,0xC,
caa45040 0:452bfcde2612 26 0x0,0x1,
caa45040 0:452bfcde2612 27 0x40,0x41};
caa45040 0:452bfcde2612 28
caa45040 0:452bfcde2612 29 char INIT_cls[]={0x0,0x1};
caa45040 0:452bfcde2612 30
caa45040 0:452bfcde2612 31 char ch_hex_a_b[5];
caa45040 0:452bfcde2612 32 char *ch_hex_a(int l_num)
caa45040 0:452bfcde2612 33 {
caa45040 0:452bfcde2612 34 int a,b,c;
caa45040 0:452bfcde2612 35
caa45040 0:452bfcde2612 36 b=DVI10(l_num);
caa45040 0:452bfcde2612 37 c=l_num-(b*10);
caa45040 0:452bfcde2612 38 l_num=b;
caa45040 0:452bfcde2612 39 a=DVI10(l_num);
caa45040 0:452bfcde2612 40 b=l_num-(a*10);
caa45040 0:452bfcde2612 41
caa45040 0:452bfcde2612 42 ch_hex_a_b[0] = '@';
caa45040 0:452bfcde2612 43 ch_hex_a_b[1] = '0' + a;
caa45040 0:452bfcde2612 44 ch_hex_a_b[2] = '0' + b;
caa45040 0:452bfcde2612 45 ch_hex_a_b[3] = '0' + c;
caa45040 0:452bfcde2612 46 ch_hex_a_b[4] = 0;
caa45040 0:452bfcde2612 47
caa45040 0:452bfcde2612 48 return(ch_hex_a_b);
caa45040 0:452bfcde2612 49 }
caa45040 0:452bfcde2612 50
caa45040 0:452bfcde2612 51 int ii; //ループカウンタ
caa45040 0:452bfcde2612 52
caa45040 0:452bfcde2612 53 int main()
caa45040 0:452bfcde2612 54 {
caa45040 0:452bfcde2612 55 //液晶の初期化
caa45040 0:452bfcde2612 56 for(ii=0;ii<11;ii++){
caa45040 0:452bfcde2612 57 i2c.write(ADDR_LCD, &INIT_com[ii*2], 2);wait_ms(2);
caa45040 0:452bfcde2612 58 } //for
caa45040 0:452bfcde2612 59
caa45040 0:452bfcde2612 60 // i2c.write(ADDR, "\230", 1); //16bit 15sps PGA x1
caa45040 0:452bfcde2612 61
caa45040 0:452bfcde2612 62 int p,s;
caa45040 0:452bfcde2612 63 while (1) {
caa45040 0:452bfcde2612 64 //液晶のクリア
caa45040 0:452bfcde2612 65 i2c.write(ADDR_LCD,INIT_cls,2);wait_ms(2);
caa45040 0:452bfcde2612 66
caa45040 0:452bfcde2612 67 //adcの読み込み
caa45040 0:452bfcde2612 68 s = (adc_vbat.read_u16()>>4);
caa45040 0:452bfcde2612 69
caa45040 0:452bfcde2612 70 // (4096*165)/2048=330 電圧の100倍に変換
caa45040 0:452bfcde2612 71 //s = 13;
caa45040 0:452bfcde2612 72 p = (s*165) >> 11;
caa45040 0:452bfcde2612 73
caa45040 0:452bfcde2612 74 // //データの読み込み
caa45040 0:452bfcde2612 75 // i2c.read(ADDR | 1, data_read, 2);
caa45040 0:452bfcde2612 76 //
caa45040 0:452bfcde2612 77 // s = (data_read[0] * 256 ) + data_read[1];
caa45040 0:452bfcde2612 78 // //s = 32767;
caa45040 0:452bfcde2612 79 // //printf("-s=%d\r\n",s); //767
caa45040 0:452bfcde2612 80 // //printf(" h=%d\r\n",data_read[0] * 256 );
caa45040 0:452bfcde2612 81 // //printf(" l=%d\r\n",data_read[1]);
caa45040 0:452bfcde2612 82 //
caa45040 0:452bfcde2612 83 // // 32768/(163.84/2)=400 luxに変換
caa45040 0:452bfcde2612 84 // p=( ((s>>5)*6) + (s>>7) ) >> 4;
caa45040 0:452bfcde2612 85 // //printf(" p=%d\r\n",p); //767
caa45040 0:452bfcde2612 86
caa45040 0:452bfcde2612 87 i2c.write(ADDR_LCD, ch_hex_a( p ) ,4);
caa45040 0:452bfcde2612 88
caa45040 0:452bfcde2612 89 wait_ms(1000);
caa45040 0:452bfcde2612 90 }//while
caa45040 0:452bfcde2612 91
caa45040 0:452bfcde2612 92 }//main
caa45040 0:452bfcde2612 93
caa45040 0:452bfcde2612 94 void error(const char* format, ...){}