スケッチはまた少し変えて、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);
}