这一周我们将围绕着实时时钟的概念,学习如何在我们的项目中使用时钟。一旦我们能够在我们的代码中使用时钟,一些全新的想法和项目将成为可能。从一个简单的闹钟,到复杂的时序自动化系统,都可以通过我们的设计和Arduino来实现。不要浪费时间了,我们快开始吧!

首先,有几个数学概念和变量类型需要了解一下,以便能够理下面的代码。这的确有点枯燥,不过我会尽量减少这样的内容。

首先是二进制编码的十进制数字。

你能记得在第四章中提到的二进制数是如何工作的?如果忘了,先去复习一下,然后再回来。二进制编码的十进制数(BCD)与其相似,但不同的是,每一位上的数字都会用一个四位的数据来存储。还记得使用74HC595位移寄存器工作时,我们向它发送一个字节的数据么——四位就是一个字节的一半……
发布时间 发布于 2011-11-28 16:06:21 | 阅读次数 阅读过320次 | 分类 Arduino | 评论 没有评论 | 引用 没有引用通告
重新回顾我们的教程的第六章之后,我认为我们漏掉了一些关于驱动4位7段LED显示模块的重要信息。虽然我们已经讨论了使用该模块来显示数字,并希望你能够通过练习6.2来实现将传感器读入的数据不断的写入显示屏。

但我们是如何来发送一个数字给显示屏的——并且还要保持显示?我们需要一个函数来接受要显示的数字——以及要保持显示的时间(以周期为单位)。我已经重写了练习6.2的代码中的函数 displaynumber()——现在它能够接受另一个值,“循环周期(cycle)” 。这是数字在显示屏上想要保持显示的周期次数……
发布时间 发布于 2011-11-28 14:04:45 | 阅读次数 阅读过185次 | 分类 Arduino | 评论 没有评论 | 引用 没有引用通告
欢迎回来,arduino的爱好者们!

欢迎来到新一期的Arduino教程。这一周,我们要学习许多东西,包括距离探测、使用原型实验板、使用位移寄存器获得更多的变化、4位7段数码管以及通过一些练习来加深扩展你的知识。WOW- 让我们开始吧……

你知道如何保持距离吗?有些人会这么做,有些人却不会。这同样适用于机电一体化的东西(比如那些小巧的清洁机器人),因此为了保持距离,你可以在你的设计中安装距离传感器。希望在读过本节之后,你能够获得此类传感器的知识,并能在自己以后的项目中利用它们。总之,今天我们将学习Sharp GP2Y0A21YK0F红外距离传感器。有趣的是,它看起来像一个机器人的头部。

白色的JST接插件有三个接头,+5V,GND,和模拟输出。购买时应该附带一个匹配的接插件以节省时间。

它的工作原理很简单(我不能这么说,有些事情不是看起来那么简单……)—— 传感器包含一个红外发射器和一个接收器。它将返回与和它前面的物体之间距离有关的一个电压信号。这个输出电压和距离成反比,数据表(datasheet)文件中的图可以更好的说明这一点……
发布时间 发布于 2011-10-25 12:02:20 | 阅读次数 阅读过398次 | 分类 Arduino | 评论 没有评论 | 引用 没有引用通告
欢迎大家来到新的一周的Arduino课程。这一周要学习各种的东西,包括:利用位移寄存器控制更多的端口,一些数学运算,7段数码管,基于arduino的遥控玩具车,并最终做出一个我们自己的电子游戏机!Wow - 让我们开始吧……

在上一章节中,我们通过Arduino上的三个引脚使用74HC595位移寄存器来控制八个数字输出。这是非常有趣和实用的——不过还有更棒的!你可以连接两个或更多的位移寄存器,控制更多的引脚!这要怎样来实现呢?首先,74HC595芯片上还有一个我们之前没有用过的的数据输出脚(Pin9),如果我们把它连接到另一个74HC595的数据输入脚(Pin14),第一个位移寄存器能够将一个字节的数据位移到下一个位移寄存器,以此类推……
发布时间 发布于 2011-09-15 21:43:22 | 阅读次数 阅读过814次 | 分类 Arduino | 评论 没有评论 | 引用 没有引用通告
欢迎回来,Arduino的爱好者!

欢迎来到这一周新的课程。这一期的课程开始的有些早。这一次我们要开了解一下如何用较少的端口来扩展出更多的输出端口,学一下如何输出声音音调,了解数组的使用,以及创建一个数据记录器!

那么,就让我们开始吧!

端口扩展 —— 听上去不太现实,对吗?不,这是真的!我们马上就要来学习如何使用一个小小的特殊的74HC595 8位串行输入/并行输出移位寄存器芯片来做到这一点。我们先来看一下他长什么样。

在开始前,我们需要先来了解一下 位、字节和二进制数。

二进制数仅仅使用0和1来表示数值。 二进制数(binary)也被称为 “二元数(base-2)″,因为它仅仅使用了两个数字。我们通常使用的数字是十进制数 (使用了0到9的数字;十六进制则使用了0到9和A到F)。二进制数是怎样用两个数字来表示一个很大的数值的呢?它使用了很多的1和0。我们来看一个二进制数 01010101(译者注:这里原文写错了,原文中的二进制数是10101010,与下表中的数字不符。记住2的0次方是最右边的最低位数字,而2的7次方则是左边的高位第八位数字)。作为一个二进制数,第几位就表示2的几次方,位数从0开始……
发布时间 发布于 2011-08-25 14:49:26 | 阅读次数 阅读过658次 | 分类 Arduino | 评论 2条评论 | 引用 没有引用通告
欢迎回来,Arduino的爱好者们!

在这一章节,我们将会了解一下继电器,实现更多的功能的函数,中断操作,以及最后学习如何使用伺服电机。那么我们赶快开始吧!

根据计划,首先是继电器。

什么是继电器?我们把它想象成两个非常接近的物体:一个线圈,有时会有电流通过它;以及一个开关,默认值是一个方向。当电流通过线圈,那么它将产生一个电磁场使开关改变状态。使用继电器的好处是:你可以用一个小电流和电压来控制打开或关闭一个使用非常大的电流和/或电压的负载——开关和线圈电流是彼此独立的。下面是一个继电器的例子。

如果你仔细看,你可以看到线圈和内部的开关。这一款继电器有一个双刀双掷开关。这意味着两个输入可以切换两个方向中的任何一个。线圈需要12伏的电压才能激活;而开关能承受250伏5安培的交流电;线圈阻值是200欧姆。欧姆定律(电压=电流x电阻)告诉我们,该线圈电流是60毫安。由于我们无法通过Arduino得到很大的电流的——因此需要使用继电器。(如果任何人想要尝试,把它拍摄下来发给我们!)唯一的问题是,继电器中有移动的部件(开关),因此时间久了会有损耗。所以如果你设计了一个使用继电器的项目的话,要确保在给最终用户或维护的人的维修保养计划中要记录下这一点……
发布时间 发布于 2011-08-09 22:55:22 | 阅读次数 阅读过829次 | 分类 Arduino | 评论 2条评论 | 引用 没有引用通告
Arduino的爱好者们,欢迎回来!

我希望通过这些文章大家能够学会并创造出一些有趣的东西。如果你还没能做到这一点,慢慢来,你很快就能做到了!

今天要完成以下几个课题:读取温度,将数据从Arduino传送回电脑,打开Arduino函数库,使用LCD显示屏,以及通过一些练习来回顾和巩固所学到的知识。

首先,我们要来研究一个新的传感器——温度传感器。你可以想象,这个传感器可以用来创造许许多多的应用,从简单的告诉你现在的温度,到一个基于Arduino的恒温控制系统。其实创造这些要比大多数人想象的简单的多——所以,准备好去让大家大吃一惊吧!

让我们来了解一下 Analog Devices 公司的 TMP36 低电压温度传感器吧:

非常小,不是么?因为它使用了标准的 TO-92 封装,它看上去就像是一个标准的三极管(例如 BC548)。TMP36使用起来也非常简单——把平的那面朝上,引脚 1 是 +5V 电源 (你可以把这个引脚连接到Arduino的+5V供电插孔中),引脚 2 是电压输出端 (读数,温度值),引脚 3 是接地 (连接到Arduino的接地插孔中)。 如果想知道更多的信息,可以参考TMP36的数据表文件,里面有着更详细的信息,也非常容易阅读……
发布时间 发布于 2011-07-22 00:11:59 | 阅读次数 阅读过557次 | 分类 Arduino | 评论 没有评论 | 引用 没有引用通告
Arduino的爱好者们,欢迎回来!

希望大家能够享受Massimo的书和新学来的关于Arduino系统的技术所带来的乐趣。现在有许多非常有趣的任务要在这周完成:读完书的第四和第五章,其中有着一些重要的关于电子技术的信息;我们还要学习一些新的Arduino语言的语句,这些新的命令能够节省你的时间和Arduino的内部存储空间;再看一下脉宽调制技术;随机函数;接收模拟输入信号;条件判断语句;最后——完成一个练习项目来验证你所学到的知识。

首先,请继续从第38页一直阅读到第四章结束。其中包含了一些如何处理“弹跳开关(switch-bounce)”的不错的方法,这将在以后非常有用。我们稍后见!

欢迎回来。

让我们回顾一下上一课程中的练习代码,其中有许多重复的指令来按照顺序控制每个LED的开关。这看起来非常罗嗦并且还浪费了时间——这些都与Arduino存在的目的而相违背!不过,我们可以使用 for 循环语句来解决这个问题。for 语句的目的是根据指定的次数(当然这个次数必须是一个整数——你不可能重复执行一个循环3.141次!)来重复执行一段代码……
发布时间 发布于 2011-07-17 17:49:07 | 阅读次数 阅读过511次 | 分类 Arduino | 评论 没有评论 | 引用 没有引用通告
欢迎加入到我们中来与我们一起通过这一套教程一起学习Arduino和电子技术! 我非常乐意与你分享学习、探索Arduino系统的乐趣,并一起创造一些有趣的、好玩的、实用的玩意。噢,有太多东西需要学习,有太多乐趣在这其中呢!这套教程文章的索引在这里可以被找到。另外,如果还有一些你所感兴趣的问题,别担心,你可以提出来。

在开始的前几篇文章中,我们会参考 Arduino 的官方网站以及下面的这本书:

Getting Started with Arduino (Massimo Banzi)

另外我假设大家对电子工程都有了基础的了解。针对这方面的内容,我推荐下面这本书:

Make: Electronics (Chales Platt)

以及在这里所列出的我所写过的关于电子学的基础知识的文章。

如果你有任何问题需要我们的支持或回答,你可以在我们的Google 用户组中发表你的问题。这是一个非常友好的讨论问题的地方 :)

首先,我们把整个系统分解成几个基础的部分。这样我们就能够方便的理解Arduino到底是个什么东西了。

Arduino是一个基于一个简单的输入/输出的控制板和一个实现了Processing语言 (www.processing.org)的开发环境的开放源代码的物理计算平台。Arduino能够被开发成独立运作的交互式设备或者和你的计算机上的软件连接使用。[1]

所以,我们把整个系统分解成了硬件和软件。我们的硬件是一台能够运行Arduino IDE(集成开发环境)软件的个人电脑,以及Arduino控制板本身和他的电子配件……
发布时间 发布于 2011-07-11 09:38:07 | 阅读次数 阅读过962次 | 分类 Arduino | 评论 1条评论 | 引用 没有引用通告
最近从兔子那里收了一个几乎全新的Nikon D90单反,于是就把自己的D80出给了别人。一开始,用惯了D80的我对D90的成像风格很不习惯,总感觉颜色过于浓郁。后来想想,也许这就是D90的CMOS感光芯片和D80的CCD芯片之间的差别吧。还好D90还提供了自定义的色彩曲线来方便直接出片,调整了一下设置后,慢慢的,拍了几百张照片后,也就习惯了D90的色彩。

D90除了大家都知道的比D80多了Live View和摄像功能外,我发现原来D200才支持的外接GPS模块的功能D90也可以支持了。不过D90的外接GPS的接口是和快门线共用的。在D80时代,我一直羡慕D200能够外接GPS,拍照的时候,相机就能自动将拍摄地点的GPS信息存入相片的EXIF信息中。这样在浏览照片时,就能准确定位到拍摄地点了,这个功能在旅游照片或风景照中非常实用。D90现在支持了这一功能,但是还得有个GPS模块才能够使用……
发布时间 发布于 2011-06-06 17:15:56 | 阅读次数 阅读过1489次 | 分类 摄影 | 评论 3条评论 | 引用 没有引用通告