踏切ガジェット [Arduino]
先日の踏切カンカンスリープモード付きを、電池ボックスケース(単3電池4本用で、2本を電池ボックスとして使用)に収めてみました。
前回のコードはボタンの判定やスリープに無駄があったのでちょっと改善してみました。
基板はこんな感じ
LEDは交互に光るので電流制限抵抗は1つでOK。ただLEDが明るすぎたので、後でもう少し抵抗値を上げました。
ケースはこんな感じで加工。
完成したのがコレ。
電車好きの息子のために、手作りクリスマスプレゼント。
Arduinoやブレッドボードでプロトタイピングは簡単にできても、そこから完成品を作るのはやっぱり慎重になります。
ハンダ付けしたら戻すのは一苦労。マイコンもケースに収めるためにはICソケットは使えないし。
でも完成品を作らなくては自己満足で終わってしまう、、。
来年はなるべく完成品ができるようにがんばりたいです。
前回のコードはボタンの判定やスリープに無駄があったのでちょっと改善してみました。
// 踏切音くん (ATtiny13, 9.2MHz), Sleep mode 付き
#include <avr/sleep.h>
volatile boolean swFlg = 0; // スイッチの状態
void setup() {
DDRB = B11001; // PB0(OC0A)をサウンド出力, PB3,PB4をLED ,
PORTB = B10010; // PB1(INT0)をスイッチ入力 (内部PullUp有効) とする
TCCR0A = _BV(COM0A1) | _BV(WGM01) | _BV(WGM00); // 8bit高速PWM
TCCR0B = _BV(CS00); // 分周なし
TIMSK0 = 0; // Arduino の割り込みを潰す
attachInterrupt(0, wakeUpNow, LOW); // use interrupt 0 (pin 2)
}
void wakeUpNow() { // here the interrupt is handled after wakeup
swFlg = 1; // スイッチが押されていたらフラグをたてる
detachInterrupt(0); // disables interrupt 0 on pin 2 so the
}
void sleepNow() { // here we put the arduino to sleep
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
sleep_enable(); // enables the sleep bit in the mcucr register
sleep_mode(); // here the device is actually put to sleep!!
sleep_disable(); // first thing after waking from sleep:
}
void loop() {
unsigned int pwmVal, t;
if( !swFlg ) { // スイッチが押されていなければスリープモードに入る
OCR0B = 0; // 消音
PORTB &= ~B11000; // LEDを消灯
sleepNow(); // sleep function called here
PORTB |= B10000; // LED点灯開始
}
swFlg = 0; // スイッチの確認フラグを降ろしておく
attachInterrupt(0, wakeUpNow, LOW); // use interrupt 0 (pin 2)
PORTB ^= B11000; // LEDを交互に光らせる
for( t = 0; t < 15000; t++ ) { // 音発生用のループ
pwmVal = (t & B111111) * (255 - (t>>6)) >> 6; // 計算式で音の波形をつくる
while( !(TIFR0 & _BV(TOV0)) ); // タイマーがオーバーフローするのを待つ
TIFR0 |= _BV(TOV0); // Timer/Counter0 Overflow Flag をクリア
OCR0A = pwmVal; // PWMの値を指定
}
}
基板はこんな感じ
LEDは交互に光るので電流制限抵抗は1つでOK。ただLEDが明るすぎたので、後でもう少し抵抗値を上げました。
ケースはこんな感じで加工。
完成したのがコレ。
ダウンロードは🎥こちら
電車好きの息子のために、手作りクリスマスプレゼント。
Arduinoやブレッドボードでプロトタイピングは簡単にできても、そこから完成品を作るのはやっぱり慎重になります。
ハンダ付けしたら戻すのは一苦労。マイコンもケースに収めるためにはICソケットは使えないし。
でも完成品を作らなくては自己満足で終わってしまう、、。
来年はなるべく完成品ができるようにがんばりたいです。
2012-12-23 21:07
nice!(0)
コメント(1)
トラックバック(0)
よくできてますね!
by たに (2016-10-23 15:37)