用户注册 登录
珍珠湾全球网 返回首页

岳东晓 -- 珍珠湾全球网 ... http://ydx.zzwave.com [收藏] [复制] [分享] [RSS] 岳东晓 -- 珍珠湾全球网

日志

ARDUINO 光子奏乐(版本0.02)

热度 6已有 19482 次阅读2013-3-29 02:51 |个人分类:科普|系统分类:科技| , 电阻, LED灯, 开发

昨晚写道,ARDUINO很好玩,老少皆宜。主要有两点
1)价格低;零件便宜,开发工具完全免费;
2)简单易学。

今天把昨天那个光线奏乐的东东改进了一下:用5个LED灯显示正在播放的音符。

演奏方式:用个小手电筒对着那个光电阻晃来晃去(程序将根据光电阻上的电压值播放不同音符)。

代码如下:

const int analogInPin = A0;  // Analog input pin 

int ncnt = 24;

int sensorValue = 0;        // 从光电阻读取的数据
int inputMax=550;

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600); 
  for(int i=0; i<5; i++) {
    pinMode(i+2, OUTPUT); //五个LED灯连在数字输出2-6
  }
}

void loop() {

  sensorValue = analogRead(analogInPin);            

  Serial.print("Playing note = ");  
  int n = map(sensorValue, 0, inputMax, -ncnt/2, ncnt/2);  
  Serial.print (sensorValue);
  Serial.print (":");
  int n2 = n+ ncnt/2;
  for(int i=0; i<5; i++) {
    digitalWrite(i+2, (n2 & (1<<i)) ? HIGH: LOW);//根据音符控制5个LED灯
  }

  int freq= (int)(pow(2, n/12.0)*2*440.0); //计算频率
  Serial.println(freq);   
  tone(12, freq, 100);
  delay(150); 

}



路过

鸡蛋
3

鲜花

支持

雷人

难过

搞笑

刚表态过的朋友 (3 人)

 

发表评论 评论 (10 个评论)

回复 蓝天绿地 2013-3-29 03:07
慢点会更好听
回复 岳东晓 2013-3-29 03:11
蓝天绿地: 慢点会更好听
轰鸣器的声音不可能有多好听。要真正播放音乐,得用喇叭。

这行代码
tone(12, freq, 100);
将每个音符播放100毫秒,也就是0.1秒。
回复 蓝天绿地 2013-3-29 03:26
岳东晓: 轰鸣器的声音不可能有多好听。要真正播放音乐,得用喇叭。

这行代码
tone(12, freq, 100);
将每个音符播放100毫秒,也就是0.1秒。 ...
ok, 100millisec

我这只大菜鸟漏馅了:这是么什么语言呀?
回复 羽化成蝶 2013-3-29 05:58
噗通!

我去整一个给我家小男生玩玩儿!
回复 岳东晓 2013-3-29 06:27
蓝天绿地: ok, 100millisec

我这只大菜鸟漏馅了:这是么什么语言呀?
C++
回复 铜山 2013-3-29 15:34
不懂~ 盲献花~~   能做出什么好玩的给我们玩吗~~
回复 岳东晓 2013-3-29 16:04
铜山: 不懂~ 盲献花~~    能做出什么好玩的给我们玩吗~~
这主要是用于学习、实验的。
回复 铜山 2013-3-29 16:09
岳东晓: 这主要是用于学习、实验的。
哦~~~
回复 wx1wx2 2013-4-2 03:07
http://img4.cache.netease.com/photo/0026/2013-02-27/8ONCSDRB390S0026.jpg
回复 amxamx 2015-1-7 23:30
跪求博主来一份详细版的资料,含有相关电阻的阻值,完整电路图,源程序更好哈~

facelist

您需要登录后才可以评论 登录 | 用户注册

Archiver|手机版|珍珠湾全球网

GMT+8, 2024-11-15 01:54 , Processed in 0.034010 second(s), 9 queries , Memcache On.

Powered by Discuz! X2.5

回顶部