资料介绍


成分
| A4988 步进电机驱动器模块 | × 6 |
| NEMA17步进电机 | × 6 |
| 1N4148 | x 1 |
| 0.1μF陶瓷电容 | x 1 |
|
MF1/4W-1KΩ±1% T CCO |
x 1 |
| MF1/4W-220Ω±1% T | x 1 |
| MIDI插座 | x 1 |
|
TLP2662(TP1,F) 东芝 |
x 1 |
| LXDC55 | x 1 |
|
MJ-179PH 多重复合 |
x 1 |
| 12V 3A 交流适配器 | x 1 |
| ARDUINO_纳米 | × 2 |
描述
用步进电机播放音乐。
如何制作可以播放音乐的步进电机
任何 12V NEMA17 标准步进电机都可以工作。
如果您根据板上的丝绸编写零件,它将起作用。
打开电源将程序写入arduino。
请将接收节目的频道更改为您要接收的频道。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
常量 MIDI_CH = 1; // 要接收的 MIDI 通道
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
即使您没有 DCDC 转换器,如果您通过 USB 为 Arduino 供电,它也可以工作。
支持弯音事件。
光电耦合器已被确认可与 TLP2630 和 TLP2662 一起使用
代码
主要代码
阿杜诺
| #include | |
| #include | |
| // 音の周波数の配列(Hz単位) | |
| const word noteFreq[] = { | |
| 0,9,9, 10,10, 11, 12,12, 13, 14, 15, 15, | |
| 16,17, 18, 19,21, 22,23,25, 26, 28, 29, 31, | |
| 33,35, 37,39,41, 44,46, 49, 52, 55, 58, 62, | |
| 65, 69, 73, 78,82, 87,93, 98, 104,110,117,124, | |
| 131, 139, 147, 156, 165, 175, 185,196,208,220,233,247, | |
| 262, 277, 294, 311, 330, 349, 370,392,415,440,466,494, | |
| 523, 554, 587, 622, 659, 699, 740,784,831,880,932,988, | |
| 1047, 1109, 1175, 1245, 1319, 1397, 1480, 1568, 1661, 1760, 1865, 1976, | |
| 2093, 2218, 2349, 2489, 2637, 2794, 2960, 3136, 3322, 3520, 3729, 3951, | |
| 4186, 4435, 4699, 4978, 5274, 5587, 5920, 6272, 6645, 7040, 7459, 7902, | |
| 8372, 8870, 9397, 9956, 10548,11175,11840,12544 | |
| }; | |
| const int MIDI_CH = 1;// 受信するMIDIチャンネル | |
| // チャンネル(音声)の数 | |
| const int CH_CNT = 3; | |
| int intervals[CH_CNT] = { 0,0,0 }; // 各チャンネルの現在の音の値 | |
| int currentPitchBend[CH_CNT] = { 0, 0, 0 }; // 各チャンネルのピッチベンド値 | |
| Tone tones[CH_CNT]; // 各チャンネルのToneインスタンス | |
| const byte SND_PINS[CH_CNT] = { 2,3,4 }; // 各チャンネルのPWM出力ピン番号 | |
| MIDI_CREATE_DEFAULT_INSTANCE(); // MIDIインスタンスを作成 | |
| void setup() | |
| { | |
| for (int i = 0; i < CH_CNT; i++) { | |
| pinMode(SND_PINS[i], OUTPUT); // PWM出力ピンを出力モードに設定 | |
| tones[i].begin(SND_PINS[i]); // 各チャンネルのToneを初期化 | |
| } | |
| MIDI.begin(); // MIDI通信を開始 | |
| } | |
| void loop() | |
| { | |
| uint8_t data1, data2, command; | |
| if (MIDI.read()) { | |
| MIDI.setInputChannel(MIDI_CH); // MIDIデータが受信された場合 | |
| command = MIDI.getType(); // 受信するMIDIチャンネルを設定 | |
| if (command == midi::NoteOn) { // ノートオンメッセージの場合 | |
| data1 = MIDI.getData1();// ノート番号を取得 | |
| data2 = MIDI.getData2();// ベロシティを取得 | |
| if (data2 > 0) { // ベロシティが0より大きい場合(ノートが再生されている場合) | |
| for (int i = 0; i < CH_CNT; i++) { | |
| if (intervals[i] == 0) { // 使用可能なチャンネルを探す | |
| intervals[i] = data1;// チャンネルの音の間隔を設定 | |
| tones[i].play(noteFreq[data1] * (1 + (float)currentPitchBend[i] / 8192.0)); // ピッチベンド値に応じて周波数を調整してノートを再生 | |
| break; | |
| } | |
| } | |
| } | |
| } else if (command == midi::NoteOff) { // ノートオフメッセージの場合 | |
| data1 = MIDI.getData1();// ノート番号を取得 | |
| for (int i = 0; i < CH_CNT; i++) { | |
| if (intervals[i] == data1) {// ノート番号が一致するチャンネルを探す | |
| intervals[i] = 0; // チャンネルの音の間隔をリセット | |
| tones[i].stop(); // ノートの再生を停止 | |
| break; | |
| } | |
| } | |
| } else if (command == midi::PitchBend) { // ピッチベンドメッセージの場合 | |
| data1 = MIDI.getData1();// 下位ビットを取得 | |
| data2 = MIDI.getData2();// 上位ビットを取得 | |
| int pitchBendValue = ((data2 << 7) | data1) - 8192; // 下位ビットと上位ビットを結合 | |
| int channel = MIDI.getChannel() - 1;// チャンネル番号を取得 | |
| if (intervals[channel] != 0) { // チャンネルが使用中の場合 | |
| currentPitchBend[channel] = pitchBendValue; // ピッチベンド値を設定 | |
| float frequency = noteFreq[intervals[channel]];// チャンネルの音の周波数を取得 | |
| if (pitchBendValue == -8192) {// ピッチベンド値が最小値の場合、周波数を半分にする | |
| frequency /= 2; // 1オクターブ下げる | |
| } else { | |
| frequency *= (1 + (float)pitchBendValue / 8192.0); // ピッチベンド値に応じて周波数を調整 | |
| } | |
| tones[channel].play(frequency); // ピッチベンドを反映した周波数でノートを再生 | |
| } | |
| } | |
| } | |
| } |
- 基于51单片机的蜂鸣器播放音乐源代码 68次下载
- 用Ameba播放音乐
- 基于Labview制作的音乐播放器源码分享 75次下载
- 基于51单片机的音乐播放器的制作 113次下载
- 蜂鸣器播放音乐设计与实现(附源码) 90次下载
- 使用单片机实现蜂鸣器播放音乐之八月桂花的程序免费下载 25次下载
- 使用单片机仿真播放音乐的代码和工程文件免费下载 7次下载
- 使用51单片机设计可以播放音乐和快进功能的电子琴资料合集免费下载
- 如何使用51单片机控制无源蜂鸣器播放音乐的程序免费下载
- 蜂鸣器播放音乐C语言程序免费下载 46次下载
- HL开发板的蜂鸣器播放音乐学习程序 16次下载
- 8051单片机播放音乐 32次下载
- 蜂鸣器播放音乐程序 34次下载
- 蜂鸣器播放音乐 41次下载
- 51单片机播放音乐编码程序 ,music encodeV1.
- 如何使用音频接口播放音频文件 686次阅读
- 什么是步进电机?步进电机的类型和结构 1633次阅读
- 基于STM32单片机的婴儿床控制系统设计 1535次阅读
- 如何利用Arduino UNO和SD卡制作音乐播放器 8108次阅读
- 什么是步进电机?步进电机单极和双极的区别 1.5w次阅读
- 基于STM32的步进电机速度控制 1.1w次阅读
- 步进电机的结构和接线方案 1w次阅读
- 步进电机控制器原理_步进电机控制器编程实例 1.6w次阅读
- 制作可以自己编曲的音乐门铃电路资料免费下载 3496次阅读
- 步进电机的主要特点 1.6w次阅读
- 什么是步进电机?步进电机的特点,分类与原理! 3.8w次阅读
- 步进电机工作效率如何_步进电机的选择方法 4789次阅读
- 步进电机相序如何判断_步进电机主要在哪些方面应用 1.4w次阅读
- 什么是混合式步进电机_混合式步进电机和反应式步进电机的区别 1.6w次阅读
- 步进电机的硬件电路设计,步进电机驱动原理及方法 3.2w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
电子发烧友App






创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论