Arduino中国 | Flamingo EDA

Jan/08

28

DIY Wiring: 外部电源和EEPROM

整个Wiring最后两部分电路是外部电源和EEPROM。外部电源电路与Arduino上的基本没有什么区别,采用的也是78M05这样的电源芯片,相应的元件清单如下:

类型 标记 数量 规格
电源芯片 IC4 1 LM78M05
电容 C10, C11 2 100nF
电容 C12, C13 2 100uF
整流二极管 D1 1 1N4004

Wiring电路上带一个4K字节的EEPROM,其作用是可以用来保存一些程序的数据,如用户的配置数据等。EEPROM的电路部分并不算复杂,估计大部分工作都在于软件上,下面是相应的元件列表:

类型 标记 数量 规格
EEPROM芯片 IC3 1 93C46
电阻 R5 1 10K, 1/4W
电阻 R6 1 2.2K, 1/4W

最后焊接完的效果如下图所示:

为了对其中的EEPROM功能进行验证,我试验了另外一个Wiring工程:


#include 
char val; 

void setup() {
  if(EEPROM.read(16) != 'F') {
    EEPROM.write(16, 'F');
  }
  val = EEPROM.read(16);

  pinMode(48, OUTPUT);
} 

void loop() {
  if( 'F' == val) {
    digitalWrite(48, HIGH);
  }
  delay(100);
}

上述Wiring工程在初始化过程中先读取EEPROM中地址为16的字节单元中的值,并在其不是字符F的情况下,往该地址单元中写入字符F,然后再从中读取这来。这样如果EEPROM正常工作的话,就能够保证变量val在setup()函数执行完后,其值一定是字符F。在loop()函数中,如果检查出val的值确实是字符F,就点亮Wiring板子上自带的LED(接在数字I/O的48管脚上)。

习惯了Arduino程序下载时不需要按复位键,并且在下载完成后也不需要按复位键,刚接触到Wiring时对其在这两个位置上还需要按复位键的做法的确有些不适应:-) 真希望Wiring在接下去的版本中能对这一地方进行改进。昨天发邮件问Wiring的作者为什么不把bootloader的源码公布出来,得到的答案居然是他把源码弄丢了,现在只有二进建的版本,我晕…

最后贴一张我制作的Wiring在运行上述EEPROM工程时的效果图,用的是外接电源,右侧的红灯是电源灯,左侧的绿灯是Wiring自带的LED。

No tags

5 comments

  • pemiamos · 2008/01/28 at 10:58 PM

    赞。
    就是不知道用的人多么?

  • Author comment by flamingoeda · 2008/01/28 at 11:05 PM

    还真不好说,现在很火的Arduino基于的就是Wiring,是其一个简化版本。Arduino的IDE和Wiring的IDE基本上是一样的,语言也是一样的,使用方式也基本一样,但是资源更加丰富,应该能够适应更加复杂的互动应用:)

  • whale · 2008/01/28 at 11:36 PM

    等我那块原装的回来跟它比对比对 ^_^
    从Arduino到Wiring再到将来的TNIY和Make controller kit,到时可以兼顾各种应用环境了!

  • Author comment by flamingoeda · 2008/01/29 at 11:45 AM

    元件布局上肯定是有些出入的:)

    有一个问题要解决的就是,每种平台的应用方式都不一样,像MAKE Controller用的就是C这样的语言,而Wiring和Arduino用的语言其实是Processing的变种 ;-) 至于Tiny,呵呵,还不能确定。

    但有一点是肯定的,越简化越好,越方便越好,对吗?

  • Simon Blanchard · 2008/05/19 at 6:02 PM

    Hi

    I’m in Shanghai. I’ve been trying to contact you about supply of the wiring boards. Please could you contact me.

    Thanks

    Simon

Leave a Reply

<<

>>