2012年5月26日 (土)

PICのお勉強(15)C言語編 10個のLED点滅

 テストボードに取り付けてある10個のLEDを点滅させてみました。
ソースはこれ→ lesson15.c

/************************************
16F84A HI-TECH C v.9.83
LED10個の点滅(周期1秒)
************************************/
#define _LEGACY_HEADERS
#include "PIC.h"
#define _XTAL_FREQ 20000000 //20MHz

__CONFIG(HS & WDTDIS & PWRTDIS & UNPROTECT);

main(void){

TRISA = 0b00011;    //RA0とRA1は入力,あとは出力
TRISB = 0b00000000; //PORTBは全部出力

while(1){
PORTA = 0b00100;
PORTB = 0b01010101;
__delay_ms(500); //500ms待つ

PORTA = 0b01000;
PORTB = 0b10101010;
__delay_ms(500);

}
}

 C言語の作法では,数値は16進数で書くのが基本みたいですが,僕はLEDの点灯パターンは2進数で書くのが好みだなあ。


| | コメント (0) | トラックバック (0)

2012年5月21日 (月)

金環日食@岐阜市

20120521 とりあえずお約束の,今朝デジタルカメラで撮った金環日食です。
 岐阜市は朝からすばらしい快晴で,絶好のコンディション(^^)
天気予報では「曇りときどき晴れ」だったので,ちょっと準備不足だったのですが,友人から貰った観測用フィルタとデジカメと三脚を持ち出して,自宅前の路上から撮影。まあ素人写真としてはよく撮れたほうかなーwink

| | コメント (0) | トラックバック (0)

2012年5月20日 (日)

PICのお勉強(14)C言語編 2個のLED交互点滅

 次は,RA2とRA3のLEDの交互点滅をやってみます。ソースはこれ

/***************************************************
16F84A  HI-TECH C PRO v.9.83
RA2とRA3のLEDを交互に点滅(周期1秒)
***************************************************/
#define _LEGACY_HEADERS
#include "PIC.h"
#define _XTAL_FREQ 20000000    //20MHz

__CONFIG(HS & WDTDIS & PWRTDIS & UNPROTECT);

main(void){

TRISA = 0b00011;

while(1){
RA2 = 1;        //RA2を点灯
RA3 = 0;        //RA3を消灯
__delay_ms(500);   //500ms待つ

RA2 = 0;
RA3 = 1;
__delay_ms(500);

}
}

 ヘッダファイルの互換性の問題については,
#define _LEGACY_HEADERS と先頭に書けばOKみたいです。
 あとは,16F84Aにつけてあるセラロックのクロック周波数を定義して,__delay_ms(500)とか書けば,500msのタイムインターバルをとることができるのです。これで1秒周期で交互点滅させることができます。おー,これは簡単。

 なんか評判が良さそうだったので,参考書としてC言語ではじめるPICマイコン~フリーのCコンパイラではじめようって本を買いました。MPLAB IDEとPCC Lite(HI-TECH C PROの前バージョン)を使ってるから,僕の環境にピッタリです。


| | コメント (0) | トラックバック (0)

2012年5月19日 (土)

PICのお勉強(13)C言語編 LEDの点灯

 しばらくサボってたPICのお勉強を,アセンブラじゃなくてC言語で再開しようと思います。まあアセンブラがめんどくさくなっただけですな(笑)
 とりあえず,以前アセンブラでやったことをCでやり直してみるつもりです。とは言っても,C言語も生まれて初めてさわるので,どうなることかわかりませんが。
 コンパイラは,以前MPLAB IDE v.8.80をインストールしたときに同時に入ったHI-TECH C Compiler v.9.83を使います。テストボードは16F84Aを載せたこれです。

で,今日初めて書いたプログラムがコレ

/**************************
16F84A
RA2とRA3のLED点灯
**************************/

#include <pic.h>
__CONFIG(HS & WDTDIS & PWRTDIS & UNPROTECT);

void main (void)
{
// TRISA入出力設定  RA0,RA1は入力、RA2~RA4は出力
TRISA = 0b00011;

while(1)
{
// RA2とRA3点灯
PORTA = 0b01100;
}

}

 ところが,これをコンパイルするとエラーを連発します。
調べてみたところ,HI-TECH Cのv.9.81以降はヘッダファイルが全面改定されていて,__CONFIGの書き方が変わっちゃったんだそうです。20120519 手っ取り早い解決方法は,Build OptionのCompilerタブを開いてDefine macrosに「_LEGACY_HEADERS」と書いて,Addすることのようです。確かにこれでコンパイル成功(^^)
 しかし,こういう仕様変更をしたときは,上位互換にしとくもんじゃないですかねー。

 RA2とRA3に接続したLEDを点灯させるだけのプログラムですが,アセンブラより断然カンタンじゃないですか。
こりゃいいわーshine

| | コメント (0) | トラックバック (0)

2012年5月13日 (日)

名古屋市科学館 放電ラボ

1040048 物理部の生徒を連れて,名古屋市科学館へ遊びに行ってきました。
 昨年リニューアルして大変な人気みたいだったので,しばらく様子を見ていたのですが,「そろそろ空いてきたんじゃないの?」と思って行ってみたら,とんだ大間違いでした。
 写真のように,人気のプラネタリウムの入場整理券をもらうために,何百人も並んでいます。そばにいた科学館の職員に聞いたら「ゴールデンウィークは大変でしたけど,今日は空いてますよ(^-^)」だって。
1040090 仕方がないので,常設展示のみを見ることにして400円の入場券を買いました。(高校生は200円)
生命館はリニューアル前とほとんど同じですが,理工館の展示物が大幅に増えていて,ほんとに素晴らしいです。
 天井近くに設置してある巨大ウェーブマシン(縦波・横波)やモンキーハンティングの装置,音のフレネルレンズ,巨大トルネード実験装置など,目を見張る展示物が数多く新設されています。
 展示物を解説する職員やボランティアも以前に比べると増員されていましたが,入場者が多すぎて対応し切れていない様子でした。でも皆さん頑張ってらっしゃいました(^^)
 2枚目の写真は「放電ラボ」の巨大テスラコイル。客席は金網の中に入っていて静電シールドされています。
さすが,150万ボルトの放電はすごい迫力です。

| | コメント (0) | トラックバック (0)

2012年5月 1日 (火)

岐阜のローカル新聞で紹介されました

 先日,岐阜新聞社の取材依頼を受けて,記者に授業を見せてあげたんだけど,昨日の朝刊にそれが掲載されました。
Webサイトにも掲載されてたのでご紹介します。

2012年4月30日(月)岐阜新聞朝刊 【いま学校で】
http://www.gifu-np.co.jp/tokusyu/nie/ima/201204301.htm

 これで売り上げが下降線の一途をたどる(笑)拙著「高校物理雑記帳」が,また売れるかも?
ここですかさず宣伝(^-^)/


| | コメント (0) | トラックバック (0)

2012年4月30日 (月)

100均ミニアンプ

201204301 セリアという100均のお店で「ボリュームアンプ」という,単4電池2本で動くアンプを買ってきました。これを部品から集めて作ったら,100円じゃできないだろうなあ。「100均,恐るべし」ですな。 これにスピーカーをつけて,ちょっとした実験に使えるミニアンプを作ってみました。
201204302 さっそくバラしてみると,TDA2822MというICと7つのCR類,スイッチ付きVRのついた基板がでてきました。
TDA2822Mというのは,電源電圧1.8~15Vで使えて,3Vだと出力0.2W,9Vだと1Wくらい出せるみたいです。低電圧で使えるのがいいですね。基板の裏面はこうなっています。
201204303 ハンダは質の悪いものを使ってるようで,艶もなく,なんだかガサガサした感じです。これが「中華クォリティ」ってやつですかね(笑)
出力のミニプラグ(メス)と,50kΩスイッチ付きVRは取り外しちゃいましょうか。電源は,オリジナル通りの3Vでいきます。
201204304 百均で買った小型のタッパーウェアにスピーカーと別に用意したSW付き50kΩVR,入力用ミニプラグ(メス)と電源確認用のLEDを取りつけて基板と電池ボックスを放り込めば完成です。
 LINE入力でもマイク入力でもOK。これはひとつ作っておくと便利ですよ。


| | コメント (0) | トラックバック (0)

2012年4月22日 (日)

サボニウス型風力発電機

201204221 福島第一原発の事故以来,生徒もエネルギー問題に関心を持ち始めたようなので,ネット上にたくさん情報のあるサボニウス型の風力発電機を作ってみました。 サボニウス型は,高速回転はしないけど風力が弱くてもそこそこ効率よく発電できるタイプのようです。
 SHIMANO(シマノ)のDH-2N30Jというハブダイナモ(2,235円)と,ベニヤ合板,45Lのポリバケツで,写真のように組み立ててみました。
201204222 ポリバケツを半分に切るのはなかなか大変ですが,あわてずゆっくりノコギリをひけばキレイに切ることができます。ベニヤ合板は電動工具のジグソーで切ったほうが,早く美しく仕上がると思います。
ハブダイナモには,スポークを取りつける穴がたくさん空いてますから,この穴を使って木ねじで回転円板に固定します。下はもともと付いているボルト・ナットで,台の板に固定しました。
 ハブダイナモは,交流発電機ですから,ダイオードブリッジで全波整流し,400μFくらいの平滑コンデンサを入れてやると良いでしょう。
 ためしに扇風機の風で回してみたところ,3Vくらいの電圧が得られました。手持ちのラジオをつないでやると,安定してちゃんと聞こえます。電灯線の電気で扇風機を回してラジオを聞くってのもあんまりエコじゃないですけどね(笑)

| | コメント (0) | トラックバック (0)

«PINフォトダイオード使用簡易放射線量モニターキット