arduino-电压表
arduino-电压表##

arduino-电压表测量10V电压,R1=100K,R2=10K

arduino-电压表测量3V电压

/*
A5--SCL
A4--SDA
R1=100K
R2=10K
A0读取模拟值是串联电路R2两端电压,故R1、R2两端电压是模拟值的11倍左右(电阻误差导致)
*/
/#include
#include
#include #define OLED_RESET 4
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);//取16X16汉字字模 逐行式 顺向高位在前
static const unsigned char PROGMEM str1[] =
{0x00,0x04,0x27,0xC4,0x14,0x44,0x14,0x54,0x85,0x54,0x45,0x54,0x45,0x54,0x15,0x54,
0x15,0x54,0x25,0x54,0xE5,0x54,0x21,0x04,0x22,0x84,0x22,0x44,0x24,0x14,0x08,0x08
};/*"测",0*/static const unsigned char PROGMEM str2[] =
{
0x00,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0xFF,0xFE,0x00,0x00,0x1F,0xF0,
0x11,0x10,0x1F,0xF0,0x11,0x10,0x1F,0xF0,0x01,0x00,0x1F,0xF0,0x01,0x00,0x7F,0xFC
};/*"量",1*/static const unsigned char PROGMEM str3[] =
{
0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,
0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x0A,0x01,0x02,0x01,0x02,0x00,0xFE
};/*"电",2*/static const unsigned char PROGMEM str4[] =
{
0x00,0x00,0x3F,0xFE,0x20,0x00,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x2F,0xFC,
0x20,0x80,0x20,0x80,0x20,0x90,0x20,0x88,0x20,0x88,0x40,0x80,0x5F,0xFE,0x80,0x00
};/*"压",3*/int pin = A0; //定义引脚为A0
float n = 0.00; //Vin = 0.00;
int m = 0; //val = 0;void setup()
{Serial.begin(9600);display.begin(SSD1306_SWITCHCAPVCC, 0x3C);display.setTextColor(WHITE); //开像素点发光display.clearDisplay(); //清屏pinMode(pin,INPUT);display.setTextSize(1); //设置字体大小delay(1000);Serial.println("begin");display.setTextSize(1); //设置字体大小display.setCursor(35, 5); //设置显示位置display.println("-2021 TI-"); //输出字符display.drawBitmap(32, 15, str1, 16, 16, 1); //画出字符对应点阵数据display.drawBitmap(48, 15, str2, 16, 16, 1); display.drawBitmap(64, 15, str3, 16, 16, 1); display.drawBitmap(80, 15, str4, 16, 16, 1); display.display();//开显示 }void loop()
{m = analogRead(A0); //reads the analog inputn=m*5.00/1024*11.35; //R1、R2两端电压是模拟值的11倍左右(电阻误差导致)if (n<0.09) //condition {n=0.00; //statement to quash undesired reading !} Serial.print("voltage:");Serial.print(n);Serial.println("V");delay(2000);display.clearDisplay(); //清屏display.setCursor(35, 0); //设置显示位置display.setTextSize(1); //设置字体大小display.setTextColor(WHITE); //设置字体颜色白色display.println("-2021 TI-"); //输出字符display.setCursor(20,15); //设置字体的起始位置 display.setTextSize(2); //设置字体大小display.setTextColor(WHITE); //设置字体颜色白色display.print("voltage:");display.setCursor(20,40); //设置字体的起始位置 display.setTextSize(2); //设置字体大小display.setTextColor(WHITE); //设置字体颜色白色display.print(n);display.println("v");display.display();//开显示
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
