实验名称:利用OLED显示光敏电阻测得的亮度的值
显示效果如下:
硬件信息:SSD1306+Arduino uno+光敏电阻模块或光敏电阻
元件连接图:
代码如下:
/* OlED_brightness 用OLED显示亮度
* 津波 于2023.7.19
* 引脚信息:
* 光敏电阻的信号引脚(DO)接arduino的A0
* SSD1306——Arduino
* GND —— GND
* VCC —— 5V
* SDA —— A5
* SCL —— A4
*/
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);
#include<Wire.h>
int sensorValue;
void draw(void) { //定义函数drow
u8g.setFont(u8g_font_unifont); //设置在OLED屏幕显示的字体
u8g.drawStr( 30, 12, "20230720"); //这里可以输入当前的时间
u8g.drawStr( 0, 30, "brightness:"); //显示字符串brightness, 0,30为字符串的位置
u8g.setPrintPos(92,30); //为之后的显示亮度值确定位置
u8g.print(sensorValue); //显示亮度的值
}
void setup(){
Serial.begin(9600); //串口调试的波特率为9600
pinMode(A0,INPUT); //设置A0为输入模式
}
void loop(){
sensorValue=analogRead(A0); //读取数据引脚上亮度的值
Serial.print("brightness:"); //串口打印
Serial.println(sensorValue);
delay(50);
u8g.firstPage();
do {
draw(); //在OLED屏幕上显示draw函数
} while( u8g.nextPage() );
// rebuild the picture after some delay
delay(50);
}