0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino篇—EEPROM的应用

冬至子 来源:X的创客课堂 作者:MRXY 2023-11-01 14:39 次阅读

相关知识

**红外计数测速传感器:**一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管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);

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

    关注

    13

    文章

    1138

    浏览量

    65695
  • EEPROM
    +关注

    关注

    9

    文章

    928

    浏览量

    80352
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184870
  • 光探测器
    +关注

    关注

    1

    文章

    34

    浏览量

    10776
  • TM1637
    +关注

    关注

    0

    文章

    21

    浏览量

    9332
收藏 人收藏

    评论

    相关推荐

    53 51_实战_EEPROM读写测试(第一讲:EEPROM简介) - 第3节

    EEPROM
    充八万
    发布于 :2023年08月19日 16:49:43

    arduino学习笔记30 - EEPROM读写实验

    电子方式多次复写的半导体存储设备。arduino的控制芯片中都自带了EEPROM,它的用途比较广,掉电后需要保存的信息都可以存储到这里。比如电子保险箱的密码。咱们先用官方库做一个实验,在第五个地址中写入
    发表于 10-24 10:53

    图书《arduino程序设计基础》

    !… 21第2章基础… 262.1 Arduino语言… 262.1.1Arduino程序结构… 262.2 C\C++语言基础… 272.2.1数据类型… 272.2.2运算符与表达式… 292.2.3
    发表于 06-12 14:37

    转:基础32--STM32 .FLASH模拟EEPROM实验

    【众想】大黄蜂开发板视频教程 ----刘洋边讲边写 基础32--FLASH模拟EEPROM实验http://www.stmcu.org/module/forum/thread-607015-1-1.html
    发表于 07-28 15:10

    Arduino开发实战指南 AVR

    的产品,目前,国内关注Arduino的人越来越多,所以本书以实际应用为纽带将各个章节联系起来。 作者: 程晨 出版社: 机械工业出版社副标题: AVRISBN: 9787111370055图书
    发表于 08-03 16:14

    Arduino控制器选型指南(一):Arduino官方

    最近越来越多的工程师选择用开源硬件来制作项目的demo或者玩一些有趣的项目,但是市面上那么多arduino开发板,功能和参数上还是很不一样的,怎么快速的选择最适合当下你所需的开发板呢?打开无数产品
    发表于 07-09 11:41

    Arduino开发实战指南 AVR

    Arduino开发实战指南AVR
    发表于 04-04 12:20

    Arduino智能小车测试

    为后续的研究先做资料的铺垫,如果错误,欢迎指正Arduino智能小车——测试Arduino 智能小车-电机控制delay 延时处理:delay(10000)某个操作运行10秒后再进行其他操作
    发表于 09-16 07:11

    EEPROM 和SPI flash的区别是什么

    eeprom的容量一般以kb为单位,比如我们经常用到的arduino电子积木模块DS3231时钟模块,上面同时集成了一片AT24C32芯片。AT24C32芯片就是eeprom芯片,容量32Kbit
    发表于 01-26 06:58

    基于Arduino设计EEPROM外部存储器

    描述用 Arduino 设计我自己的 EEPROM 外部存储器 PROGRAMMER / RECORDER | 24LC256读/写
    发表于 07-26 06:59

    怎样在Arduino上永久存储数据

    一些Arduino板允许您将数据永久存储在EEPROM中但必须保持电路板插入。本文将教你如何写入板载EEPROM(如果你的Arduino有一个),并向您介绍一种允许您使用外部存储器的替
    的头像 发表于 08-01 17:47 2.1w次阅读
    怎样在<b class='flag-5'>Arduino</b>上永久存储数据

    Arduino EEPROM设置初始化

    要更新值,我们可以使用我们拥有的write函数关于初始化,但更好的方法是使用提供的更新功能。该功能的作用是,它首先检查我们要保存的值是否与EEPROM中已经存在的值相同,如果不保存则不更新。这样,它会尝试减少写操作的次数,以延长EEPROM的寿命。
    的头像 发表于 10-21 17:28 8573次阅读

    怎样使用Arduino EEPROM在重启后保存数据

    您将需要将地址和writeCount存储在EEPROM中(并且writeCount需要在地址位置之间划分)。在大多数情况下,将不需要此级别的保护。 Arduino也是如此便宜,因此您可能会发现购买备份更容易!
    的头像 发表于 11-28 10:38 7723次阅读

    具有内置512K EEPROM和时钟(AC5EC)的Arduino克隆

    电子发烧友网站提供《具有内置512K EEPROM和时钟(AC5EC)的Arduino克隆.zip》资料免费下载
    发表于 07-08 09:46 2次下载
    具有内置512K <b class='flag-5'>EEPROM</b>和时钟(AC5EC)的<b class='flag-5'>Arduino</b>克隆

    Arduino设计EEPROM外部存储器PROGRAMMER/RECORDER

    电子发烧友网站提供《用Arduino设计EEPROM外部存储器PROGRAMMER/RECORDER.zip》资料免费下载
    发表于 07-22 09:33 1次下载
    用<b class='flag-5'>Arduino</b>设计<b class='flag-5'>EEPROM</b>外部存储器PROGRAMMER/RECORDER