Arduino中国 | Flamingo EDA

CAT | 常用元件

我们在用Arduino制作各种互动作品的时候,经常会用到一些常用的传感器或者电路模块。对于那些熟悉电子电路的人来讲,用面包板或者万能板搭建一些简单的模块电路当然是可以的,但对于那些不太熟悉电路或者稍微复杂的电路来讲,似乎就不那么适合了。

国外经常有人将各种实用的电路作成电子模块的,这样在需要的时候我们只需要购买相应的模块,然后做一些简单的连接和配置就可以了。在将同样的思路应用到Arduino和互动设计上之后,我们专门针对Arduino开发了一块连接各种传感器的扩展板:

 

各种电路模块同Arduino相连接的接口一般分为模拟、数字和串口三种类似,上面这块扩展板上的左边是6个模块接口,可以用来读取模拟量输入,右上角则引出了Arduino数字I/O接口上的0-7号管脚。对于扩展板上每一个模拟接口和数字接口来讲,都各自有一个引脚同Arduino上的5V和GND引脚相连,以方便接线。

下图是该扩展板与Arduino相连接后的效果图:

 

使用这一扩展板能够很容易地与一些常用的模拟传感器相连,例如光线传感器。连接的时候我们需要用到专用的连接线:

 

有了这一扩展板和相应电路模块的支持,我们只需要用专用的连接线把相应的传感器模块同Arduino连接起来,电路部分就算完成了。由于具体的电路细节则都由相应的传感器模块来实现,因些我们需要考虑的只是如何在Arduino中编写相应的程序来读取这些传感器传过来的数据就可以了。

 

No tags

Arduino采用的ATmega168芯片带12个数字I/O管脚,其中每个都可以对一个数字量进行控制,从而实现类似于点亮一个发光二极管这样的功能。在实际的工程应用里,有时我们可能会遇到需要对更多的数字量进行控制的场合,比如同时控制16个发光二极管,这时Arduino自带的数字I/O管脚就不够用了,必须进行相应的扩展。其中一种可行的办法就是借助74HC595这样一个8位串入并出移位寄存器,这个芯片能够多个级连起来一起使用,因此理论上能够通过Arduino上有限的几个管脚(最少三个)产生任意多个的数字输出。

74HC595同数据相关的引脚可以分为三类:

  • DS:串行数据输入,接Arduino的某个数字I/O引脚。
  • Q0~Q7:8位并行数据输出,可以直接控制8个LED,或者是七段数码管的8个引脚。
  • Q7′:级联输出端,与下一个74HC595的DS相连,实现多个芯片之间的级联。

74HC595同控制相关的引脚一共有四个:

  • SH_CP:移位寄存器的时钟输入。上升沿时移位寄存器中的数据依次移动一位,即Q0中的数据移到Q1中,Q1中的数据移到Q2中,依次类推;下降沿时移位寄存器中的数据保持不变。
  • ST_CP:存储寄存器的时钟输入。上升沿时移位寄存器中的数据进入存储寄存器,下降沿时存储寄存器中的数据保持不变。应用时通常将ST_CP置为低点平,移位结束后再在ST_CP端产生一个正脉冲更新显示数据。
  • MR:重置(RESET),低电平时将移位寄存器中的数据清零,应用时通常将它直接连高电平(VCC)。
  • OE:输出允许,高电平时禁止输出(高阻态)。引脚不紧张的情况下可以用Arduino的一个引脚来控制它,这样可以很方便地产生闪烁和熄灭的效果。实际应用时可以将它直接连低电平(GND)。

对于一个最简单的74HC595应用来讲,可以用Arduino的三个数字I/O端口分别控制DS、SH_CP和ST_CP,然后将MR和OE分别接VCC和地。下面是利用74HC595来控制8个LED的原理图:

No tags