• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

たかパパ(・∀・)のブログ一覧

2020年11月21日 イイね!

お勉強⑦

お勉強⑦更新が1週間遅くなりました(´・ω・)
サボっていた訳ではありません!

忙しかったのと、
MOSFETの使い方が分からず悶絶しておりました(*ノωノ)

だって、電気苦手ですもんw







①表示器への文字表示テスト ※完了 ←未完了 ←一先ず完了扱いにします
②画面構成設計 ※完了
③スイッチによる固定画面の切り替え ※完了
④可変部の数値表示 ※完了
⑤アナログスケーリング設定と、現在温度、状態表示 ※完了
⑥閾値設定による、ファンコントロール用ON/OFFフラグ作成
 ↑ ※ 実装はまだですが完了としておきます。
⑦PWMテスト回路を使ってLED調光制御 ←今回はここの続き

以下計画変更
⑧MOSFETを使ったファン駆動と速度制御
⑨CANコントローラー、またはトランシーバーを使った通信制御
⑩汎用リモートI/Oモジュール製作
⑪設定値の不揮発化
⑫実機組み込み




少し先が見え始めて飽きてきました(´・ω・`)
頭の中で完成してしまうと満足してしまう様です。
心が折れる前に実装まで完了できる様に、手早く進めることを心掛けます!



さて本題です。
前回はPWM機能を使ってLEDの調光制御をテストしました。
今回はLEDの代わりにトランジスタとMOSFETを使い、TTLより大きい電圧と電流を制御できるようにします。
回路には下記の物を使用しました。


Pch MOSFET 2SJ334
NPNトランジスタ KSC1815YTA

alt


簡単に説明すると、このMOSFETで60V 30Aまで制御できます。
トランジスタはMOSFETの駆動用に使います。
web上の先生方やメーカーのデータシートを読むと「4V駆動」と書かれているので、PICから直接制御が可能だとは思うのですが、どうも上手くいきません。

配線を組み替えながら試行錯誤した結果、下図の回路で落ち着きました。


alt



PchのMOSFETを選んだ理由は、FD3Sのファンコントロールが電源側でON/OFF制御する回路になっていたからです。
ソレノイド類は逆に電源側が共通コモンになっているので、NchまたはNPNトランジスタでの制御が良さそうです。

※記事を書きながら、Nchでも良かったかなー(´Д`) とか思っています。



で、なかなか奥が深いです。
最初はテストのため、Q1のゲート(上図pin1)に直接、抵抗無しで12Vを印加してD1をOFF、ゲートとGNDを短絡してONして遊びました。

ふむふむ、リレーの様に使えますね。

ですが、5Vを印加してもD1がOFFしません。
多分、根本的に理解できていないのが問題ですw
一先ずはトランジスタを用いてゲート電圧を制御する事にしました。



次にQ2をPICで駆動する事を考えます。
PICの出力は25mAが限界です。
alt


Q1をOFFするために、ゲートプルアップ抵抗を1kΩにしています。
※理由は後で説明します。

よって、Q2のコレクタに入ってくる「コレクタ電流 Ic」は、オームの法則より 12mA です。
Q2の直流電流増幅率 hFEは120倍ですので、12mA ÷ 120 = 0.1mA
倍率の低下を考慮して 0.1mA x 3倍 = 0.3mA
をベースに流し込みことにします。
Q2のベース-エミッタ飽和電圧 Vbe が1Vですので、R2 は  ( 5V - 1V ) ÷ 0.0003A = 13.3kΩ
手持ちの抵抗で丁度良いのが無いので 10kΩ としました。

R3はR2と同じ物を取り付けました。
コレクタ遮断電流 ICBO(漏れ電流)が 0.1μA ですので、0.1 x 120 = 12μA をベースに流さない様ベースを通ってPICに流れない様にします。




上記は半分覚書ですw
長文申し訳ございませんm(__)m

結果としてはこんな感じです。

PWM 10%
alt

PWM 50%
alt

PWM 100%
alt



ところで、R1を1kΩとした理由について説明します。

初めは10kΩとか、本当に考えもなしに適当に取り付けてテストした際、PWMをどうこうしようが常にONしたままとなりました。
何の気なしに1kΩの抵抗を取り付けたところ、それっぽくLEDが調光できたので、波形を測定してみました。

R1 1kΩ
alt


PICのPWM出力波形と比較し、若干パルス幅が伸びています。
実際、テスターで測定した結果、期待値よりすこし高めの電圧となりました。

2.2kΩ (だったと思う)
alt


波形がさらに伸びました。


100Ω
alt


逆に幅が狭くなり、精度が向上しました。

が、1/4W抵抗を使っていたため、抵抗がメチャクチャ熱くなりました。

なるほど、電源と放熱に余裕さえあれば、抵抗値を下げると波形の精度が良くなると言う訳ですね。

手持ちの抵抗と発熱のしかたを素手で確認したところ、1kΩがちょうどよかったという、計算を行わない少々強引な方法で得た値でした(;´∀`)

Posted at 2020/11/22 13:51:23 | コメント(1) | トラックバック(0) | お勉強 | 日記
2020年11月08日 イイね!

お勉強⑥

お勉強⑥最近めっきりと寒くなってきましたねー(´Д`)
仕事の疲れもあってか、青空メカニックは休業中。
週末になると秋月電子様へ足を運ぶのが習慣になっていますw

抵抗やコンデンサなどの種類が豊富な物って、必要な時に必要な値の物を持っていないと困りますよね。
秋月電子様、千石電商様、マルツ様など、家から1時間圏内なので助かります。





①表示器への文字表示テスト ※完了 ←未完了
②画面構成設計 ※完了
③スイッチによる固定画面の切り替え ※完了
④可変部の数値表示 ※完了
⑤アナログスケーリング設定と、現在温度、状態表示 ※完了
⑥閾値設定による、ファンコントロール用ON/OFFフラグ作成
 ↑ ※ 実装はまだですが完了としておきます。
⑦PWM回路テストを使ってLED調光制御 ←今回はここ
⑧ファンスピードコントロール用PWM回路作成
⑨MOSFETを使ったファン駆動
⑩PIC16FからPIC32またはdsPICへの移植 ※追加
⑪表示器への文字表示 ※追加
⑫設定値の不揮発化
⑬CANトランシーバーを使った、⑦⑧⑨の通信制御
⑭実機組み込み




PIC16F1938ではOLEDの表示制御が出来るのに、なぜかPIC18F26K80では上手くいかず、その原因が全く分からないで困っています。('A`)

色々テストしていますが、SSPBUFに直接入力すると表示できるものが、なぜか関数で引数の直接渡し、ポインタ渡し、参照渡しどれもダメ。
まったく表示が出来ない場合もあり、お手上げ状態でした。

PIC18F26K80にはCANモジュールが搭載されているのでなんとか使いたいのですが、ダメなら他のPICでも良いので移植を検討しています。

でも、一先ずもう少し踏み込んで原因究明しようとは思います。









と言う訳で、会社から借りてきました!

alt

デジタルオシロ!
20万前後のそこそこの物です。


まずはPIC16F1938で、ちゃんと表示が出来ているI2CのSDAとSCLをモニターします。


alt


alt

上がSDA、下がSCLです。
ちょっと見にくいですが、クロックの周期は約10μs、100kHz(1/0.000010)、狙い通りです。


次にPIC18F26K80の確認。


alt
alt

なぜかパルス幅が50μs、周期にすらなっていないw


ちょっと検討しながらプログラムを修正し、I2Cの設定を関数から取り出してメインルーチンに直接記述しただけで、

alt


なぜ(´Д`)

しかし、まともに文字が表示できないorz




ここで時間を費やすのも勿体ないので、一旦PWMの勉強に移ります。

PIC16Fでは、使用するピンのCCPを有効にし、PWM Period(周期)とPWM Width(パル
ス幅)を設定し、使用するタイマーを起動すればPWM出力が開始されます。
内蔵周波数を32MHzに設定している場合、周期は次の計算式で求まります。

(PRx + 1 ) * 4 * TOSC * Prescale
※PR2を249、TOSCは 1/FOSC なので 1/32000000 、Prescaleを1:1とし
(249 + 1) * 4 * (1 / 32000000) * 1 = 31.25μs

alt



パルス幅を25(周期 31.25μs = 250 なので 10%)に設定しているので

alt



ほぼプログラム通りの結果となりました。

LEDの明るさはこんな感じ。

alt


次は50%

altalt




75%、100%も確認し、問題なさそう(´∀`)

でもちょっと周期が早すぎると思うのでプリスケーラを1:64に変更し、周期を2msにしました。



alt


できた!(´∀`)
Posted at 2020/11/09 00:03:18 | コメント(0) | トラックバック(0) | お勉強 | 日記
2020年11月01日 イイね!

お勉強⑤

お勉強⑤最近、週末が半分楽しみ、半分拷問のような状況に陥っています(´・ω・)
上手く進めている時は良いのですが、一旦つまずくとドツボにはまり、PCを前にして睡魔に襲われますw



そして、今はハマりまくって眠くなりまくっています(´Д`)







①表示器への文字表示テスト ※完了 ←未完了
②画面構成設計 ※完了
③スイッチによる固定画面の切り替え ※完了
④可変部の数値表示 ←今回はここ
⑤アナログスケーリング設定と、現在温度、状態表示 ←ここも
⑥閾値設定による、ファンコントロール用ON/OFFフラグ作成
 ↑ ※ 現在温度表示が終われば終わったも同然
⑦PWM回路テストを使ってLED調光制御
⑧ファンスピードコントロール用PWM回路作成
⑨MOSFETを使ったファン駆動
⑩設定値の不揮発化
⑪CANトランシーバーを使った、⑦⑧⑨の通信制御
⑫実機組み込み






ちょっと悩みましたが、固定部の表示が出来たので基本的にはその応用です。
まずは固定値を表示します。
文字列の長さを考えて、表示したいDDRAMのアドレスを入れて・・・




alt




できた(´∀`)









次は現在温度の表示。



少し勘違いしていました。
普段仕事で扱う温度入力は、温度調節器からの4-20mAが主だったもので、スケーリングすればオッケー(σ・∀・)σ



と、思っていましたが、アナログ値から電圧→抵抗値→温度と計算する必要がある事を知りました。


今回は「高耐熱(250℃)アキシャルサーミスタ200kΩ」(秋月電子で購入)を使います。

alt


計算式は、web上の先生方に聞いてくださいw






計算で得た値(温度)、実数値を整数部と小数部に分けて「.」を付けて・・・

alt











ふと思いつきで、PIC16F1938とOLEDの組合せで表示をさせてみて・・・












alt


できた(´∀`)
Posted at 2020/11/01 22:59:23 | コメント(0) | トラックバック(0) | お勉強 | 日記
2020年10月25日 イイね!

お勉強④

お勉強④続きです!


やっとの思いで、思い通りの文字を表示できるようになりました!(´∀`)

これでやっと先に進めます。






①表示器への文字表示テスト ※完了
②画面構成設計 ←やっとここ
③スイッチによる固定画面の切り替え ←ここも
④可変部の数値表示
⑤アナログスケーリング設定と、現在温度、状態表示
⑥閾値設定による、ファンコントロール用ON/OFFフラグ作成
⑦PWM回路テストを使ってLED調光制御
⑧ファンスピードコントロール用PWM回路作成
⑨MOSFETを使ったファン駆動
⑩設定値の不揮発化
⑪CANトランシーバーを使った、⑦⑧⑨の通信制御
⑫実機組み込み



文字表示が出来たので、本腰入れて画面構成を考えていきます。
必要な機能は・・・

・現在温度表示
・ファンDuty比
・ファン起動、停止しきい値
・温度スケーリング設定
・他

画面切り替えは押し釦とし、大分類はモニター、設定、工場設定の3項目とします。
分類切り替えは上下ボタン、分類内の項目切り替えは左右ボタンとします。

画面イメージはこんな感じ。
alt


図ではDDRAMをフルに活用しようと考えていますが、実際は左半分のみ使用。
固定画面は番号制で、モニター、設定、工場設定で10番飛ばし、表示したい画面番号を指定して表示させます。



1) 起動処理 3.5sec  電源安定など待機
alt
※ディスプレイ下のトグルスイッチは、左から
 上、下、左、右 ボタン


2) 起動後初期画面 画面No10 モニター1
alt

※℃の゜が抜けていますが、後から追加しました。


3) 画面No11 モニター2 I/O表示
alt

※画面No10から右ボタンで表示 画面番号を+1している。


4) 画面No20 しきい値 ファンON温度設定
alt

※℃が抜けていますが、後から追加しました。


5) 画面No21 しきい値 ファンOFF温度設定
alt

※℃が抜けていますが、後から追加しました。


6) 画面No30 AD値スケーリング Low
alt



7) 画面No31 AD値スケーリング Hi
alt

※6と7項で、スケーリングの傾きを決定します。




こんなもんかな(´Д`)
トグルスイッチの処理とか、結構大変です。
画面番号の加算処理などは、スイッチを押しているごく短い時間の内に加算され過ぎないように、スイッチ入力はパルス化するなどの工夫をしました(`・ω・´)
Posted at 2020/10/25 22:57:19 | コメント(1) | トラックバック(0) | お勉強 | 日記
2020年10月25日 イイね!

お勉強③

お勉強③お勉強の続きです!


タイトル画像の通り、なんだか変なのが表示されました。
プログラムは「I2C」と表示するだけのものですが、見事に文字化けしていますorz
このあと、いろんな文字列をテストするも、全て希望する文字になりません。




web上の先生方はこう言った不具合を、実例を挙げて紹介している記事がほとんど見当たりません。(検索のやり方が悪いのか?)
そういうところがノウハウだったり、マイコンのハードルを上げている部分なのでしょう。
これでは裾野が広がりませんね。

俄然、ヤル気が出てきました。
恥ずかしい失敗も、無知な頭脳も惜しみなく公開していきます!
具体的な解決方法は公開しませんが、努力している人なら分かる程度に、ふわっと書こうとは思います。

車のトラブルもそうですが













逆境って燃えるよね(`・ω・´)













さて、I2Cは
①使用するSCL、SDAピンを入力に設定する。
②通信クロックを設定する。

基本これだけ準備して、マスター側は送信するデータをSSPBUFに

③相手先アドレスを入れる。
④この表示器の場合、コマンド「0x00」やDDRAM「0x40」(説明書では0x40が2行目先頭となっていますが、7bit目をONする必要があるので、実際に転送するデータは0x80+0x40)などを入れる。
⑤8bitのキャラクターパターンなどを入れる。

要はお膳立て後、SSPBUFというアドレスに何か入れると、そのキャラクタが送信されるということです。



必要最低限度のプログラムで試した結果、

alt



できた(´∀`)






しかし、プログラムを関数化し、文字を引数として渡すと全然ダメ。

さんざん悩んで、プログラムが要因ではないのでは・・・と考えて、別の構成でも試すことにしました。







じゃーん(´∀`)

alt


web上の先生を見習って、
PIC16F1938、AQM1602を追加してみました!(`・ω・´)

中央右側の液晶ディスプレイがそれですが、やはり先生方と同じプログラムでは作動せず、プログラムの途中にディレイタイマーを入れるなどして、やっと表示にこぎつけました。


alt



どやぁ( ゚Д゚)

Posted at 2020/10/25 21:29:25 | コメント(0) | トラックバック(0) | お勉強 | 日記

プロフィール

「しょ、初爆した!ヽ(;▽;)ノ」
何シテル?   04/23 11:26
電機系エンジニアをしていますが、電子もPCも機械もインフラ系も片っ端から身に付けるべく絶賛奮闘中! 生涯現役を目指します。 FD3S を長らく保有していま...
みんカラ新規会員登録

ユーザー内検索

<< 2025/8 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

リンク・クリップ

ユーザー車検① 
カテゴリ:その他(カテゴリ未設定)
2024/06/10 13:41:25
エンジン降ろし(FD3S) 
カテゴリ:その他(カテゴリ未設定)
2024/05/21 05:25:35
インジェクター調達、清掃、点検 (FD3S Ⅰ型) 
カテゴリ:その他(カテゴリ未設定)
2022/04/11 18:38:01

愛車一覧

マツダ RX-7 マツダ RX-7
エンジンオーバーホールが完了して2.2万kmを突破しました。 最近、2000〜3000r ...

過去のブログ

2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
2021年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2019年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation