SSブログ

踏切組み込み計画の挫折 [Arduino]

前回の踏切カンカンを ATtiny45V (8MHz) に移植してみました。
スイッチを押したときに鳴るようにしました。1回の「カ-ン」が途切れないようになっています。
fk_45v_bb.jpg
fk_45v_circ.png
あいかわらず見苦しいスケッチですが、前回のを少し改変
// 踏切くん (ATtiny45, 8MHz)
byte sigLED = 0;      // LEDの状態
byte railSW = 0;      // スイッチの状態

void setup() {
  DDRB |= B00000100;      // ピン2を出力に設定
  pinMode(0, INPUT);      // SW
  pinMode(3, OUTPUT);     // LED (Signal R)
  pinMode(4, OUTPUT);     // LED (Signal L)
}

void loop() {
    // 新たにスイッチを押した場合と、音が鳴っているときにスイッチが押されてた場合
  if( railSW || digitalRead(0) ) {
    railSW = 0;
    digitalWrite( 3, sigLED );           // LEDを交互に光らせる
    digitalWrite( 4, sigLED = 1 - sigLED );
    ding();
  } else {
    digitalWrite( 3, LOW );
    digitalWrite( 4, LOW );
  }
}

void ding() {
  unsigned int t;
  byte  pwm, rep, smp;
  for(t = 1; t < 750; t++) {            // 音を鳴らす
    railSW |= PINB & B00000001;             // ピン0が1回でもHIGHならSWがONと記録
    smp = (t % 5) * 4 * (1000 - t) / 1000;  // 波形を作る
    for(rep = 0; rep < 50; rep++) {           // 高速PWMで擬似アナログ出力
      PORTB |= B00000100;                       // ピン2をHIGH
      for(pwm =   0; pwm < smp; pwm++)  asm("nop");
      PORTB ^= B00000100;                       // ピン2をLOW (反転)
      for(pwm = smp; pwm <  16; pwm++)  asm("nop");
    }
  }
}


ここまできたので目標であったこいつに組み込みを、、、。
fk_45v_pr.jpg
 ・・・
アレっ、意外と小屋が狭い、、。
単4電池2本が入りそうだと思っていたのですが、小屋の中の柱が邪魔で入りませんでした。
外付け電池ボックスも格好が悪いし、ボタン電池は子供のおもちゃには心配だし、容量が少なく交換のたびに小屋のネジを開け閉めするのは面倒だし。


プラレール 音入り踏切 J18

プラレール 音入り踏切 J18

  • 出版社/メーカー: タカラトミー
  • メディア: おもちゃ&ホビー



プラレール J-18 小さな踏切

プラレール J-18 小さな踏切

  • 出版社/メーカー: タカラトミー
  • メディア: おもちゃ&ホビー


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。