本帖最后由 lxf 于 2020-8-15 09:50 编辑
目标
EEPROM记录存储按键按下的次数,并在LED1602显示屏模块上进行显示。
实验材料
Arduino UNO开发板 LED1602显示屏模块 按钮模块*2 配套USB数据线 配套杜邦线若干 Arduino IDE软件
EEPROM记录存储按键按下的次数,并在LED1602显示屏模块上进行显示,黄色按钮每按一次,数字加1,蓝色按钮被按下,数字清零。
接线图
Arduino UNO <------> LCD1602显示屏 5V <------> VCC GND <------> GND A4 <------> SDA A5 <------> SCL Arduino UNO <------> 黄色按钮模块 5V <------> V GND <------> G 5 <------> D Arduino UNO <------> 蓝色按钮模块 5V <------> V GND <------> G 6 <------> D - #include <Wire.h>
- #include <LiquidCrystal_I2C.h> //LCD1602显示屏库文件
- #include <EEPROM.h> //EEPROM库文件
- volatile int X; //定义一个整型变量X
- LiquidCrystal_I2C mylcd(0x27,16,2); //设置LCD1602设备地址,这里的地址是0x27
- void setup(){
- X = 0; //初始化X变量为0
- mylcd.init(); // 初始化LCD
- mylcd.backlight(); //设置LCD背景等亮
- pinMode(6, INPUT); //定义6号引脚为输入
- pinMode(5, INPUT); //定义5号引脚为输入
- }
- void loop(){
- mylcd.setCursor(1-1, 1-1); //设置显示指针,这里是第1行第1列
- mylcd.print(EEPROM.read(1)); //在Lcd显示屏上输出存储器地址为1的字节
- if (digitalRead(6) == true) { //如果蓝色按钮被按下,那么存储器地址为1的字节清0 ,Lcd显示屏清屏
- delay(300);
- EEPROM.write(1, 0);
- mylcd.clear();
- }
- X = EEPROM.read(1); //把存储器地址为1的字节赋值给X
- if (digitalRead(5) == true) { //如果黄色按钮被按下
- while (digitalRead(5) == true) { //侦测等待黄色按钮被松开
- delay(10);
- }
- X = X + 1; // X加1
- EEPROM.write(1, X); //存储器地址为1的字节写入X的数值
- mylcd.setCursor(1-1, 1-1); //设置显示指针,这里是第1行第1列
- mylcd.print(EEPROM.read(1)); //在Lcd显示屏上输出存储器地址为1的字节
- }
- }
复制代码 |