第二十五课--Microduino与运算放大器--反向比例运算/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年8月12日 (二) 14:52的版本 (Created page with "Microduino与运算放大器--反向比例运算 {| style="width: 800px;" |- | ==目的== 本教程提供了运算放大器的基础知识,该示例为反向比例运算电...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

Microduino与运算放大器--反向比例运算

目的

本教程提供了运算放大器的基础知识,该示例为反向比例运算电路。通过更改R1,R2,R3,R4的阻值,观察输出结果,理解方向比例运算电路的使用方法。

设备

Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。

下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。

  • 其他硬件设备
相关硬件 数量 功能
LM358 1个常用双路运算放大器,可方便实现数学运算电路。
ICL7660 负压产生芯片。
10K电阻 2个 更改相关电阻值,可以得到不同的输出电压。
1个 更改相关电阻值,可以得到不同的输出电压。
1个 更改相关电阻值,可以得到不同的输出电压。
10uf 16V电容 2个 与芯片ICL7660相连,用于产生-5V电压。本示例采用的是钽电容,电解电容也可以的。
万用表 1个 测量输出电压。本示例的Vout-pin1的负压值可由万用表测得。
干电池 1节 本示例用作输入电压Vin。
USB数据连接线 1条 连通Microduino模块与计算机。
面包板 1块 各个元器件汇聚于此。
面包板跳线 1盒 电气连接线。

ICL7660

ICL7660是我们常见的负压产生芯片。工作原理见下图:S1、S3是联动开关,S2、S4是联动开关,联动开关也就是同时开或同时关的开关。半个周期内,S1、S3是闭合的,S2、S4是断开的, 这时,Vin的电压给电容C1充电。在另外的半个周期内,S2、S4是闭合的,S1、S3是断开的,这时C1给C2充电。又因为C2充入的电为上正下负,C2的正极端接GND,所以表征在C2的负极端 的电位值则为负值。

7660sch.jpg

ICL7660文档下载:文件:ICL7660.pdf

实验原理图

358ProtelSchInvert.jpg

该示例中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);
}

调试

RealConnect358Invert.jpg
  • 参考上图用导线连接完毕并确认无误。
  • 把程序复制到arduinoIDE中。
  • 编译程序,选择正确的板卡与相应串口。
  • 点击Upload,下载完毕后打开arduinoIDE自带的串口监视器,观察结果。Vout-pin1的输出电压可由万用表测得。
358invertComOutput.jpg
  • 更改该电路用到电阻值,可观察到串口监视器输出电压值的变化。例如R2=2K,其它电阻值不变,观察输出电压,并与公式比对。

结果

按照原理图连接好电路。程序下载后,可在arduino IDE自带的串口监视器中观察输出电压。分析实验数据。

视频