这个项目想尝试的是:
- 使用ATMega8而不是ATMega328
- 使用光敏电阻
- 尝试直接使用干电池而不是锂电池等供电
从结果来看,还可以。
首先是ATMega8。本来想用ATTiny2313的。不过ATTiny2313不支持模拟输入,另外的模拟差分输入IC暂时还不会用,所以考虑了下用ATMega8。上传程序使用USBAsp,和之前一样。不过选择Board需要是“Arduino NG or older”,然后选择Processor为ATMega8。
这片ATMega8貌似写过熔丝位了。频率似乎用了内部时钟的,程序写1秒,执行大约有16秒,也就是只有1MHz?不过不用外部石英晶振也少点麻烦。程序慢的话,功耗可以降低。点亮的效果:
那个白色的LED貌似很亮。之前差点被闪瞎……因为用了光敏电阻,如果周围比较亮,有声音的话也不会输出高的。近处看元件:
声控用了现成的。本来想自己弄三极管的,而且可以加上温度变化下更稳定的三极管放大电路。不过现在元件太多,找元件好麻烦。暂时就用买来的现成的吧。TOP视图:
右边的电池盒也是慢的,果然太便宜的话质量不怎么样,这个盒子有点脆,用起来要小心点……
下面是大致的电路图,ATMega168和ATMega8的PIN基本一致
最后附上代码
#define PIN_VOICE 2 #define PIN_LIGHT 0 #define PIN_LED 13 void setup() { pinMode(PIN_VOICE, INPUT); pinMode(PIN_LED, OUTPUT); } void loop() { if(digitalRead(PIN_VOICE) == LOW && analogRead(PIN_LIGHT) > 200){ digitalWrite(PIN_LED, HIGH); delay(200); digitalWrite(PIN_LED, LOW); delay(10); } }
恩,就是这么简单。其实我个人觉得电子技术重要的地方还是电路。所以能把那个声音传感器扩展就好了。如果再加个继电器电路就更好了。