在本文中,我将向您展示如何使用一些 PICAXE 来制作这样的东西。
要求
要完成此项目,您将需要以下内容:
一台运行PICAXE 编辑器或类似 IDE 来对 PICAXE 进行编程的计算机。
编程电缆。我正在使用AXE-027。
一个PICAXE 20 平方米,一个 08 平方米。
一个LCD、一个LM34、433MHz TX和 RX 模块。
面包板和跳线。
以下列表中的零件:
在本文中,我将使用 LM 34 温度传感器制作无线温度计。从数据表:
“LM34 系列器件是精密集成电路温度传感器,其输出电压与华氏温度成线性比例。LM34 器件比以开尔文校准的线性温度传感器具有优势,因为用户不需要从LM34 器件无需任何外部校准或微调即可在室温下提供 +-1/2 o F 的典型精度,在-50 全范围内提供+-1-1/2 o F 的典型精度o F 到 300 o F 温度范围。”
这对我的项目来说是完美的。
要从 LM34 读取电压,我使用的是PICAXE 08m2。这是一个很棒的小微控制器。温度通过 RF 433MHz 模块传输。在接收器方面,我将有一个 PICAXE 20m2,带 LCD。
硬件
对于这个项目,我需要两个电路:一个用于发送,一个用于接收。让我们从发射器开始:
微控制器在 BC547 NPN 晶体管的帮助下打开/关闭 433MHz 模块。这样,我就不会过多地干扰其他无线应用程序。发射器模块连接到 12v。这将增加范围。
收件人:
软件
我们需要两个程序:一个用于发送,一个用于接收。您可以从下面的链接下载两者。源代码在正确的位置注释,但这里是一些命令的一些解释。
在发射器中:
readadc10 adc_pin, adc_raw
readadc10 - 这是一个带有两个参数的命令,通道和变量。通道是模拟设备的引脚。就我而言,它是 LM34 的输出引脚。该变量是一个字变量。我将我的 adc_raw 命名为。Readadc10 具有 10 位分辨率。
serout tx_pin,波特,(“LM34”,b0,b1,b10)
serout - 此命令传输串行数据,8 位,无奇偶校验,1 个停止位。它需要三个参数:pin、baudmode 和 data。Pin 是发送引脚,我将其命名为 tx_pin。Baudmode设置为N2400_4,我程序中的数据是字节格式的adc_raw。在 PICAXE 环境中使用字变量时,字变量由两个字节变量组成。阅读PICAXE 手册中有关变量的更多信息。我在 serout 命令中使用了限定符。我的限定词是“LM34”。使用此功能,我可以让不同的传感器或设备进行报告,并且接收器将整理出预选赛。
在接收器中:
serin rx_pin,波特,(“LM34”),b6,b7,b27
serin - 此命令接收串行数据。它需要四个或更多参数。Rx_pin 是 PICAXE 20m2 上的接收引脚,baud 是波特率,(“LM23”)是一个限定符,这意味着在 LM34 之后接收到的所有内容都将被读入变量。Serin 一次读取一个字节,我需要将字节放入变量中。
将接收到的字节转换为 acsii 字符。我正在使用 bintoascii 命令:
bintoascii tmp_c, b2, b3, b4
此命令将字变量转换为单独的字节值。
下载
下载源文件,玩得开心!
jc_20m2-无线温度计.zip
结论
在这篇文章中,我制作了一个带有两个 PICAXE 的无线温度计:一个 08M2 和一个 20M2。温度读数侧有一个 LM34 华氏温度传感器。该传感器的输出由微控制器读取,并通过无线模块传输。接收器读取串行数据,计算华氏温度和摄氏度,最后在 LCD 上显示温度。
图片和视频
发射机:
接收者:
全部0条评论
快来发表一下你的评论吧 !