今天从AMAZON收到了这个名叫ARDUINO的东东,很好玩,老少皆宜。
ARDUINO是什么呢?这是一个开放设计、开放源代码的微控制器。说简单点就是一个小计算机,外加若干输入、输出接口,然后你可以编写程序,实现你要的功能。
我从AMAZON购买了ARDUINO,一本简介的书籍,外加一些零件 (链接见文末)。总价约50元。零件有光电阻、LED灯、电阻、轰鸣器、马达、热电阻等等。光电阻的电阻根据光线强弱而变化。
很快的,我想了一个小玩意--光线演奏:简单的说就是根据光的强弱演奏不同的音符。乘大家争论的几分钟,搞定了(代码见文末)。
其逻辑如下:读取光电阻上的电压信号,并控制一个LED灯,如果光线弱则灯亮。同时,光线强弱又对应不同的声音频率,输出到轰鸣器。
使用方法:对着电路手舞足蹈,导致光线被不同程度的挡住。
代码如下
const int analogInPin = A0; // Analog input pin
const int analogOutPin = A1; // Analog output pin that the LED is attached to
int sensorValue = 0; // value read from the pot
int outputValue = 0; // value output to the PWM (analog out)
int inputMax=150;
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, inputMax, 255, 0);
analogWrite(analogOutPin, outputValue);
Serial.print("Playing note = ");
int n = map(sensorValue, 0, inputMax, -ncnt/2, ncnt/2);
int freq= (int)(pow(2, n/12.0)*3*440.0); //计算频率
Serial.println(freq);
tone(12, freq, 150);
delay(150);
}
AMAZON产品 链接