Тема: xl4015
#define KALL_I_IZ 1.200
#define KALL_U_IZ 0.730
#include <Wire.h>
#include <U8glib.h> // https://github.com/olikraus/u8glib/
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);
int n,m,m1;
float i_dig,u_dig,i_dig1;
float u_iz,i_iz,i_iz1;
long i_sum,u_sum,i_sum1;
bool w=1;
void setup(){
delay(200);
Wire.begin();
analogReadResolution(12);// АЦП 12 БИТ
analogReference(DEFAULT);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(13,OUTPUT);
u8g.firstPage();
do {
u8g.setFont(u8g_font_profont12r);
u8g.drawStr(30,10,"POWER SUPPLY");
u8g.drawStr(30,25,"0-30V 0-3A");
u8g.drawStr(30,55,"rcl-radio.ru");
} while( u8g.nextPage() );
delay(2000);
}
void loop(){
i_dig = analogRead(A0);
i_sum = i_sum+i_dig;
n++;if(n>9){n=0;i_iz=i_sum/10;i_sum=0;}
u_dig = analogRead(A1);
u_sum = u_sum+u_dig;
m++;if(m>9){m=0;u_iz=u_sum/10;u_sum=0;w=1;}
i_dig1 = analogRead(A2);
i_sum1 = i_sum1+i_dig1;
m1++;if(m1>9){m1=0;i_iz1=i_sum1/10;i_sum1=0;}
if(i_iz*1.05>=i_iz1){digitalWrite(13,HIGH);}else{digitalWrite(13,LOW);}
if(w==1){
u8g.firstPage();
do {
u8g.drawLine(0, 26, 128, 26);u8g.drawLine(0, 53, 128, 53);
u8g.setFont(u8g_font_profont29r);
u8g.drawStr(0,22,"U");u8g.setPrintPos(35, 22);u8g.print(u_iz*KALL_U_IZ/100.0,1);u8g.drawStr(110,22,"V");
u8g.drawStr(0,50,"I");u8g.setPrintPos(35, 50);u8g.print(i_iz*KALL_I_IZ/1000.0,2);u8g.drawStr(110,50,"A");
u8g.setFont(u8g_font_profont12r);
u8g.setPrintPos(75, 64);u8g.print(i_iz1*KALL_I_IZ/1000.0,2);
u8g.drawStr(15,64,"I stab = ");u8g.drawStr(105,64,"A");
} while( u8g.nextPage() );
}
}