历史上的今天
返回首页

历史上的今天

今天是:2024年12月29日(星期日)

2021年12月29日 | 使用MSP430 LaunchPad开发板制作一个激光绊线报警器

2021-12-29 来源:eefocus

LaunchPad开发板中使用的MSP430微控制器内置10位模数转换器(ADC)模块,可将其输入引脚的模拟电压转换为数字信号。在本篇文章中,我们将向您展示如何使用MSP430 LaunchPad的ADC模块,并在Energia IDE中建立一个示例应用程序。


MSP430 LaunchPad开发板中的ADC模块的功能包括:

●    10位分辨率

●    200 ksps转换率

●    逐次逼近寄存器(SAR)

●    8个独立的输入通道

●    可编程内部参考电压

●    外部参考电压输入

●    可编程采样和保持电路


10位ADC模块将输入电压转换为0到1023之间的数字量,分别对应电压下限值VR-和电压上限值VR +。 MSP430允许用户选择不同的参考电压值,可以是电源电压(VCC)和地、外部参考输入VREF + / VEREF +和VREF- / VEREF-以及内部电压2.5V和1.5V。假设我们使用电源电压VCC(3.6V)和GND作为参考限值,读数0和1023将分别代表0和3.6V,它们之间的任何ADC读数都可以使用下面的公式计算。



在Energia中,可以使用analogReference(option)函数选择ADC参考源。该函数的参数可以是DEFAULT(VR + = VCC,VR- = 0V)、INTERNAL1V5(VR + = 1.5V,VR- = 0V)、INTERNAL2V5(VR + = 2.5V,VR- = 0V)和EXTERNAL(VR + = VREF, VR- = 0V)。通过直接访问ADC10CTL0寄存器可以实现更多选项。


施加到模拟输入引脚的电压必须在VR-到VR +的电压范围内,才能获得有效的转换结果。模拟输入引脚的绝对最大额定电压为VCC。


LaunchPad有8个模拟输入引脚,从A0到A7,如下图所示。它们没有在LaunchPad的PCB上标注。


在Energia中,analogRead()函数用于读取应用于所选通道的模拟电压,并返回0到1023之间的整数。此函数需要通道编号作为输入参数。硬件多路复用器在内部将所选通道连接到ADC模块,而其余通道保持隔离。例如,“adcreading = analogRead(A4);”命令读取施加到引脚P1.4(A4)的模拟电压,并将结果写入int类型变量“adcreading”。每次转换大约需要100微秒。


在模数转换期间,模拟信号上的噪声可能会使转换结果失真并导致错误的读数。为了提高信噪比(SNR),使用过采样和平均技术是一种很好的做法。例如,连续读取五个样本并取其平均值将得到更准确的结果而不是读取单个样本。


内部还有一些其他通道连接到ADC模块(更多信息请参见ADC10CTL1寄存器)。其中之一是内部温度传感器的输出。要读取温度传感器数据,只需使用analogRead(TEMPSENSOR);命令。


激光绊线报警器

现在我们可以使用LaunchPad的ADC功能建立示例应用程序了。我们将使用激光二极管、光敏电阻、蜂鸣器、电阻和LaunchPad来构建激光绊线报警器。



光敏电阻(LDR)是一种半导体,其电阻值根据其表面上的光强度而变化。在黑暗环境中,其电阻可以增加到兆欧,并且在光照下它的电阻降低到几百欧姆。 LDR的特征曲线如下。


LDR在我们的应用中用作激光传感器。在日光的房间里,LDR的电阻约为1-2千欧。当激光束落在LDR表面上时,其电阻降低至100-200欧姆。我们需要知道LDR的电阻以检测绊线是否被切断。由于LaunchPad的ADC模块可以读取模拟电压,我们应该将电阻信息转换为电压。为此,将串联电阻连接到LDR,并将VCC电压施加到该电阻网络。根据LDR电阻,该分压器的电压输出会发生变化。您可以在下面看到该应用程序的原理图。

当激光束落在LDR表面上时,LDR的电阻测量为约200欧姆。在这种情况下,A0输入端的电压变为[3.6V /(1.5K + 0.2K)] * 1.5K = 3.18V。当绊线被切断时,LDR的电阻将增加,并且A0输入上的电压将减小。所以我们可以说如果我们从A0输入读取的电压低于3.0V,则认为线路切断并激活警报。

代码

使用Energia IDE编写的代码如下:

// the setup routine runs once when you press reset:

void setup() {

analogRefrence(DEFAULT); // Set VR+ = VCC:3.6B, VR- = GND:0V as the upper and the lower limits

pinMode(3,OUTPUT); // set the buzzer pin mode

}


// the loop routine runs over and over again forever:

void loop() {


  // read the analog voltage at A0

  int sensorValue = analogRead(A0);

  // convert the ADC reading to voltage

  float voltage = sensorValue * (3.6 / 1023);  



  if (voltage < 3.0) {

  

    // tripwire is cut: activate the buzzer with oscillation

    digitalWrite(3,HIGH);

    delay(150);

    digitalWrite(3,LOW);

    delay(100);

  }

   

   

  else {

    // tripwire is not cut: de-activate the buzzer

    digitalWrite(3,LOW);

  }

   

}

推荐阅读

史海拾趣

EPIC公司的发展小趣事

1998年,Epic Games发布了一款名为“虚幻”的3D第一人称射击游戏。这款游戏不仅游戏内容新颖,更引人注目的是它背后完全自主开发的3D游戏引擎。这个引擎后来被称为“虚幻引擎”,并成为了Epic Games的核心技术之一。随着游戏的成功,虚幻引擎也逐渐受到了业界的关注。许多其他游戏开发商开始采用这款引擎来开发自己的游戏,从而使得Epic Games在游戏引擎领域取得了显著的商业成功。

Bliley Technologies Inc公司的发展小趣事

在Bliley的发展历程中,技术创新始终是推动其不断前进的重要动力。从最初的石英晶体生产,到后来的恒温控制晶体振荡器(OCXO)、温度补偿晶振(TCXO)和压控晶体振荡器(VCXO)等先进产品的开发,Bliley始终站在行业技术的最前沿。公司拥有一支专业的研发团队,致力于开发更高效、更稳定、更精确的频率控制产品。这些技术创新不仅提升了Bliley的产品竞争力,也推动了整个电子行业的发展。

思瑞浦微电子科技(3PEAK INCORPORATED)公司的发展小趣事

Bliley Technologies Inc.的历史可以追溯到1930年,当时它作为Bliley压电公司成立,专注于为业余无线电市场生产石英晶体。石英晶体的精确频率控制特性使其成为无线电通信领域的理想选择。随着技术的不断进步和市场需求的扩大,Bliley很快发现其产品的潜力远不止于此。到了20世纪30年代中期,Bliley的客户和产品范围迅速扩展到新兴的军事和商业通信领域,公司也因此更名为Bliley Electric Company。这一转变标志着Bliley从一家小型压电公司成长为晶振行业的佼佼者。

Anachip公司的发展小趣事

Anachip公司自成立以来,一直致力于半导体技术的研发。在某个关键时期,公司研发团队成功开发出一种新型的芯片技术,这项技术在性能上远超当时的行业标准。凭借这一技术突破,Anachip迅速在市场上推出了一系列高性能的芯片产品,赢得了客户的广泛认可。随着产品销量的增长,公司的知名度和市场份额也逐步提升。

Amveco Toroidal Power Products公司的发展小趣事

Amveco Toroidal Power Products公司成立于XXXX年,初始阶段主要专注于环形变压器的研发与生产。创始人凭借对环形变压器技术的深入了解和市场需求的敏锐洞察,带领团队克服了初创期的种种困难,成功开发出了具有高效能、低噪音特点的环形变压器产品,并赢得了客户的初步认可。随着市场口碑的逐渐积累,公司的业务规模开始稳步扩大。

HN Electronic Components GmbH & Co Kg公司的发展小趣事

背景:2008年全球金融危机爆发,电子行业受到重创,市场需求大幅下降。

发展:面对严峻的市场环境,HN Electronics迅速调整战略,削减非核心业务,加强成本控制,并加大在研发领域的投入,以技术创新为突破口,寻找新的增长点。

关键事件:在金融危机期间,HN Electronics成功开发出具有更高性价比的物联网传感器芯片,满足了市场对智能家居、智慧城市等新兴领域的需求,从而实现了业绩的稳步增长。

问答坊 | AI 解惑

2440 wince 5.0移植到wince6.0

谁做过2440的wince 5.0的bsp移植到wince6.0? 我有个2440的板子,想把5.0换成6.0。该怎么移植,大家给点意见…

查看全部问答>

模电知识

1.为什么当D1开路是T1、T2管会因功耗过大而损坏? 2.为什么当T1管集电极开路T2管会因功耗过大而损坏? 麻烦各位大侠帮忙讲解一下,谢谢喽 …

查看全部问答>

CCS 5装好不能用,求各位大虾帮帮忙啊

装好之后打开选途径,该了下就出现第二幅图,打不开,不能用…

查看全部问答>

小弟准备升大三,想搞嵌入式,纠结考研呢,大家帮我,对编程有兴趣,想搞嵌入式 LINUX

请教前辈们 小弟准备升大三,想搞嵌入式,纠结考研呢,大家帮我,对编程有兴趣,想搞嵌入式 LINUX,这些偏软的工作, 现在经常参加竞赛,明年有个全国电子设计大赛,如果考研就没时间参加了。还有就是,很多人说考研对以后长远发展还是很有好处的 ...…

查看全部问答>

Beaglebone学习之外围电路设计参考资料最全汇总贴

我把外围电路设计过程中的参考资料全部汇总了放上来,欢迎大家下载,有商业板的资料,有开源的资料,有原厂的资料,有我们坛子里网友分享的资料,下一步准备把全部原件库和封装库发上来,这个我还在整理,等我画完了就上传,希望大家都更贴补充 ...…

查看全部问答>

LPC1500体验+Hello EEWorld!

本帖最后由 ddllxxrr 于 2014-7-30 09:58 编辑 这个我认为是选择mbed的好处啦。为什么呢,不用看手册,不用去构思,拿来主义,只两句话两板线就可实现串口通讯。 少费话,上程序! #include \"mbed.h\" DigitalOut myled(LED1); Serial pc( ...…

查看全部问答>

UPS电源六大发展趋势

转自:中国电源协会 UPS电源系统作为顺应电力市场需求发展起来的高技术产品,它具有明显的电力保护功能:当市电断电时,不间断地向负载继续供电;在市电不稳定的时候,可以避免负载遭受欠压、浪涌冲击等的危害,并全面地改善供电质量;当供电系统 ...…

查看全部问答>

低级bug耗费12小时Fix

本帖最后由 lzwml 于 2016-5-4 16:34 编辑 调试某程序非常简单的程序,简单到认为不可能存在缺陷,但该BUG处理时间超过12小时: 程序属于后台进程,监控系统每隔15秒检查外设IO状态,IO异常后发出报警或复位外设,外设都在linux下有/sys/class等 ...…

查看全部问答>

【一起玩esp8266】板子靓照 + 上电测试

       用芯片换购的esp8266板子到了,顶着大太阳到公司门口取了回来,迫不及待的拆开一睹风采。两个对称的按键,双排插针接口,还有清晰的丝印,主要还是有龙和蛇的图案,很漂亮,背面的长江图也很带感。版主还给配了插座,免 ...…

查看全部问答>

MCU软件工程师与MCU硬件工程师招聘,工作地点在深圳南山西丽凯达尔大厦

深圳市道一信息科技有限公司是专注电子信息领域技术研发和产品应用拓展的综合型科技企业。公司总部位于深圳南山西丽凯达尔大厦,在美国、韩国设立有区域营销和应用支持中心,制造和服务基地位于广东东莞。有意向请联系 ethan18676788016   ...…

查看全部问答>