成为订阅者(免费)

加入29,000名其他订阅者以获得用户销售折扣和 其他免费资源。
:
:
大学教师'担心 - 您的邮件地址完全是 安全的。我保证使用它 只要 到 send you MicroZine.

后退 12F675教程索引 下一页

12F675教程5:a 使用PIC EEPROM的温度数据记录器。

EEPROM对于存储长期数据非常有用 如数据记录器信息和此PIC微控制器EEPROM项目 将温度从LM35DZ IC节省到PIC中'S内部长期数据 储藏区域。该项目遵循最后一个项目使用 几乎是相同的硬件。

它储存温度 以规则的间隔在内部读数,直到完全和之后它开启 LED。 LED真的只是为了表明事情正在发生 真实的数据记录器您不会使用它。

跳 to 无焊接面包板。
跳到 电路原理图。
跳到 软件。

注意:此项目未针对电源进行优化 消费所以使用它的最佳方法是从电源块供电。这 所消耗的电流约为13mA(LED OFF)16mA(结束时的LED)。如果你想 使用电池使用可充电PP3,不附加LED。

12F675可能不是 最好的PIC微控制器用于低功耗数据记录和更好的选择 将是16F88,因为它可以在飞行上改变其内部振荡器 进入慢速(当前节省)模式。但是你可以使用12f675缓慢 外部32kHz水晶。 

在 每张读取LED的ADC都会短暂闪烁,当您选择500ms时 阅读间隔您可以看到正在拍摄的读数。当64读数是 累计LED绝望地点亮 - 显示数据存储是 full. 


注意:对于此芯片,您只能存储64 结果,根据您需要为每个ADC结果存储无符号整数 需要2个字节,所以128字节/ 2 = 64个结果。

你可以击中 随时按钮和EEPROM的内容将从中读取 内部EEPROM并通过串行端口传输到PC。

要擦除内部EEPROM按住按钮并循环电源 - 这闪烁 指示擦除的LED 6次(正常启动闪烁LED 3 times).

无焊接面包板

无焊 面包板和电路图几乎与上一个使用的相同 项目所以如果你已经建造了你'T需要做得更多。只是 添加蓝线,D2和R6。

EEPROM.温度记录器插件

了解用于创建的工具 this diagram.

电路原理图

请注意 以下显示的开关只是上面的蓝线。留下蓝线 在销4处保持输入,高或移动蓝线的顶部 地面(0V - 左上角的绿色电线 - 在左侧 无焊 breadboard) 将GP3(引脚4)设置为低。

注意:二极管停止了 编程电压与5V电源冲突 - 颠倒偏置时 高编程电压存在。

设置GP3低导致读取更新速率为半秒(用于调试) 将其设置为高导致读取更新率约为30分钟。所以 对于完整的64读数,您可以获得测量的温度并每隔一半存储 一小时超过32小时。

注意:未校准测量时间,因此它 won't〜30分钟。

注意:电路/软件未进行优化 电源使用情况,因此您应该使用电源块来提供电路功率 电池将相当快地排出。

EEPROM.温度记录器

了解用于创建的工具 this diagram.

12F675 pinouts

 
12F675引脚出局
其他意见:

pic12F675 PIC微控制器微控制器 pic 12F675微控制器

软件

再次柔软的USART 使用教程3中描述的(仅传输)和内部Mikroc例程 用于从模拟输入(AN0)中获取数据并从中读取 写入内部EEPROM。 

源代码文件 :
获取文件 软件项目文件和C源代码 点击这里.

pic microcontroller. Software operation

在启动LED时 闪过三次。如果在启动时按住按钮,则LED闪烁 六次和内部EEPROM将被擦除准备开始记录 temperature again.

正如先前所说 设置GP3高导致测量间隔约为30分钟 虽然保持它很低,导致半秒的测量间隔(用于调试)。  

注意二极管D2是停止编程电压 开发期间的冲突。如果您只是编程12F785然后将其放置 永久地在没有ICSP连接的单独电路中,然后D2和R6是 不需要 - 所以你可以将引脚4到5V连接半小时 readings.

一旦内部EEPROM充分提升,就没有更多的读取,并且LED是 永远打开。

在任何点按下键将EEPROM数据传输到串行端口 在PC上显示/使用。

软件 routines

使用的软件 收集温度读数与教程中的软件相同 除了在单独的功能中完成平均:

get_reading()

软件 连续收集温度读数,并在传递结果之前 到串行端口(这次作为摄氏读数),它还存储了 在EEPROM中阅读。它可以收集最多64个读数(大小的一半 内部EEPROM)。在此之后,它停止录制,即使电源是 丢失读数将保留在EEPROM中。

对于调试,LED将简单闪烁以显示数据捕获。

定义了以下子例程,其功能显而易见:

get_key()
printval()
erase()
eetemp_write()
eetemp_read()
get_reading()
flash_led_3times()
报告()
完成的()


注意:vdelay_ms在整个中使用且虽然它 确保空间不太准确(这是一个'variable'基于延迟常规为 与delay_ms相比,为每个实例生成代码更准确但是 more code!).

其余的动作发生在无限循环中的main()中发生。它得到了一个 reading,
将其发送到串行端口 然后将其存储在 EEPROM。然后,它闪烁LED短暂检查关键状态,然后检查 看看是否收集了所有数据,然后等待延迟(长度是 由GP3 - 引脚4的状态确定30分钟或0.5秒。


后退 12F675教程索引 下一页

新的! Comments

让你说到你刚刚阅读的东西!留下下面的框中的评论。


从12F675跳跃教程5:使用pic's EEPROM. to
最佳微控制器 - 项目主页


隐私政策 | 接触 | 关于我

网站地图 | 使用条款



ezoic.报告此广告

访问我们的Facebook页面:

   点击这里



最近的文章

  1. 如何使用ADS1115

    使用ADS1115精度16位ADC进行教程进行低功耗。

    阅读更多

  2. arduino.模拟输出...易模拟输出生成

    arduino.模拟输出:如何创建最精确的PWM模拟输出以及如何创建模拟PWM正弦波。

    阅读更多

  3. 数号和等效的快速宏。加快代码!

    了解DigitalWrite()的工作原理......现在使用17倍宏宏!

    阅读更多

  4. TCS230颜色传感芯片:如何运作以及如何使用它。

    如何使用TCS230(/ TCS3200)彩色检测器芯片并轻松将其添加到您的任何项目中。

    阅读更多

  5. 如何使用ADXL345进行运动感测等。

    使用ADXL345 Acellerometer,您可以检测到16G!您还可以了解如何使用它来点击检测等。

    阅读更多

  6. HMC5883L 3轴数字MAGENTOMTER如何运作

    HMC5883L - 如何制作数字罗盘,了解HMC5883L和QMC5883L之间的差异以及它们是否兼容。

    阅读更多



读者 Comments

"I wanted to thank
你这么好
对于所有信息
你已经提供了
你的网站's

高超极好的."

- 逃亡Potthath.

"This site really is
最好的和我最喜欢的。
我发现这里有很多很有用
项目和提示。"

- 米兰

Bursach.<at>gmail.com<

"Awesome site,
非常,非常容易和好
导航!"


-
镭_tr.<at>
wolf359.cjb.net.


学习微控制器

"Interested in
微控制器?"

注册
免费7天指南:

自由 GUIDE : CLICK HERE


"I am a newbie to PIC
我想说
 how great your
网站一直在为我。"


- 戴夫

de_scott.<at>bellsouth.net

"Your site is a great
和完美的工作。
恭喜。"


- SURESH.

IntegratedInfosys.<at>
Yahoo.com.

"I couldn't find the correct
要定义的词语
你的网页。

非常有用,揭开,
诚实明确。

非常感谢
你的时间和作品。
问候。"


- Anon.

回到顶部