記事一覧

UBW基板でMikcroC

2009.07.29


先日作ったUBW基板MikroCでプログラミングしてみました。
基板をブレッドボードに挿し、cdsから読み取ったアナログ値をLCDに表示させるというものです。
Swordfish添付のサンプルプログラムADIn.basと同じ機能をC言語で書いてみたのが以下のコードです。


void main() {
unsigned int temp;
char dsp[7];

PORTC = 0;
TRISC = 0;
TRISB = 0;
TRISA = 0xFF;
ADCON0 = 1;
ADCON1 = 0x7;

// Lcd_Init(&PORTB);
Lcd_Config(&PORTB, 3, 2, 1, 7, 6, 5, 4);
Lcd_Cmd(Lcd_CLEAR);
Lcd_Cmd(Lcd_CURSOR_OFF);

while(1) {
PORTC.F0 = ~PORTC.F0;
PORTC.F1 = ~PORTC.F0;
temp = (Adc_Read(0) + 1) * 500 / 1024;
Delay_ms(500);
IntToStr(temp, dsp);
Lcd_Out(1, 1, "DC Volts");
Lcd_Out(2, 1, dsp);

}
}


// Lcd_Init(&PORTB);
の部分はLCDの配線をSFC用にしているため、
Lcd_Config(&PORTB, 3, 2, 1, 7, 6, 5, 4);
に置き換えています。
PORTC.F0 = ~PORTC.F0;
PORTC.F1 = ~PORTC.F0;

はLEDの赤と緑を交互に点滅させるオマケです。
コードの行数はSFCと遜色ないですが、18PICともなるとレジスタ設定が多岐にわたり、ちょっと大変でした。

タグ:PIC 18F2550 ADC LCD UBW

デジタルフォトフレーム

2009.07.25

秋葉原にてデジタルフォトフレーム2点を購入しました。
一つはLCDが1.5インチ128x128ピクセルと小さいのですが、キーホルダーサイズで、52枚の画像を登録できます。

この小ささでバックライト付きで、USBインターフェイス、内臓バッテリーまで装備していて、ちょっと驚きです。
PICで自作しようと思えば18F4550あたりになるのでしょうか。
カラーLCDとリチウムイオン電池を組み込んで・・・原価だけで数千円は掛かりそうですね。
機能的にはUSB接続モード、時計表示(デジタル/アナログ)、スライドショー、自動オフ設定、コントラスト調整、バックライト調整、ファイル削除、となっています。
USBケーブルでPCに接続すると自動的にアルバム管理ソフトが立ち上がります。

ソフトの使い勝手は、特にPC側ファイル選択がやりにくいのですが、サイズ変更、左右回転など最低限の機能は装備されています。
画質は飛び切り良いとは言えませんが、コントラストとバックライトを調整すればソコソコ使える程度だと思います。
それにしても、この小ささにどうやってこれだけの機能を詰め込んでいるだろう?とっても気になります。
(分解して、PIC+GPSのモニターとか作れないかな?まあ今の私の実力では無理ですが。。。)
アキバのあきばおーにて999円で購入しました。

もう一つはよくある7インチのものですが、解像度が480x234ピクセルでちょっと荒さが感じられます。

グリーンハウスのGAUDIというものです。
写真だけでなく、mp3などのミュージックやaviの動画ファイルも再生できるのですが、スライドショー中に勝手に音楽が鳴ってしまい止めることができません。(消音するという手はありますが)
こちらも、あきばおーにて3,999円で購入。
機能的に不満なのは何と言ってもスライドショーでランダム再生ができないことです。
画像ファイルを縮小して1万枚ほどSDに入れましたが、毎回最初から再生されてしまいます・・・
あと、自動的にスライドショーが始まらないのも不便。
(訂正)自動再生はデフォルトでできるようです。
良いところは、リモコンで操作できること。
オートオン・オフの時間の設定ができること、といったところでしょうか。
まあ、この値段で7インチのサイズですから多少の粗は目をつぶらないといけないですね。
改造してPCのサブモニタとかにできると面白いと思うのですが。

写真はフラッシュオフで撮影しているのでかなり青味がかっていますが、肉眼で見ると色彩はそれなりに出ています。

タグ:LCD USB

シフトレジスタ(74HC164)その3

2009.07.21

前回紹介したシフトレジスタの実験回路、非常に簡単なものですが一応アップしておきます。
ファイル 16-1.png

データシートのタイミングチャートを見ると、このICの面白い特性が分かります。
ファイル 16-2.png

CLRとBピンがH状態の時、クロックと同期を取ったAピンの立ち上がりでQAがHとなり、以後クロックの上げ下げに応じてH状態がQA=>QB=>QCとシフトしていきます。
この機能を応用して、例えば"00001101"の状態を作り出すには、タイミングチャートのように、Aピンを2クロック分H、1クロックL、1クロックHとし、あと4クロック分Lを送れば実現されます。
クロックの変化がない限り状態は保持され、またクロックの周期はランダム(1usとか10ms)でもOKです。
前回紹介したプログラムでは、LEDが右から左へ移動しているように見せかけるため、シフト中はDelayを入れていないためLEDの点滅が感じられず、状態変化時だけにDelayを入れて、光っている状態を見せているように工夫しています。
これだけの操作を、PICからはたった2本のI/Oピンで制御できるのです。

タグ:74HC164 12F629 LED ロジックIC

UBW基板

2009.07.17

PIC18F2550で作成したUBW基板です。
ベースとなるPICのプログラム「ファームウエア」を書き込むことで、後はUSB経由でのプログラミングが可能となります。
UBWに関しては千秋ゼミさんの解説がかなり具体的で詳細です。
私はユニバーサル基板をベースに、ブレッドボードに挿せるようピンヘッダを仕込みました。

タグ:PIC 18F2550 USB UBW

作りながら学ぶPICマイコン入門

2009.07.16

参考書の紹介です。
作りながら学ぶPICマイコン入門


解説のターゲットは16F87Xなのですが、16F系だけでなく12F系でも十分参考になります。
言語はアセンブラ主体ですが、C言語が分かる方ならば翻訳して読むことができるでしょう。
CCP、USART、A/DなどPICの機能について幅広く解説されているので、ミッドレンジPICの使いこなしには欠かせない一冊です。

タグ:PIC 勉強 参考書

ページ移動