Blog Archives

记录Arduino学习和实践的点点滴滴!

【JoyTag Arduino 教程】如何使用Watchdog (看门狗)

*: WordPress代码高亮控件有BUG,明明是”,复制出来就变成“,导致示例程序无法在Arduino IDE里正常编译。 请到此处复制代码:http://forum.godpub.com/thread-30-1-1.html 何谓Watchdog? ATmega48A/PA/88A/PA/168A/PA/328/P has an Enhanced Watchdog Timer (WDT). The WDT is a timer counting cycles of a separate on-chip 128kHz oscillator. The WDT gives an interrupt or a system reset when the counter reaches a given

Posted in Arduino

Arduino QQ群:20085629

为了方便朋友们交流,新建了一个Arduino QQ群,群号20085629 欢迎各位朋友添加。

Posted in Arduino

使用EEPROM存储和读取数据

目的: 测试和了解Arduino板载EEPROM的使用。 原文地址: http://www.joytag.com/arduino/使用eeprom存储和读取数据/ (转载请注明出处) 正文: QQ群里一朋友问Arduino上如何使用EEPROM存储字符型数据,其实无论是字符型数据还是其它类型数据,或者类似文件、图片这样的对象,都是作为二进制数据存在的。 Arduino官方的有三个EEPROM的例子,分别是清空EEPROM、 写入EEPROM、读取EEPROM。而清空EEPROM,其本质就是把整个EEPROM的空间写入0。而读写的语法分别是:EEPROM.read(address)、EEPROM.write(address, value),是不是很简单? 下面是一个简单的例子,写入一组字符串到EEPROM中,然后读出来,通过串口监视器显示出来。

这个例子中,我对0至1023地址中写入0,来清空EEPROM,这是因为Arduino不同的微控制器有不同大小的EEPROM。对于Arduino UNO R3而言,微控制器是ATmega328,空间大小是1024字节。 The microcontrollers on the various Arduino boards have different amounts of EEPROM: 1024 bytes on the ATmega328, 512 bytes on the ATmega168 and ATmega8, 4 KB (4096 bytes) on the ATmega1280 and ATmega2560. 另外,需要注意的是EEPROM写入寿命的问题,这个很容易被忽略。 An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it. 当写这个例子的时候,想到一个有意思的问题,就是对于1024个字节长度的EEPROM,我们如果在第1024、1025、1026处分别写入内容,那么会写到哪里去,读出又会读出哪些内容?通过测试,我们发现在1024、1025、1026处写入和读出内容,等同于在0、1、2处操作。感兴趣的读者可以自己修改代码测试。 结论: Arduino的EEPROM库提供了很方便的存储和读取功能,对EEPROM的操作简单直接。 文成仓促,错漏难免,如有发现,烦请赐教。 联系邮件:support@joytag.com 转载请注明出处:http://www.joytag.com/arduino/使用eeprom存储和读取数据/

Posted in Arduino

利用Arduino连接LM35温度传感器测量室温

目的: 利用Arduino连接LM35温度传感器测量室温,学习Arduino以及LM35传感器的使用。 原文地址: http://www.joytag.com/arduino/sensor/利用arduino连接lm35温度传感器测量室温/ (转载请注明出处) 连接图&电路图: 略 问题总结: 1:管脚以及连线问题 LM35的管脚上没有标识,所以很难分清和记住管脚的对应关系以及如何连线。还好有手册可以查 http://www.ti.com/lit/ds/symlink/lm35.pdf 需要注意的是,文档中管脚示意图是”BOTTOM VIEW”(底部视图),也就是说是从管脚一侧向上看的视图,千万别弄反了。 2:输出电压与温度换算问题 当使用最简单的方式连接时(VS接5V直流电源,GND接地),那么VOUT的输出电压与摄氏温度成线性关系。0摄氏度对应0V, 每增加一摄氏度,电压增加10mV(毫伏)。 所以我们可以用万用表测试出电压值,直接转换成温度值。比如100mV就是10摄氏度。 使用程序,我们会读到0~1023范围内的一个数值。由于我们最终想读到的是温度值,而不是一个抽象的数字,所以我们需要把数字转换成温度(摄氏度)。网络上很多转换公式,很迷糊。这里自己做了一个直观的: val = data*5*1000/1024/10;          //data为读出的数值,val为换算后的温度 当然我们可以计算出后边的数值,直接套用进去,亦即: val = data*0.48828125; 3:读数变化幅度巨大的问题 当 所有连接就绪,代码运行起来后,发现室温的读数在19度到28度之间变化,这不科学啊。如果偏差有这么大,那么测试温度就没有意义了。重新连线,检查代 码,甚至怕传感器被连线影响,把管脚掰弯远离连线(自己汗一下),都没有解决问题。后来把9V电池的供电盒拔掉,只用USB供电,读数终 于稳定下来了。 百度了一下,说是电源噪声引起的信号变化,长见识了。(不过我原以为Arduino的电源接口部分会对这个做一些处理,莫非我买的是山寨板?) 4:误差问题 解决以上问题后,LCD的上读数基本稳定了,与温度计实际测试的室温基本相同。但是读数偶尔会上下差0.2左右,这个误差应该在合理范围内。为了让读数更 准确,我采取了2000次采样求平均值的方式,这样读数基本恒定了。 结论: 小小的LM35,本以为接上就可以呢,结果遇到这么些问题,看来还是要努力啊! 文成仓促,错漏难免,如有发现,烦请赐教。 联系邮件:support@joytag.com 转载请注明出处:http://www.joytag.com/arduino/sensor/利用arduino连接lm35温度传感器测量室温/

Posted in sensor(传感器)

十年磨一剑,现在开始磨

——送给宝宝的礼物。 Joytag.com 这个域名注册于2004年8月4日,近10载光阴,可谓久矣。 人说“十年磨一剑”,10年了,总该有些成就。但回首,这个域名几近荒废,期间断断续续放一些内容,由于精力有限,总是不了了之,万分惭愧。 最近接触了Arduino, Raspberry(树莓派)等开源硬件,打开了全新的一扇窗,激起了久违的兴趣。刚刚购置了设备,折腾了两天基本摸清了些头绪,但是还是有很多内容需要进一步了解和尝试。期间有些心得和体会,迫切的想记录下来以及分享给还在摸索中的朋友。于是乎萌生了做一个新网站的想法。希望她成为我学习和实践的好助手,也希望能为同在奋斗中的朋友提供哪怕一丁点的帮助。 好吧,“十年磨一剑,现在开始磨”。希望十年后,这个站能有一点点规模。 再说一下网站的名称,JoyTag,取义快乐标签,音译为“卓泰”。 我的宝宝名字中也含有一个“卓”字,寓意卓越,希望他能不断超越自己,攀登新的高峰。而这个域名原本打算给宝宝做一个成长记录站,”卓泰“是希望他能健康快乐幸福安泰。一直忙于琐事,网站一直没搭起来,愧对宝宝。现在就这个机会,把网站搭建起来,希望他长大一些可以一起参与进来,十年后,可以作为一份礼物送给他。希望他用这把闲置十年磨了十年的宝剑披荆斩棘,开创属于他的美好人生。 写的很乱,就这样吧。集中精力,开工了。

Posted in Arduino, Hareware, Interest(闲情逸致), Raspberry Pi(树莓派), Software

学习arduino

测试

Posted in Arduino

纸上得来终觉浅,绝知此事要躬行!

这两天接触Arduino和Raspberry(树莓派),主要是Arduino,看了官网的例子和网上的一些教程。 不可否认,一些文章写的很优秀,图文并茂,阅后受益匪浅。但也不排除一些内容东拼西凑滥竽充数,读后反而云山雾罩,蒙头转向。即便是官网的例子,个别的有些地方说得也不是很详细。 于是实践就显得尤为重要。连上电脑,扯上线,程序下到板子里,跑起来,一些细节自然就懂了,通了。 看来“实践出真知”才是真理啊。  

Posted in Arduino, Raspberry Pi(树莓派)