2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最近のトラックバック

« ATtiny13をArduino IDEで使う(暫定版) | トップページ | ATmega48/88/168/328用のヒューズリセッターをArduinoで作る »

2014年5月 9日 (金)

bitDuino用フルカラーLED(RGBLED)ライブラリを作りました。

先日ATtiny13AをArduino IDEで使う としてbitDuinoを(暫定)公開しました。ところがATtiny13AはPWMポート(analogWrite出来るピン)を2つしか持っていないので、フルカラーLED(RGBLED)を使おうと思うとPWMポートが足りません。そこで、タイマーオーバーフロー割り込みを使ったフルカラーLED(RGBLED)のライブラリを作りました。

「bitRGBLED_2014_05_09.zip」をダウンロード

  • 対象はbitDuino13Aと前回も紹介したこちらのATtiny45/ATtiny85
  • bitDuino13AではanalogWrite関数やtone関数と併用出来ません。
  • ATtiny45/ATtiny85では0番,1番ピンのanalogWrite関数と併用出来ます。
  • 内部でdigitalWriteを使っているので、どのピンにも割り付け可能です。
書式
◇初期設定
initRGBLED(赤のピン番号, 緑のピン番号, 青のピン番号);
 これでフルカラーLEDのピン番号を紐付けします。またタイマーの初期化をします。ピン番号は0〜5のどのピンでもかまいません。
◇個別LEDの輝度設定
setRGBLED(RGBの色番号,輝度);
 これはほぼanalogWrite関数と等しいのですが、RGBの色番号は0〜2になります。現状、赤→0, 緑→1, 青→2を指定して下さい。デジタルI/Oピン番号では無いのでご注意。
◇フルカラーLEDの輝度一括設定
setRGBLED(赤の輝度, 緑の輝度, 青の輝度);
 RGBを一括で設定します。
以上の3つの関数で出来ています。引数はいずれもbyte値です。
サンプルスケッチ RGB_fade
#include <bitRGBLED.h>

const byte LED_R = 0;
const byte LED_G = 1;
const byte LED_B = 2;

void setup(){
  initRGBLED(LED_R,LED_G,LED_B);
}

void loop(){ 
  for(byte c=0;c<3;c++){
    for(byte i=0;i<255;i++){
      setRGBLED(c,i+1);
      delay(2);
    }
    for(byte i=255;i>0;i--){
      setRGBLED(c,i-1);
      delay(2);
    }    
  }
}

サンプルスケッチ colorWheel
#include <bitRGBLED.h>

const byte LED_R = 0;
const byte LED_G = 1;
const byte LED_B = 2;

void setup(){
  initRGBLED(LED_R,LED_G,LED_B);
}

void loop(){ 
  byte i;
  for(i=0;i<255;i++){
    setRGBLED(i,255-i,0);
    delay(2);
  }
  for(i=0;i<255;i++){
    setRGBLED(255-i,0,i);
    delay(2);
  }
  for(i=0;i<255;i++){
    setRGBLED(0,i,255-i);
    delay(2);
  }
}

いずれもライブラリに収録されています。

« ATtiny13をArduino IDEで使う(暫定版) | トップページ | ATmega48/88/168/328用のヒューズリセッターをArduinoで作る »

Arduino」カテゴリの記事

コメント

今晩は
ふと、WebでbitDuinoの記事を発見して、試してみたところ
「 fatal error: pins_arduino.h: No such file or directory」が出ますが、
対処法は、ございますk?

nakaさん、こんばんは。
公開とお返事が遅くなってスミマセン。
問題がどのような経緯で出ているかちょっと掴めないのですが、
Arduino IDEはどのバージョンをお使いですか?
bitDuinoの設定はされていますか?
どのボードを選択されていますか?
お答え頂ければ、回答出来るかもしれません。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« ATtiny13をArduino IDEで使う(暫定版) | トップページ | ATmega48/88/168/328用のヒューズリセッターをArduinoで作る »