tom 发表于 2012-12-31 10:40:07

[翻译]]Arduino自带范例Anlog之AnalogOutputSerial

本帖最后由 弘毅 于 2012-12-31 11:27 编辑

[翻译]官方范例例程Analog\AnalogOutputSerial
实验器材
1.        Mango Ocrobot 控制板一块(Ardunio 兼容控制器)
2.        USB下载线一条
3.        光敏电阻 5528一个
4.        1K电阻一个
5.        IN5819二极管一个
6.        104瓷片电容二个
7.        排针3P 二个
8.        排线二条 3P
9.        发光二极管一个
10.        220欧姆电阻一个
实验效果:随着光线的增强模拟数值上升,同时发光二极管的亮度也随之变亮.

实验程序 Arduino 官方范例例程Analog\Analogoutputserial.ino
以下是Ardunio代码:
/*
翻译:tom
时间:2012年12月31日
IDE版本号:1.01
发表地址:www.geek-workshop.com
翻译说明: 根据arduino自带的范例进行翻译,可能根据实际的需要略作修改

*/
/*
模拟输入,模拟输出,串口输出
在模拟端口读取输入值,将结果映射成从0至255的范围.并在一个数字输出端口使用得到的结果设置PWM.同时打印结果到串口监视器上.

电路描述:
*电位器连接到模拟端口A0
电位器的中点接至模拟端口A0.
电位器的两端接+5伏和接地.
*LED 连接数字端口9 返回接地

created 29 Dec. 2008
modified 9 Apr 2012
by Tom Igoe

这个范例代码在公共范围(不受版权制约)
*/
const int analogInPin = A0; //连接模拟口输入端口A0作为电压计
const int analogOutPin = 9; // LED模拟输出连接至数字端口9

int sensorValue = 0;      // (电压数据))模拟值
int outputValue = 0;      // (映射后的)输出数据至PWM(模拟输出)
void setup() {
// 初始化串口通讯速率 9600 位每秒:
Serial.begin(9600);
}

void loop() {
//读取模拟数值:
sensorValue = analogRead(analogInPin);            
//转换模拟数值并映射输出
outputValue = map(sensorValue, 0, 1023, 0, 255);
//改变模拟输出数值
analogWrite(analogOutPin, outputValue);         
//在串口监视器上打印结果
Serial.print("sensor = " );                     
Serial.print(sensorValue);      
Serial.print("\t output = ");      
Serial.println(outputValue);   

//在下一次循环前等待300毫秒(原范例是2毫秒)

//解决模拟数字转换器
//在上一次的读取
delay(300);                     
}


原理图



硬件连线图

(注:实物图未接发光二极管)



结果图,LED 3瓦灯泡下的运行结果.



关闭LED 灯泡时的结果

数字大约在25 至35之间.


页: [1]
查看完整版本: [翻译]]Arduino自带范例Anlog之AnalogOutputSerial