电子发烧友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. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费