今天从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产品 链接
|