Arduino篇—EEPROM的应用

电子说

1.3w人已加入

描述

相关知识

**红外计数测速传感器:**一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。

其工作原理为通过对红外发射光的阻断和导通,在红外接收管感应出的电流变化来实现开和关的判断。有遮挡,输出高电平;无遮挡,输出低电平。

TM1637四位数码管模块: 是一个12脚的带时钟点的4位共阳数码管(0.36英寸)的显示模块,驱动芯片为TM1637,只需2根信号线即可使单片机控制4位8段数码管。可以免去我们前面繁琐的接线。

发光二极管

电路搭建

所需材料

ArduinoUno * 1
红外计数测速传感器 * 1
TM1637四位数码管模块 * 1

电路连接

红外计数测速传感器接线:

VCC------>Arduino的+5V
GND------>Arduino的GND
DO------>Arduino的信号端

TM1637四位数码管模块接线:

CLK------>Arduino的信号端
DIO----->Arduino的信号端
VCC------>Arduino的+5V
GND------>Arduino的GND
发光二极管

程序编写

练习一:计数储钱罐

使用红外计数测速传感器制作一个能够计数的储蓄罐。

图形化****方式:

发光二极管

代码方式:

在使用代码编程之前,我们需要先添加TM1637四位数码管模块的库文件。

点击arduinoIDLE中的工具-->库文件管理,在列表中选择SevenSegmentTM1637进行安装。

发光二极管

/* 项目名称:计数储蓄罐
 * 项目时间:2022.03.02
 * 项目作者:MRX
 */
#include < SevenSegmentTM1637.h >
int count = 0;
int sensor_Pin = 6;
SevenSegmentTM1637  display(2,3);
void setup(){
  count = 0;
  display.begin();
  display.setBacklight(20);
  display.clear();
  pinMode(sensor_Pin, INPUT);
}
void loop(){
  display.print(count);
  if (digitalRead(sensor_Pin)) {
    delay(1000);
    count = count + 1;
  }
}

练习二:断电保留计数的储蓄罐

在练习一的基础上,实现断电后,能够记住之前统计的数量。并在这个数量基础上继续计数。

图形化方式:

发光二极管

代码方式:

/* 项目名称:断电保留计数储蓄罐
 * 项目时间:2022.03.02
 * 项目作者:MRX
 */
#include < SevenSegmentTM1637.h >
#include < EEPROM.h >


int count = 0;
int sensor_Pin = 6;
SevenSegmentTM1637  display(2,3);
void setup(){
  count = 0;
  display.begin();
  display.setBacklight(20);
  display.clear();
  EEPROM.get(0, count);
  pinMode(sensor_Pin, INPUT);
}
void loop(){
  display.print(count);
  if (digitalRead(sensor_Pin)) {
    delay(1000);
    count = count + 1;
    EEPROM.put(0, count);
  }
}

相关知识:

**EEPROM Get: **从EEPROM获得一个值,表达式为EEPROM.get(address, a)

**EEPROM Put: **用变量来把一些数值放到EEPROM里,表达式为EEPROM.put(address, a)

**EEPROM Write: **保存对应的值到EEPROM,表达式为EEPROM.write(address, a);

EEPROM Clear: 清除EEPROM的内容,其实就是把EEPROM中每一个字节写入0,表达式为EEPROM.write(address, 0);

EEPROM Read: 读取EEPROM,表达式为EEPROM.read(address);

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分