“第二十五课--Microduino与运算放大器--反向比例运算/zh”的版本间的差异
(Created page with "Microduino与运算放大器--反向比例运算 {| style="width: 800px;" |- | ==目的== 本教程提供了运算放大器的基础知识,该示例为反向比例运算电...") |
|||
第17行: | 第17行: | ||
|相关硬件||数量||功能 | |相关硬件||数量||功能 | ||
|- | |- | ||
− | |LM358|| | + | |LM358||1个||常用双路运算放大器,可方便实现数学运算电路。 |
|- | |- | ||
− | |ICL7660||负压产生芯片。 | + | |ICL7660||1个||负压产生芯片。 |
|- | |- | ||
− | |10K电阻 ||2个||更改相关电阻值,可以得到不同的输出电压。 | + | |10K电阻||2个||更改相关电阻值,可以得到不同的输出电压。 |
|- | |- | ||
− | |5.1K电阻 |1个||更改相关电阻值,可以得到不同的输出电压。 | + | |5.1K电阻||1个||更改相关电阻值,可以得到不同的输出电压。 |
|- | |- | ||
− | |20K电阻 |1个||更改相关电阻值,可以得到不同的输出电压。 | + | |20K电阻||1个||更改相关电阻值,可以得到不同的输出电压。 |
|- | |- | ||
|10uf 16V电容 ||2个||与芯片ICL7660相连,用于产生-5V电压。本示例采用的是钽电容,电解电容也可以的。 | |10uf 16V电容 ||2个||与芯片ICL7660相连,用于产生-5V电压。本示例采用的是钽电容,电解电容也可以的。 |
2014年8月12日 (二) 14:56的版本
Microduino与运算放大器--反向比例运算
目的本教程提供了运算放大器的基础知识,该示例为反向比例运算电路。通过更改R1,R2,R3,R4的阻值,观察输出结果,理解方向比例运算电路的使用方法。 设备Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。 下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。
ICL7660ICL7660是我们常见的负压产生芯片。工作原理见下图:S1、S3是联动开关,S2、S4是联动开关,联动开关也就是同时开或同时关的开关。半个周期内,S1、S3是闭合的,S2、S4是断开的, 这时,Vin的电压给电容C1充电。在另外的半个周期内,S2、S4是闭合的,S1、S3是断开的,这时C1给C2充电。又因为C2充入的电为上正下负,C2的正极端接GND,所以表征在C2的负极端 的电位值则为负值。 ICL7660文档下载:文件:ICL7660.pdf 实验原理图该示例中358为双电源供电(正负5伏)方式。358的1脚输出电压Vout1-pin1=-Vin*(R2/R1),如果没有-5V电源的引入,358芯片的1脚是不会有负压输出的。该电压值可由万用表直流电压档测得。 Vout-pin7=-Vout-pin1(R4/R3),7脚输出电压为正值,该电压值由Microduino的A0口识别,arduinoIDE自带的串口监视器可输出。用万用表也可测试7脚的输出电压。 该示例中2脚与3脚的对地电压均为0V,对比同向比例运算电路,参考 http://www.microduino.cc/wiki/index.php?title=%E7%AC%AC%E4%BA%8C%E5%8D%81%E5%9B%9B%E8%AF%BE--Microduino%E4%B8%8E%E8%BF%90%E7%AE%97%E6%94%BE%E5%A4%A7%E5%99%A8--%E5%90%8C%E5%90%91%E6%AF%94%E4%BE%8B%E8%BF%90%E7%AE%97/zh 2脚与3脚的对地电压并不是0V,使用不同的运算电路时对运放输入脚的电压我们也应有所了解。 程序///A0 connect amp358_7 output
///A1 connect single battery output
int anaValueSingleBa; //single battery value map(0--1023)
int anaValueAmp; //amp value map(0--1023)
float anaVoltageSingleBa; //single battery voltage
float anaVoltageAmp; //amp output voltage
void setup()
{
Serial.begin(9600);
}
void loop()
{
anaValueSingleBa=analogRead(A1);
anaVoltageSingleBa=anaValueSingleBa/1023.0*5;
Serial.print("Single battery voltage is ");
Serial.print(anaVoltageSingleBa);
Serial.println("V");
delay(1000);
anaValueAmp=analogRead(A0);
anaVoltageAmp=anaValueAmp/1023.0*5;
Serial.print("Amp358_7 output voltage is ");
Serial.print(anaVoltageAmp);
Serial.println("V");
delay(1000);
}
调试
结果按照原理图连接好电路。程序下载后,可在arduino IDE自带的串口监视器中观察输出电压。分析实验数据。 视频 |