标题: Arduino迷你特雷门琴原理图+源程序 [打印本页]

作者: xjblzhp    时间: 2020-11-26 13:05
标题: Arduino迷你特雷门琴原理图+源程序
迷你特雷门琴使用说明

1、将手靠近超声波传感器,来回移动手与超声波传感器的距离,迷你特雷门琴会随着手与距离的远近演奏出不同频率的声音。距离设定在10厘米到60厘米之间。
2、通过代码的转换可以实现单音阶演奏或特雷门琴模式演奏。

  1. /*
  2. IDE 版本:1.6.5
  3. 功能:利用SR04超声波传感器进行测距,通过反馈的距离演奏对应的音阶
  4. */

  5. // 设定SR04连接的Arduino引脚和扬声器输出引脚
  6. const int TrigPin = 2;
  7. const int EchoPin = 3;
  8. float distance;
  9. const int speakerPin = 8;//扬声器连接8脚

  10. void setup()
  11. {   // 初始化串口通信及连接SR04的引脚
  12.         Serial.begin(9600);
  13.         pinMode(TrigPin, OUTPUT);
  14.     // 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
  15.         pinMode(EchoPin, INPUT);
  16.         Serial.println("Ultrasonic sensor:");
  17.                 PinMode (led,OUTPUT);
  18. }
  19. void loop()
  20. {
  21.     // 产生一个10us的高脉冲去触发TrigPin
  22.         
  23.                 digitalWrite(TrigPin, LOW);
  24.         delayMicroseconds(2);
  25.         digitalWrite(TrigPin, HIGH);
  26.         delayMicroseconds(10);
  27.         digitalWrite(TrigPin, LOW);
  28.                
  29.     // 检测脉冲宽度,并计算出距离
  30.         int a = pulseIn(EchoPin, HIGH);
  31.         distance = a / 58.00;
  32.          Serial.print(distance);
  33.          Serial.print("cm");
  34.          Serial.println();
  35.          Serial.print(a);
  36.          Serial.println();
  37.                
  38.                
  39.                 //特雷门琴演奏模式
  40.                
  41.                 if (distance<61)
  42.                 {
  43.                  int m = map (distance,11,59,659,1661);
  44.                 tone ( speakerPin,m);
  45.                 }        
  46.                 delay (500);
  47.                 noTone(8);
  48. }
复制代码





作者: 昆吾    时间: 2021-11-11 14:40
想问一下“迷你特雷门琴”是怎么制作的呀?是用控件做的还是......?
作者: xjblzhp    时间: 2022-7-25 17:36
昆吾 发表于 2021-11-11 14:40
想问一下“迷你特雷门琴”是怎么制作的呀?是用控件做的还是......?

我是用木板做的外壳,然后在超声波传感器前面放上张硬纸板,根据发出音频标记上音阶。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1