电子发烧友App

硬声App

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

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

3天内不再提示
电子发烧友网>电子资料下载>电子资料>简单的录制和播放开源分享

简单的录制和播放开源分享

2022-11-07 | zip | 0.13 MB | 次下载 | 免费

资料介绍

描述

该项目允许您“记录”感官输入并将其存储以备后用。信息存储在 EEPROM 而不是动态存储器中,因此即使在电路板关闭时也可以记住它(就像一个微型硬盘驱动器)。

材料:

作为一名亚马逊合作伙伴,我从符合条件的购买中赚取收入。

第 1 步:制作电路

 

 
poYBAGNocviAMayjAAD1Hp_lysg081.png
示意图
 

根据上图制作电路:

  • 电位器到引脚 A0
  • 按钮到 D2
  • 伺服到针 D3
  • 导致引脚 D13

在这里查看电路模拟

第 2 步:上传代码

将此代码上传到您的 Arduino(无需额外的库安装):

#include 
#include //used to store recorded values
Servo myServo;
float resolution = 1000;//MUST be less than EEPROM.length()
float recordTime = 5; //delay time
bool recording = false;
void setup() {
 pinMode(13, OUTPUT); //status led
 pinMode(2, OUTPUT);
 myServo.attach(3);
 Serial.begin(9600);
 digitalWrite(2, HIGH);
 //Serial.println(EEPROM.length());
}
void loop() {
 if (recording == true) {//record
   for (int i = 1; i <= resolution; i++) {
     digitalWrite(13, HIGH); //light status led
     int val = map(analogRead(A0), 0, 1023, 0, 180);
     EEPROM.write(i, val);
     //Serial.println(EEPROM.read(i));
     myServo.write(val);
     delay(recordTime);
   }
   digitalWrite(13, LOW); //turn off status led
   delay(1000);//give time for person
   recording = false;
 }
 else {
   for (int i = 1; i <= resolution; i++) {//playback
     if (digitalRead(2) == 0) {//stop playback and record new values
       recording = true;
       break;
     }
     int readval = EEPROM.read(i);
     myServo.write(readval);
     //Serial.println(readval);
     delay(recordTime);
   }
   digitalWrite(13, HIGH); //show a new repeat
   delay(100);
   digitalWrite(13, LOW);
 }
}

注意说的评论//MUST be less than EEPROM.length()

要查找您的板的 EEPROM 存储的大小,取消注释//Serial.println(EEPROM.read(i)); 这将在串行监视器中打印 EEPROM 的大小,您可以相应地更改注释变量的值。

如何使用

要使用该电路,您只需按下按钮开始记录并通过电位器输入所需的信息。现在,板子会无休止地重复你的动作(每次迭代都会闪烁一个 LED),直到你再次按下按钮来记录新的动作。您还可以通过更改 和 的值来改变记录的时间resolutionrecordTime

笔记

这段代码在 Arduino 上使用了大量的 EEPROM 内存,因此有一些解决方案:

  • 您可以一次只记录一个位置,而不是“流畅”的录音,让它更加“跳跃”。只需将伺服器移动到新位置并按下按钮即可。这样做,直到你拥有所有你想要的职位。
  • 存储在 PROGMEM(程序存储器)而不是 EEPROM
  • 如果您不需要在断电期间保存信息,请使用常规整数数组而不是 EEPROM。
  • 写入外部存储,例如 microSD 卡

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

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

资料有问题?举报资料奖积分

评论

请按住滑块,拖动到最右边
了解新功能

查看更多

广告

下载排行

本周

  1. 1STM32开发板教程之STM32开发指南免费下载
  2. 24.88 MB   |  176次下载  |  3 积分
  3. 2EN60335-1安规标准 中文版本
  4. 1.86 MB   |  52次下载  |  1 积分
  5. 3LT7406FJ N沟道增强型功率MOSFET规格书
  6. 1.38 MB   |  2次下载  |  免费
  7. 4米尔-瑞芯微RK3562核心板开发板,4核CPU,ARM中量级多面手
  8. 3.45 MB  |  2次下载  |  免费
  9. 5STM32系列产品选型-中文
  10. 1.81 MB  |  1次下载  |  免费
  11. 6LTS6802FJCB N沟道增强型功率MOSFET规格书
  12. 1.00 MB   |  1次下载  |  免费
  13. 7运算放大电路入门教程
  14. 0.70 MB   |  1次下载  |  免费
  15. 8开源鸿蒙版真4K显示器广告机主板AIoT-6780SE彩页
  16. 613.79 KB  |  1次下载  |  免费

本月

  1. 1STM32开发板教程之STM32开发指南免费下载
  2. 24.88 MB   |  176次下载  |  3 积分
  3. 2DeepSeek:从入门到精通
  4. 5.36 MB   |  92次下载  |  1 积分
  5. 3EN60335-1安规标准 中文版本
  6. 1.86 MB   |  52次下载  |  1 积分
  7. 4OAH0428最新规格书(中文)
  8. 2.52 MB   |  27次下载  |  10 积分
  9. 5UHV系列雷电冲击电压发生器试验装置详细说明使用
  10. 1.07 MB   |  17次下载  |  免费
  11. 6Altium-常用3D封装库(Step)接插件篇
  12. 4.95 MB   |  14次下载  |  免费
  13. 7介绍一些常用的电子元器件
  14. 3.20 MB   |  7次下载  |  免费
  15. 8麻将机升降电路
  16. 0.12 MB   |  6次下载  |  1 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935124次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420063次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233088次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191371次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183336次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81583次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73814次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65988次下载  |  10 积分