まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

2015年03月

メモ:Arduinoのtone()

 Arduino IDE 1.0.6 + Arduino Leonardo(互換機)で確認。
 昔はtoneライブラリだったのがいつのまにか内蔵のtone()関数になっていた。

http://arduino.cc/en/reference/tone

 昔はピンに制限があったような記憶。全ピンで音が出せるか以下のコードで確認。

https://gist.github.com/houmei/a81073dbe811d90c1fe4

圧電ブザーを端子に挿しながら確認する。D0〜D13、A0〜A5で音がでた。
tone(ピン,音程)でセットした後、noTone(ピン)で解除しないと別ピンでtone()が使えない。tone(ピン,音程,長さ)を設定したときも同様。

2015tonelib


次はこれを使ってみたい。

サインスマート(SainSmart) レオナルド 互換 Leonardo R3 ケーブル付 ブラック
サインスマート(SainSmart) レオナルド 互換 Leonardo R3 ケーブル付 ブラック
サインスマート(SainSmart)
売り上げランキング : 45127


Amazonで詳しく見る
by G-Tools

少ないピンでたくさんのLEDを制御するCharlieplexingの実験

 20個のLEDを並べたやつを制御しようと色々考えていた。単純な方法は20pin分をそのままLEDに割り当てる方法だがこれはあまりにも考えがなさすぎる。4x5のマトリックスで作ったものは上手くいった。が、さらに少ないピン数でLEDを制御する方法があった。

Charlieplexing(wikipedia)

20個のLEDを制御するためには5本の制御線があればよい。A,B,C,D,Eの5本からLEDに向けて2本を選ぶと
、その組み合わせは以下のとおり。中学二年の確率でならう範囲。
AB AC AD AE
BC BD BE
CD CE
DE
極性を逆にするので
BA CA DA EA
CB DB EB
DC EC
ED
合計20通り。

配線はこのような感じ。
2015charieplexing1



 A,B,C,D,Eの端子はArduinoの12,11,10,9,8ピンに割り当てる。それぞれのピンから220Ωを通してLEDに接続する。

高輝度10ポイント赤色バーLEDアレイOSX10201-R(秋月電子)
A-Star 32U4 Mini ULV(スイッチサイエンス)

2015charlieplexing2

コードは以下:
https://gist.github.com/houmei/adcd5fbe0a910a5852b2

Charliepliexingでは同時に発光するLEDは1個なので、ダイナミック点灯をさせると数が多ければ多いほど暗くなる。また、配線が面倒くさい。
A-Star 32U4 Mini ULVは0.5Vから動作するDC-DCコンバータ内蔵のArduino Micro互換マイコンモジュール。ここでは単三電池2本の3Vで動作させた。連続運転で20Hぐらいは問題なかった。(それ以降はリセットが時々かかるような動作になる)
 これでピン数が少ないマイコンでもたくさんのLEDが制御できるね。

参考:
Charlieplexing 7SEG LED by ikkeiモジュールとドライブモジュール(メモたんく)
セカンド・オピニオン 363 MCUで遊ぼう(11)
さらに応用例:
Charlieplexingと8x8ドットマトリックスLEDへの適用(ikkei)
8x8マトリクスLED Charlieplexing(Yoshiのブログ)

記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ