[电子技术]声控小灯


IMG_0030-skitch

这个项目想尝试的是:

  • 使用ATMega8而不是ATMega328
  • 使用光敏电阻
  • 尝试直接使用干电池而不是锂电池等供电

从结果来看,还可以。
首先是ATMega8。本来想用ATTiny2313的。不过ATTiny2313不支持模拟输入,另外的模拟差分输入IC暂时还不会用,所以考虑了下用ATMega8。上传程序使用USBAsp,和之前一样。不过选择Board需要是“Arduino NG or older”,然后选择Processor为ATMega8。
这片ATMega8貌似写过熔丝位了。频率似乎用了内部时钟的,程序写1秒,执行大约有16秒,也就是只有1MHz?不过不用外部石英晶振也少点麻烦。程序慢的话,功耗可以降低。点亮的效果:

IMG_0031

那个白色的LED貌似很亮。之前差点被闪瞎……因为用了光敏电阻,如果周围比较亮,有声音的话也不会输出高的。近处看元件:

IMG_0032

声控用了现成的。本来想自己弄三极管的,而且可以加上温度变化下更稳定的三极管放大电路。不过现在元件太多,找元件好麻烦。暂时就用买来的现成的吧。TOP视图:

IMG_0033

右边的电池盒也是慢的,果然太便宜的话质量不怎么样,这个盒子有点脆,用起来要小心点……
下面是大致的电路图,ATMega168和ATMega8的PIN基本一致

voice-light-led_schem

最后附上代码

#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);
  }
}

恩,就是这么简单。其实我个人觉得电子技术重要的地方还是电路。所以能把那个声音传感器扩展就好了。如果再加个继电器电路就更好了。