PICAXEでLEDイルミネーションの実験(失敗?)

    PICAXE
    11 /13 2016
    クリスマス前なもので?PICAXEでLEDイルミネーションの実験(遊び?)をしてみました。
    内蔵のEEPROMから周期的にデータを読み出して、シフトレジスタに転送して8個のLEDを点滅させる回路です。

    回路図
    LED_illumination01.png
    PICAXEからシフトレジスタ(74HC164)にデータを転送してLEDを点けるものです。
    多数・大電流のLEDを繋ぐ場合TRかFETでバッファする必要があるのでHで点灯させています。

    PICAXEで行う場合の難点はシフトレジスタへのデータの転送が遅いこと。
    この回路は原理的にシフト中のデータでもLEDが点灯するので転送が速い方が目立たない。
    PICAXEは低速で厳しそうなのでやっていなかった。

    シフトレジスタとLEDの間にD-FF(74**574等)を入れて、シフトレジスタへ転送してからD-FFにまとめてシフトすれば問題なくなるのが配線が20本増えて面倒。(持ってないし)

    プログラム
    実際のデータ転送(シフト)時間はCLK8個分の時間。
    パラ→シリの変換時に1か0かの判断で時間差が出るので%10101010で平均時間をみる。
    LED_illumination02.jpgLED_illumination03.jpg
    20ms弱と思ったよりは速かった。 
    が、転送中の発光は基本的に目障りだった。
    ただ、データのパターンによっては全く感じないものもある。(55h、AAhの繰り返し)
    目立つのはLEDが1個しか点灯しないパターン。
    LEDが2個点灯するパターンだとそんなには気にならない?
     例 アニメーションGIF 2MB 20フレーム/s

    LED4個なら転送時間が半分になるので多少良くなるか?
    LED_illumination04.png
    プログラム
    う~ん、多少良くなったような気もするが差はよく分かりませんでした。
    最低1/10の2msとかにしないとダメな感じです。

    転送前にシフトレジスタをリセットして追い出されるデータを消すのもやってみましたがデータパターンによってはずっと消えっぱなしになるLEDが出て返ってシフト中の点滅が目立つのでやめました。

    なお、実験なので一つのプログラム中でEEPROMへの書き込みも行っていますが、このままだと電源を入れる度に毎回書き込みを行ってしまいEEPROMの寿命が縮みます。
    もし、この回路を使うならば一度このプログラムを書き込んだら、EEPROM 0,(・・・)の行をコメントアウトして、先頭付近の#no_dataを有効にして再度書き込んで下さい。
     因みにEEPROM(FLAHも)の寿命はフローティング(浮き、浮遊)ゲートの絶縁膜が
     へたることで来るようです。
     DRAMのようにゲートに電荷を溜めて記憶するのですが、絶縁膜を貫通するのに
     高電界(≒高電圧)を掛けてトンネル効果で書き込むので絶縁膜が劣化するようです。
     データの保持期間も絶縁膜の性能で決まるはずです。
      因みに東芝からSanDiskの情報が韓国のSK Hynixに漏れたのはこの絶縁膜の技術な
      ようです。
     高電圧は内蔵のDC/DC(チャージポンプ?)で発生するようです。
      大昔のPROMは12Vが必要だった。

    発光パターンによっては使えそうですが基本的にD-FFを入れた方が良いでしょう。(当たり前)

    以上
    目次へ      
    関連記事

    コメント

    非公開コメント

    Friendship 7

    浅く広くのハード屋です。 基本的に弱電ですが強電も多少分かります。
    コメントへの返信には過大な期待をしないで下さい。 非公開コメントは停止しております。 不適切なコメントはFC2で自動的にはじかれます。
    リンクフリーですが盗作は禁止です。
    本ブログの内容を参考にされる場合はあくまで自己責任でお願い致します。