amnjackのNewWeblog

電子工作中心に雑多なカテゴリー構成ですが,興味のあるジャンルがありましたらご覧ください。

しつこくUNO遊び

2011年06月30日 | electro_craft
こんな初歩的なことをって笑われそうですが,書き慣れないとプログラムできないので,いろいろ自分で打ち込んで,動作を確認してます。
今日のは,4つのLEDを入力の電圧によって点滅させ,バーグラフのようにしてみるということ。ifを使う練習。
動きですからヨツベで!

http://youtu.be/f3paCeL8LQo


スケッチは,
スケッチ
***************************************************
/* ANALOG InPut Test Program
*4LED, IF **>level
*VR=103 LED抵抗240Ω
*/

int sensinput=2; //2pinにVR,電圧読み取り
int led1=13; //1桁目LED
int led2=12; //2桁目
int led3=11; //3桁目
int led4=10; //4桁目
int val=0;

void setup()
{
pinMode(led1,OUTPUT); //13pin
pinMode(led2,OUTPUT); //12pin
pinMode(led3,OUTPUT); //11pin
pinMode(led4,OUTPUT); //10pin
}

void loop()
{
val=analogRead(sensinput); //2pinのあたいを読む

if(val>204){
digitalWrite(led1,HIGH); //204からHIGH
}
else{
digitalWrite(led1,LOW);  //それ以外は消える
}

if(val>408){
digitalWrite(led2,HIGH); //LED2=408からHIGH
}
else{
digitalWrite(led2,LOW);
}

if(val>612){
digitalWrite(led3,HIGH); //LED3=612からHIGH
}
else{
digitalWrite(led3,LOW);
}

if(val>816){
digitalWrite(led4,HIGH); //LED4=816からHIGH
}
else{
digitalWrite(led4,LOW);
}
}
***************************************************
てな感じです。






ただこれだけのことですが,AUDIO信号を入れるとおもしろいか・・・
コメント (2)

UNO遊び まだまだ

2011年06月29日 | electro_craft
抵抗を探したり,LEDがなかったり結構めんどくさいのですが,,,
交互に点滅する制御



*********************************
//アナログサンプルfading2
//LED*4


int va12=0; //LEDを消灯するための0の変数
int va13=1800; //待ち時間設定のためのコンスタント

void setup()
{
}
void loop()
{
analogWrite(6,va12); //ポート6のLEDを消灯
delay(va13); //時間待ち
analogWrite(6,analogRead(2)/4); //アナログ入力の1/4をポート6にアナログ出力
analogWrite(9,va12); //port9のLEDを消灯
delay(va13); //時間待ち

analogWrite(9,analogRead(2)/4); //アナログ入力の1/4をポート9にアナログ出力
analogWrite(10,va12); //port9のLEDを消灯
delay(va13); //時間待ち

analogWrite(10,analogRead(2)/4); //アナログ入力の1/4をポート10にアナログ出力
analogWrite(11,va12); //ポート11のLEDを消灯
delay(va13); //時間待ち
analogWrite(11,analogRead(2)/4); //アナログ入力の1/4をポート11にアナログ出力
}
*********************************


LEDは,6,10,11,12へ。A3のVRは明るさの調節のようです。

電流制限抵抗も適当なので,きれいさは▲ですが,動作のお勉強として・・・・
コメント

UNOいじりちょっとだけ

2011年06月28日 | electro_craft
引き続いてArduinoのスケッチのお勉強。
アナログ端子によるデジタル端子制御,、なんて書くと偉く難しいようですが,

これをUNOにつなぐだけ。
スケッチも簡単に
**********************************************************
/*
VR-A0による点滅時間の制御
*/

void setup() {
pinMode(13,OUTPUT) ; // 13番ピンをデジタル出力にする
}
void loop() {
int ans ; //ans=analogReadとする
int x ;

ans = analogRead(0) ; // アナログ0番ピンから抵抗値を読込む
x = ans * 3 ; // 抵抗値を2倍にする
digitalWrite(13,HIGH) ; // LED点灯
delay(x) ; // 一旦処理を中断
digitalWrite(13,LOW) ; // LED消灯
delay(x+1000) ; //一旦処理を中断 +1000,+500などデューティー比
}

**********************************************************
これを基本形にいろいろいじるということです。
で,まあ,こんな風にできるんですね。いじっているうちには,何かつかめるでしょう。と,淡い期待!!

http://youtu.be/P9Jk9_XVX44


Arduino側配線


ピコピコの様子

コメント

お勉強の続き Arduino

2011年06月26日 | electro_craft
CQ出版の「Arduinoでちょっと未来を作る」に温度センサーLM35DZを使用したLCD表示の温度計の記事があったので,試してみた。
LM35DZは,1℃が10.0mVで比較的簡単に換算できるデバイスのようだ。
配線は単純そのもの。

動作電圧はデータシートでは,4~20Vとなっていますが,3.3Vでも動きます
あとで師匠たちに教えていただきたいので,動作成功したスケッチも掲げておく。本のままではエラーがたくさん出たのだ。


*********************************
#include<LiquidCrystal.h>

/*LM35DZ 温度計 20110626
アナログデータ温度センサーの値を読み取る。
読み取った値から電圧を求め,温度に換算してLCDモジュールに書き出す。
*/

LiquidCrystal LCD(10,9,8,7,6,5,4);
int ANIN=1; //温度センサ入力用のアナログポート用のアドレス
int indata=0; //
float temp=0;
int wr_data=48;
char wr_da2='A';

void setup() //初期化処理
{
pinMode(11,OUTPUT);
LCD.begin(2,16);
}

void loop() //メイン処理部分
{
indata = analogRead(ANIN); //温度センサの出力を読み取る
temp=5.000*indata/1024*100; // 基準電圧5Vを実数表示(float)の5.000と表示し
//浮動小数点演算を行う。基準電圧×センサ入力(Indata)/1024でVの
//単位で表示される。1℃/0.01Vを100倍して℃表示にする
digitalWrite(11,HIGH); //
LCD.clear(); //またはLCD162.home()を使用。以前の文字が残る時はclear
LCD.print(" indata="); //表示
LCD.print( indata); //
LCD.setCursor(0,1); //
LCD.print(" temp="); //表示
LCD.print( temp); //
LCD.print(" w="); //次のWriteの例の見出し 表示
LCD.write(wr_data); //dataを1バイト分書き出す
LCD.write(' '); //キャラクタースペースを出力
LCD.write(wr_da2); //1文字データを出力
delay(500); //0.5secのウェイト
wr_data++; //++はインクリメントを示し,変数wr_dataを+1する
wr_da2=wr_da2+1; //上記の++はこの式と同じインクリメントを示す
digitalWrite(11,LOW);
delay(500);
}
***********************************

長くてすみません。
Arduinoへの配線は黄色いところ。まずどこが動作しなかったかというと,LCDを認識させるのに,textでは <LCD162.・・・・・・>となっていたのだが,コンパイルするとみなエラー。そこで,昨日の<hello world>同様に,<LCD>だけとした。ヴァージョンアップの影響か?でも,このtext意外とミスプリが多い気がする。
それから数字が5.0000と5.000と二つ出てきたが,これは小数点以下のことだからどっちでもよかった。
あとは,まだ訳が分かっていないが,大文字と小文字の表記の原則について,これから勉強。

RWを昨日は,GNDとしたが,今日はpin9。
スペリングの間違いも結構あったし,つい「;」をつけるのを忘れる。

それから,ここが未解決なんだけれど,
LCD.print(" w="); //
LCD.write(wr_data); //
LCD.write(' '); //
LCD.write(wr_da2); //
の「" w="」は固定文字表示と分かったが,不要な「W=● ●」と出てしまう。ここの書き方がいまいち分からない。書かなくていいのなら書かなくてもいいか?・・・と思い,削除したら。もちろん,消える。ということは,どんな意味がこのスケッチにあるのか?

こんなところかな。
まあ,一応,スケッチをまねして書いて動作試験は成功でした。

arduinoの結線の様子。pinコードは電話線の単線コード

センサー部分。LEDは動作確認用。

pinコードは長めに作っておいて正解でした。

私にはこの<w=・・・>は余分だと思うが,どうして入れているのか分からない。

消してしまえばこの通り,すっきりするが・・・
コメント (1)

LCD動作確認

2011年06月25日 | electro_craft
ただ,LCDをUNOにつないでみただけです。
はじめにHello World。次いで,表示を変える。
Hi I'm AMN_JACK!・・・この辺は以前やってるので,大丈夫。
pinの接触がかなりシビアなので,要注意。それとめがねドライバーで輝度調整したら,表示がおかしくなる。意味不明の文字になってしまう。リセットSWを押して戻す。

このあとはpinアサインをいじってみた。
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* ends to +5V and ground

RS,Eを9,8へ。D4~D7をいろいろ変更して,7~4,3~0など,,,スケッチをかえれば大丈夫なんですね。なんて,基礎中の基礎を確認して,今日はおしまい。


BLUE LCDってこんなに写真撮りづらかったでしたっけね。

デジタルpinやコントロールpinをいろいろいじって遊んでます。

どのデジカメでもちゃんと色が出ない。
コメント

あっぢゅ~~い

2011年06月23日 | electro_craft
連日36度を超してる。本当に暑い。異音を出し始めたepsonTYPE-BEのそばによると,もう汗がだらだら。明日ももっと暑いとか。まだ旋風機も出してないんだヨナァ・・・
で,今日進めたのは,pinコードの半田付けだけ。暑過ぎるので,半田づけももう結構。
夜も眠れない!・・・・でも、今年はエアコン使わないぞ!!
明日はお山で力仕事!

pinは電源部,コントロール部,信号部と分けてみた。若い番号を赤で表示

メスは2連のものを1列pinを抜いて使った。



さて,これで何しようか。またHello worldからかな?

あ~,暑い。
コメント

Blue_LCD_controller

2011年06月22日 | electro_craft
今後すこしArduinoで遊んでみたい。付いては,ブレッドボードもそうだが,LCDも必要になるだろうということで,手軽に使えて少々頑丈なLCD表示器を準備してみた。



LCDは1602タイプのブルーバックライトのもの。以前,LCメータに使って結構きれいだったし,視認性もよかったので,,,,

LCD側はピンヘッダーをつけるのかと思っていたら,多くの作例はピンソケットだった。それに習って,,,

配線はわかりやすいように、部品面を中心に取り付けた。輝度調整用のVRは103としたが,データシートには指定がなかった。たぶん大丈夫だろう。なお,LCD側には100Ωの抵抗をつけている(指定どおり)。

右の五ピンは,アノード端子とカソード端子。基板上で短絡する。ただ,たぶん使わないだろうがLCD安定のためにも取り付けた。

DB0~DB3までは、配線してない。たぶん4ビット(4信号線)でやるだろうから。使いたくなったらつければいい.
ちょっと基盤が大きいので、あとで、はさみでちょん切る。
ピンヘッダとソケットとも2連しかなかったが、かえってピン番号を間違えなくていいか・・・

コメント

Small Inverter

2011年06月21日 | electro_craft
5V入力で650V(無負荷)出力のインバータ冷陰極管セットを手に入れた。冷陰極管は極細1.8mmφ、長さ91mmとすぐにも割れそうなもの。少し乱暴な取り回しでも大丈夫なようにカバーを取り付けた。どれくらいの発熱かはわからない。
インバーター回路も26×13mmと小さいので,小さな箱にでも入れて,USBの電源で光らせようか。本当は,この基盤でJ106を駆動しようとしたが,間違って650Vだった。

冷陰極管と10cmに切った基盤のスペーサー用塩ビパイプ。

これがインバーター。

熱収縮チューブを何枚か重ねて,最終的に動かないようにした。パイプにかぶせるような太い熱収縮チューブがないので,,,,

ま,これで割れないでしょう。ただ,この基盤に1本しか付かない。元々,もう1本はスペアとのこと。

【点灯画像追加】

特に何がというわけではないのですが,点灯させてみました。

このインバータの使途をこれから考える。
コメント (2)

一応カタチに・・J106γ

2011年06月16日 | electro_craft
ヒマをみながら作業を進めてます。
昨日基板作りまで完了したのですが,チップボードに電源pinと信号pinを付けてないことを夢に見まして(笑)・・・朝起きて早速pinを取り付け。信号pinは設計が悪く,Vccのラインがそばを通っていて,ジャンプするしかありませんでした(ドジ!)。
あとは配線と固定だけです。
ところが,GM管をケースに収めようとしたら,古いヒューズのホルダーが出っ張って入らない。やむなく,ハンダメッキ線をぐるぐる巻きにして高圧部を取り付けました。

と,動作試験の様子。いきなり400cpmを超えますね。

ピンクの線が信号線。ジャンパしてます。

アノード部とツェナーダイオード部分の基板。発砲プラに両面テープ止め。



電源部。

LCDはアクリル板を折り曲げて台にして両面テープ。自作折り曲げ機活躍。

LCDを持ち上げたため,ふたを閉めても視認性がいい。
J408と並べて,簡単な校正中。1時間を3回くらいやれば何とか係数が分かるかな。
106のcpmからuSvへの換算係数ってどこかにあるのでしょうかね。何を拾っているかで大分当てにはならないと思いますが,,

以上。完成とします。

コメント (2)

J106γ

2011年06月15日 | electro_craft
J408は快適に作動しているが,もうひとつ26cm級のJ106γを入手したので,制作してみた。
今回は,Arduinoを書き込み機として使用して,チップをBoardから抜き取って,基板に移植するという方法をとってみた。MetaboardもUNOも1つずつしかなく,UNOはともかく,Metaboardはすでに在庫がないと聞く。GMCに使ってしまうともう予備がなくなってしまうからだ。それに,チップ単体なら250円から350円。350円のものはbootloaderが書き込んである。UNOは3000円もする。いちいち買っていては勿体ない。いったんスケッチを描き込めば,USB入出力は必要ない。というケチケチ作戦。

bootloaderの書き込み
これをしないとAVRにはスケッチを書き込めない。いろいろ調べたが,以下のようにすると上手くいった(と,思う?)
【自分のためのメモ】
Arduino UNOによる。
1.UNOにArduinoISPを書き込む。 (ArduinoIDE→examples→ArduinoISP→uproad)
 boardはUNO
2.ブレッドボードにブートローダーを書き込むチップをはめて配線

3.tool→board→UNO(Metaboard)
4.Burn Bootloader→Arduinoas ISP
だめ。失敗。コネクターをよく調べなさいと出る。参考にしたのが,UNOではなくてその前のArduino Duemilanove 328の記事はネットにあるのだけれど,,,,
ここに
http://arduino.cc/en/Tutorial/ArduinoISP
外部クロック付とそうでない配線例があった。

外部発振用のXtalを取り付けて再度書き込み。

この配線で成功。

念のために,UNOのチップを外して,書き込んだチップと交換。
Blinkを試す。

OK!!できました。これでbootloader書き込みなしの生AVRでも利用できる。

【チップの作動状態を試す】
bootloaderは今後使うとして,まえにプログラム書き換えに成功したチップをMetaboardから外して,ブレッドボード上で上手くいくかテスト。(自分の書いた配線図のチェック)

配線図。
SWはおくとして,一応LM78L05を入れておいた。チップ保護のため。

動きましたよ!!理屈では分かっていても,やっぱ動くとほっとしますね。

J408と同じプログラム。このプログラムはPriodの平均値が表示されるので,計測には非常に便利。1時間以上測って計算すると,この辺で0.2uSv/h程度となる。知人の放射線技師に尋ねると,職場でも同じくらいの値とのこと。J408でのことですが,結構正確じゃん!!


【昇圧基板づくり】

この配線図に基づいて進めます。

こんな感じ

後ろのジャンパはブザー配線。

【Arduino基板の作成】
ブレッドボードで確かめたとおりに

基板完成。
いよいよあとは組み込みだ。・・・・今回はお気楽に両面テープで,安上がりに。
コメント

プログラム変更

2011年06月11日 | electro_craft
J106用に新しいスケッチを公開していただいたのだけれど,Metaboardでは動かない。tomonさんたちにいろいろお世話になって,やっと昨夜完成。①10秒ごとのカウント値,②1分のカウント値平均,③積算カウント値の平均を表示できます。

これが初期画面。


J408測定器に移植して測定してみる。左から①②③。

このプログラムをJ106でも使う。

**************************************

何とか,Arduinoのスケッチをクリアできたので,昇圧基板の作成に取りかかった。
といっても,なんにも工夫がなくて先のJ408で使ったものそのままの構成。なにしろ26cmのGMTなので,ケースが大きく小さく作る必要がない。かえって小さいと何とも見窄らしい。余裕を持って作れるのは楽ちん。

ざざっと配線。

昇圧ユニット部分。空間にBZをいれたい。

高圧部分。ケースの壁に貼り付ける。
すいすい,,,,と思ったら,抵抗が1本足りない。たった1本がない。4.7kΩ。抵抗を合成して作ってもいいけど,ま,取り寄せましょう。たった100円ですが,,,足りないと仕事にならない。

で,今日はここまで。
コメント

Uran Glass

2011年06月10日 | electro_craft
紫外線を当てるときれいですね。工芸品でも人気あるわけだ。でも,不純な動機!!  GMCを作るにあたって,BGだけでなくどうしても線源が必要になり,入手しました。



J408で測ると,

【336cpm】紫外線が外れてケースが光っちゃった!!プラスチックや漂白した紙などもよく紫外線で光りますね。

【360cpm】最高でも400はいきませんでした。BGは80cpm程度。
150cpmから360cpm程度ですから均せば250cpm程度となるのでしょうか。
これからもうひとつJ106γを使った大型GMCに取りかかります。
プログラムについて,教わりながら検討中。
コメント

GeigerMullerCounter-3

2011年06月08日 | electro_craft
ついついまたお願いしてしまいました。
大型GM管J106γ。26cm級の大っきいチューブです。J408と同じように,パーツボックスにぴったりなので,大分余裕があるけど,これに入れるようにしました。

問題ははこの仕切り

熱で溶かして切り取ります。最後の仕上げがリュータに●ヤスリを付けて,歯医者さん!!

GM管の方はぴったり収まりました。

あとは,昇圧回路と電源とメタボードとLCDを乗せるだけ。
レイアウトを考えます。

ここまではいいのだけれど,また例によってArduinoのスケッチとピンアサインが分からない!!また,助けてもらわなくては!!Arduinoのお師匠様,よろしくお願いします。

あ,何でGMC-3なのかというと,エレキジャックの特集で作った物をGMC-1と考えたからです。
コメント (2)

Arduinoのお勉強,というかお遊び

2011年06月05日 | electro_craft
Arduinoに早くなれようと,いちばん初歩のBlinkをプログラムをいじってみました。
はじめが,飛行機のマーカーランプのように,チカチカッの繰り返し。次いで,3色のLEDの交互点灯。手持ちのLEDですので,色や明るさバランスの悪さはご容赦。



http://youtu.be/MLLZDHsL3j4

次いで





http://youtu.be/9JjOYlbbwVY

ただそれだけです。あり合わせのLEDです。
つまらないお遊びですみません。
早くスケッチできるようになりたいなぁ
コメント

Metaboard Geiger Counter完成

2011年06月03日 | electro_craft
足踏みしていたLCD付メタボードガイガー,やっと完成しました。

回路や配線に間違いが見つからず,途方に暮れましたが,どうもGM管=J408γのばらつきからこのような現象が起こったようだということになり,最終的に以下の回路で成功しました。この間,GM管提供元であるtomonさんはじめ多くの方々からアドバイスいただき,完成にこぎ着けたこと,ありがたく思います。

変更点は,レギュレータの抵抗を10kから5.6kΩに下げやや供給電圧を上げ,ブザーを電源モジュールの位置に付け替える,配線をできる限り短くする等のことをしました。
なお,電源は100均ショップの携帯充電器を利用としたのですが,5Vはかかるけれど,あまり電流が流れず,最終的に単3アルカリ電池駆動としました。メタボード側には3端子レギュレターが入っているので,大丈夫と判断。
快調に動作しています。

高圧部,ここからブザー信号を取る。ブザーはコンデンサーとしても働き電流が多く流れる。

昇圧部。ほぼ配線図どおりです。


これがArduino互換metaboard。USBとか電源とかいろいろついたままで勿体ないけど,,,,このまま(あとで再利用もできるし)

LCD波40mm以上浮かせて,上蓋すれすれに。ただねじ止め穴が2箇所(このプラスチックに3mmのタップ切ってねじ止め)なので,少々曲がったかな?電池ボックスは単3*4。

ふたを開けた方がやはり鮮明に見えるが,,

ブザーは左隅に両面テープで,,一応黒いテープ使ってるですよ(つまらないこだわり!!)。

一応動作ですが,バックグラウンド(我が家の室内)で80cpm程度,野外に出ると100~500cpmくらいにあがります。uSvへの換算値が分かればいいのですが,,(機器によって違うらしい)

あとはお化粧して本当に完成です。
22cmクラスのGM管なので,大きなお弁当箱みたいです。
以下スペック

diameter: 23mm
Length: 220mm
Case Material: Glass
Maximum starting voltage: 350V
minimum floor area: 80V
minimum plateau slope : 10%
recommended operating voltage: 420V
γ sensitivity of 380 (60Co) (cps / uR / s)
Dead Time: 150 (us)
background: 110cpm
work temp range: -40 ~ +50
detect objects: γ


提供いただいた「ちっちゃいものくらぶ」はこちらです。
http://tiisai.dip.jp/?p=766




コメント (5)