ATTiny Lチカボード | Tamesuke-Goto Maker的Blog

Tamesuke-Goto Maker的Blog

地域ISP管理者だけれど、ここ3年ほどMakerなJobが増えたのでまとめてみたいと思います 旧ハンドル Ringoro

以前書いた Lチカ回路 を元に基板化してみました。
 
ATTiny13, 85など 8pinのAVRチップを想定してLEDは使えるだけ5系列ドライブできる様にしました。
 
{B5124A6B-8213-4C52-B9AB-7FE2C87DACB0}
 
 
今回はPCBGOGO へ PCBGOGOはKiCadのガーバー出力を拡張子変えずにそのままアーカイブして処理してくれるので楽で良いのですよね。
 
{90EDDEE8-7639-44E8-BD8A-6DC8889C48B8}
 
10枚もあれば十分なのだけど、10枚で2200円くらい50枚で3200円くらいだったので50枚オーダーしました。51枚届きました。
 
{BE599F8F-EE54-4874-916F-4E60F8ABEC11}
基板のサイズ、枚数によると思いますが、面付けすると上下左右にダミーエリアを設ける必要があるのであまり効率よくない様な気が。。。素直にそのままオーダした方が安価になる感じもありますね。
 
 
 
 
{98229F42-D30F-47D6-A757-215471607FD8}

スケッチはまた少し変えて、LED4系列をおおよそ1秒おきに乱数で点滅、1系列をアナログ(PWM)でローソクぽくゆらゆら点滅する様なスケッチにしています。

 

乱数の関数は以前ネットのどこかにUPされていたコードで、どこからか覚えてないのですが、short int の乱数を発生してくれる関数です。

 

 

/*

     Blink and Candle Light 

     for  ATTiny13 LED Board 

 

     2017/12/5

 

   PCINT5/A0/D5/RST |1---O---8| VCC

       PCINT3/A3/D3 |2       7| D2/A1/INT0/PCINT2

       PCINT4/A2/D4 |3       6| D1/PWM/PCINT1

                GND |4-------5| D0/PWM/A0/PCINT0

 

   RST = ADC0/PCINT5

 

  PIN5(LED3) Candle Light

 

 */

 

//#include <avr/pgmspace.h> 

 

#define LED1 3

#define LED2 4

#define LED3 0

#define LED4 1

#define LED5 2

 

/*

 *    Random 

 */

 

unsigned int randshort(unsigned int init)

{

  static unsigned int seed;

  if(init!=0){

  seed ^= init;

  }

  seed *= 52341;

  seed += 37;

  return(seed ^ 0x1234);

}

 

void setup() {

  randshort(analogRead(0));

  pinMode(LED1, OUTPUT);

  pinMode(LED2, OUTPUT);

  pinMode(LED3, OUTPUT);

  pinMode(LED4, OUTPUT);

  pinMode(LED5, OUTPUT);

 

 

 

void loop() {

  static unsigned char d;

  static unsigned char t;

  d = randshort(0);

  analogWrite(LED3,d);  

  if(t++ > 11){

    t=0;

    digitalWrite(LED1,(d & 0x11));

    digitalWrite(LED2,(d & 0x28));

    digitalWrite(LED4,(d & 0x44));

    digitalWrite(LED5,(d & 0x82));

  }

  delay(80);

}

 

  

 
 電源電圧はLED20個並列、乾電池3個4.5Vのつもりで作りましたがLEDの数を減らしたりすれば3Vでも十分明るい様です。