SSブログ
電子工作 ブログトップ
前の10件 | -

コテ先温度センサを購入した [電子工作]

(2018.11.06)
半田付け支援装置にコテ先温度計測機能を組み込もうとしています。試作用にコテ先温度センサを購入することにしました。

コテ先温度計用のセンサ(K型熱電対)は、白光と太洋電機産業から販売されています。値段的にはほぼ同じですが、白光は3端子10個入り、太洋電機産業は2端子3個入りです。

候補その1
https://www.yodobashi.com/product/100000001001987524/?gad1=&gad2=g&gad3=&gad4=56278881131&gad5=10663992019704986258&gad6=1o1&gclid=EAIaIQobChMIioL6mYm_3gIVyLWWCh1KSgDMEAQYASABEgKnQPD_BwE&xfr=pla

候補その2
https://www.yodobashi.com/product/100000001001987527/?gad1=&gad2=g&gad3=&gad4=56278881131&gad5=8837589895970450272&gad6=1o3&gclid=EAIaIQobChMIlt2-loe_3gIVSqaWCh0IHwtlEAYYAyABEgJCsPD_BwE&xfr=pla

機械的に強そうで配置も楽な太洋電機産業の方を購入することにしました。
送料込みの値段で比較すると、ヨドバシ.comが一番安かったので早速注文しました。

最近は試作段階からプリント基板化することが多くなっています。
基板上にセンサを直接取り付ける方式で設計を進めようと思います。

nice!(1)  コメント(0) 
共通テーマ:日記・雑感

LCDKeypadのスイッチ操作がおかしくなった [電子工作]

(2018.09.13)

一週間ほど前に、LCDKeypadのスイッチ操作が動いたという報告をしましたが、2、3日前から動作がおかしくなってしまいました。何も押していないのにSELECTと表示されたり、LEFTと表示するべきところでNONEと表示します。

ちゃんと動いていたときはこんな感じ(↓)だったのですが・・・
https://broadbeans.blog.so-net.ne.jp/2018-09-05

スイッチを操作したときのADC計測値を比較してみました。

       09/05   09/13
NOKEY_LVL = 1023 ==> 370     ;
SELKEY_LVL = 450 ==> 970
DOWNKEY_LVL = 400 ==> 190
UPKEY_LVL = 320 ==> 250
RIGHTKEY_LVL = 64 ==> 80
LEFTKEY_LVL = 32 ==>  740

Arduinoのライブラリではどうなっているのか?調べて見ました。
#define KEYPAD_TRESHOLD_NONE 1000
#define KEYPAD_TRESHOLD_SELECT 790
#define KEYPAD_TRESHOLD_LEFT 555
#define KEYPAD_TRESHOLD_DOWN 380
#define KEYPAD_TRESHOLD_UP 195
#define KEYPAD_TRESHOLD_RIGHT 50

ライブラリの値は閾値なので意味合いが少し異なります。しかし大小関係は同じになる筈です。ところが09/05時点でLEFTKEY_LVLが最小(=32)となっている(<==これで安定していた)のが既におかしかったようです。そして今は、操作したキーの大小関係は良いのですが、何も操作していないときの値がおかしなことになっています。さらに困ったことに、LCDと基板との隙間に息を吹き込むと値が大きく変化するのです。上に示した09/13の計測値は、最も良さそうな状態になった所で計測したものです。隙間に息を吹き込むと(多分)値は変化してしまいます。

半田付け不良(ブリッジorショート)が疑われますが、LCDの下に隠れていて調べられません。orz

安さにつられて買ったのですが、すごく心証が悪くなりました。
価格は二倍になりますが、やはりこちら(↓)を選ぶべきだったのでしょうか?
http://akizukidenshi.com/catalog/g/gM-07029/

あるいは、こんなものと割り切って使える範囲で使うことにするか?

やっぱり、隙間に息を吹き込むと変化してしまうというのでは駄目だなぁ~
もう一つあるので、そちらの様子で使い続けるかどうか、決めようと思います。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー






nice!(1)  コメント(0) 
共通テーマ:日記・雑感

DS18B20を繋いでみた [電子工作]

(2018.09.10)

PIC16F1829にLCDKeypadと1Wireの温度センサ(DS18B20)を繋いでみました。
https://www.maximintegrated.com/jp/products/sensors/DS18B20.html

プログラムはArduino用のライブラリ(↓これです)をPIC用に書き換えたものを使いました。
https://github.com/PaulStoffregen/OneWire

2018_0910_1.png温度センサ2回路の接続

CGRAMにオリジナルの記号(℃)を作ったのは初めてですが、なかなか良い感じです。
CGRAMアドレス0x00に以下のパターン(↓)を登録しました。
**       18
**       18
  **     06
 *  *    09
 *       08
 *  *    09
  **     06
         00

℃記号を作成するプログラムはこんな感じです
void lcd_create_deg(void)
{
    lcd_command( 0x40  );
    lcd_data( 0x18 );
    lcd_data( 0x18 );
    lcd_data( 0x06 );
    lcd_data( 0x09 );
    lcd_data( 0x08 );
    lcd_data( 0x09 );
    lcd_data( 0x06 );
    lcd_data( 0x00 );
}

さらにI2C接続のADコンバータとK型熱電対を接続し、AC100Vの電力制御回路を組み込んで、半田こて2個を制御できる、半田付け支援装置に仕上げる計画です。

準備は着々と進んでいます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー






nice!(1)  コメント(0) 
共通テーマ:日記・雑感

PICにAruduino用シールドを接続した [電子工作]

(2018.09.05)

PICでAruduino用シールド(LCDKeypad)を動かすことが出来ました。
パチパチパチ~

嬉しかったので動画(↓)を撮影してしまいました。
2018_0905_1.png
動画へのリンクはこちら
https://youtu.be/lOXfCkIrFdg

Aruduino用シールドは安い(↓)ので、利用しない手はありません。
2018_0905_2.png
リンクはこちら

殆ど技術資料がないので困りましたが、ここ(↓)に置かれたライブラリを見つけて、開発することが出来ました。
https://github.com/arduino-libraries/LiquidCrystal

¥500足らずでLCDと操作キーが手に入るなんて夢のようです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー






nice!(1)  コメント(0) 
共通テーマ:日記・雑感

同じ間違いを(また)繰り返した [電子工作]

(2018.08.30)

PIC16F1829を使ってPICの開発を行っています。少し複雑なプログラムですが、少しづつ前進しています。そんな中、デバッグ作業で以前にやらかした間違いをまた繰り返してしまいました。orz

プログラムの動作を追いかけるため、スナップ・ダンプを取ろうとしたところ、それまで問題無く動いていた機能が動かなくなりました。リセットすると回復するので、プログラム・コードの問題では無さそうなのですが・・・

PIC16F1829はデータ・メモリを1024バイト(プログラム・メモリは8192バイト)搭載しています。
2018_0830_2.pngPIC16F1829のデータ・メモリ

そのデータ・メモリは複数のバンク・メモリ(128バイト単位)で構成されていて、データ・メモリ(1024バイト)と言うのはGeneral Purpose RAM(1008バイト)とCommon RAM(16バイト)の合計です。
2018_0830_1.pngPICのバンク・メモリ構成

スナップ・ダンプを取るため、以下のデバッグ・バッファを設けました。承知して居るはずなのについやらかしてしまいました。

unsigned char debug_buff[16] @0x200; <==これが問題悪化の元凶

頭の中にあったのは、『データ・メモリの前半26%まで使っているから50%相当の場所にバッファを割り当てよう』というものでした。

そして、スナップ・ダンプ(事後解析用にデータをバッファに書き出す)を取りながら、不具合を抱えた処理を実行してみると、何か様子が変です。以前より動作がおかしくなっています。

何が何だか判らなくなってしまいました。

こんな時、慌ててプログラム・コードをいじり回しても良い結果が得られ無いことは承知しています。不具合に遭遇するのは慣れているのです。(^_^;)<==変に自慢げな奴

作業を中断して、頭を冷やすことにしました。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
(数時間後)
あっ!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー

バンク・メモリの前半にコア・レジスタが配置されていることを思い出しました。重要機能を司るレジスタ群をスナップ・ダンプで書き換えていたのです。

2018_0830_3.png0x200のレジスタ割り当て

そして、一緒に思い出しました。
『これ、前にもやったことある』と前回も思ったことを・・・
この誤りを繰り返すこと(多分)三度目です。(<==無駄に経験を積み重ねる奴)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
管理人が気になっている広告です。





nice!(1)  コメント(0) 
共通テーマ:日記・雑感

Microchipが売り出した格安のデバッガを見つけた [電子工作]

(2018.08.26)

MPLAB-X 5.05で数種類のデバイスをシミュレーションしていた時、Hardware ToolsのメニューにSnapという項目が追加されていることに気づきました。
2018_9826_1.pngSnapってなんだ?

こんな動画”Unboxing the New MPLAB[レジスタードトレードマーク] Snap Debugger”(↓)が見つかりました
https://www.youtube.com/watch?v=9apkQXDsL38

概要はこんな(↓)感じです。
http://microchipdeveloper.com/snap:start

「an ultra-low priced debugging solution」と謳っています。売価$15程なので純正デバッガとしては格安です。

「it supports many of Microchip’s newer MCU offerings but not some legacy products.」
古いデバイスの書き込みに必要な電圧を発生させる回路を省略したらしく、新しいデバイスだけがサポート対象という、かなり割り切った決断を下しています。

説明資料はこれ(↓)です。
http://www.microchip.com/developmenttools/ProductDetails/PartNO/PG164100

「必要ならケースは3Dプリンタで自作する」っていうのも今時は有りなのかもしれません。(格安デバッガですから)

ただ、古い人間としてはMicrochipから絶縁状を突きつけられているような気もします。新しいデバイスの殆どが0.5mmピッチのTQFPパッケージに移行していて、それに対応出来なければ取り残されてしまうのですから・・・

書き込み電圧発生回路をオプションで付けられるようになると嬉しいんだけどなぁ~
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー



こちら(↓)は管理人もお世話になっています。



nice!(1)  コメント(0) 
共通テーマ:日記・雑感

シミュレータでPIC24を動かして見た [電子工作]

(2018.08.22)

SRAMの大きなPIC16(PIC16F18857の4kバイトが最大らしい)を探していたところ、それならPIC24にした方が良いとアドバイスを頂きました。

調べてみるとPIC24FJ256GA702のSRAMは16kバイトもあり十分な大きさです。しかし、PIC24を使った経験が少ないことが気がかりです。お試しで触って見たいけど秋月電子では扱っていないし・・・そんな時、助けになるのがMPLAB-X IDEのデバイス・シミュレータです。

プロジェクトのpropaties==>Hardware ToolでSimlatorを選択するだけでシミュレータを利用できます。
2018_0822_1.pngSimulatorを選択する

メニュー・バーを見るとコンパイルやデバッグだけで無く、MCCを使ったシステム構築も出来ることが判ります。
2018_0822_2.pngシミュレータ使用時のメニュー

TMR1を使って、割り込み機能を確認しました。

2018_0822_3.pngTMR1割り込みのシミュレーション

AIVT(Alternate Interrupt Vector Table)を確かめたかったのですが、INTCON2のAIVTENビットを操作しても、__AltT1Interruptには来ませんでした。(残念)
デバイスをPIC24FJ64GA002に替えると__AltT1Interruptが呼び出されました。(固定アドレスなのでPIC24FJ256GA702よりシミュレートが楽)

デバイスの機能を全てシミュレートしていることを求めるのは酷だと思います。(只で使っているシミュレータなんだし・・・)
割り込みハンドラのレジスタ退避等、知りたかったことが確認できたのは大きな収穫でした。

これでLチカのシミュレーションが出来たら、もっと受けるんじゃないかなぁ~
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
アフィリエイト始めました(^_^;)
管理人が興味を持った広告を紹介します



nice!(1)  コメント(0) 
共通テーマ:日記・雑感

PIC24のコンパイルで悩んだ [電子工作]

(2018.08.15)

PICプログラム開発にはMicrochip社が無償で提供しているCコンパイラを使います。PIC16ならxc8コンパイラ、PIC24ならxc16コンパイラです。同じ会社が提供する似た名前のコンパイラなのですが、違いが色々あって戸惑います。(聞いた話では開発した事業部が違うらしい)

xc8コンパイラでは、SRAM(データを格納する)やFlash Memory(プログラム・コードを格納する)の使用範囲をRAM ranges propertyとROM ranges propertyで指定していました。これと同じことをxc16コンパイラでやりたいのですが・・・

CodeGuard categoryにそれらしいpropertyを見つけました。しかし設定がsmall,medium,largeの三択で期待していたものとは違うようです。(<==使い方が判らない)

あれこれ調べて、CONFIGURATION REGISTERのFBSMLIMを使えば目的とする(Boot プログラムの後ろにユーザ・プログラムを配置する)機能を実現できることが判りました。

残るRAM ranges相当の機能は、どうやれば実現するのか?

(暫し悩む)>(あれこれ調べる) >(暫し悩む) >> ん!
無理矢理ですが、『ユーザ・プログラムにはこれ(↓)を付けてコンパイルしてもらう』という方法にたどり着きました。
int boot_area[0x400] __attribute__((noload,unused,address(0x800)));

noload==>実行時に初期化しない
unused==>使用していなくても領域を確保する
address(0x800)==>SRAMの先頭に配置する

Bootプログラムの方にはこれ(↓)を付けてコンパイルします。
asm (".section my_stack, stack address(0x0f00)");
asm (".space 0x100");
int user_area[0x1c00] __attribute__((noload,unused,address(0x1000)));

Bootプログラムで自由に使える範囲を0x800~0x0effに制限します。

パチパチパチ~
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
正しい方法が判ったらあとで書き足すことにして、今はこの方法で先に進みます。
(<==結果オーライな奴)


nice!(1)  コメント(0) 
共通テーマ:日記・雑感

秋月電子は28pinのPIC16F18857も扱っていた [電子工作]

(2018.08.14)
秋月電子が28pinのPIC16F18857(↓)を扱っていることを教えて頂きました。
http://akizukidenshi.com/catalog/g/gI-11888/
どうやら、探し損ねていたようです。(^_^;)

また、PIC24FJ***GA702(<==28pin)ならSRAMを16kB搭載しているという情報も頂きました。(<==感謝)

調べてみると、PICのモデルごとに最大SRAM容量が分かれていました。Microchip社の主張が透けて見えるようです。

SRAM容量
4kbytes ==> PIC16F18857
8kbytes ==> PIC18F27K42
16kbytes ==> PIC24FJ256GA702
64kbytes ==> PIC32MX170F256B

上位モデルはPIC24FJ256GA702で行こう!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
管理人もお世話になっています(↓)









nice!(2)  コメント(0) 
共通テーマ:日記・雑感

秋月電子でこんなのを見つけた [電子工作]

(2018.08.13)
PIC16でSRAMが大きいのを探していて、これ(↓)を見つけました。SRAMを4096バイト搭載しています。
https://www.microchip.com/wwwproducts/en/PIC16F18857

秋月電子が扱っているかどうか調べたら、PIC16F18877(<==残念ながら40pin)を扱っていました。
I-11901.JPGPIC16F18877

http://akizukidenshi.com/catalog/g/gI-11901/

40pinのPICで値段はなんと¥190(<==安い)!
値付けを間違えたんじゃないか?と思うほどです。

28pinで無いのが惜しい。orz

nice!(1)  コメント(0) 
共通テーマ:日記・雑感
前の10件 | - 電子工作 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。