忍者ブログ

あやの

NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/

2025/01    12« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  »02
ゲート抵抗入れないと、ATtiny85の出力ピンとFETの関係は初期状態は以下の図の様に
FETは容量成分と等価になります。
この状態でV1の電圧を短い時間で立ち上げると、交流的にはC1はショート状態なので、
過大な電流が流れます。
ので、ゲート抵抗の1つの考えとして、マイコンのIoが定格電流を超えない様な値に設定します。


ATtiny85のデータシートの抜粋。
VoHの時、Io=10mAなので、Rg=5V/10mA=500Ω。
今回は、10mAも流したら、あれかなと思って、半分の5mAとしてRg=1kΩにしました。

FDC6561に近いデバイスでシミュレーション。
Rg=0Ω。2A近く流れています。


Rg=500Ω


Rg=1kΩ


実波形とほぼ同じ様な再現性があることが確認できたので、良しとします。



拍手[0回]

PR
今日はSmileFunctionDecoder用スケッチを2種類作成。

1、電車の先頭車両用のスケッチです。
F1,F2 は自由にON/OFFができます。
F0はヘッドライト/テールライトのON/OFF
前進か後進で、O2,O4を自動で切り替えます。
また、ヘッドライトは停止時薄暗く、走行時は明るくなる処理が入っています。

https://github.com/ayanosuke/FunctionDecoder2_light


2、電車の先頭車両用のスケッチです。

F1,F2 は自由にON/OFFができます。
F0はヘッドライト/テールライトのON/OFF
前進か後進で、O2,O4を自動で切り替えます。
また、ライトは速度に比例して調光します。
停止時薄暗く、最高速度で明るい

https://github.com/ayanosuke/FunctionDecoder2_pwm_light



SmileFunctionDecoderの紹介のページ
http://dcc.client.jp/FunctionDecoderVer2.html

拍手[0回]

ATtiny85のPWM周りのおさらい(^^
twaydcc さん情報ありがとうございます。

以下のソースファイルの抜粋は、前進か後進かで、PWM出力するポートを
O2かO4に切り替えるスケッチです。
CS10レジスタを1〜15の設定、1分周〜16384分周まで設定できるので、
遅い点滅も出来ますね。

if( gDirection == 0){
// PB1:O2:6pin PWM 出力 , PB4:O4:3pin LOW出力

 //      OCR1B無効   OCR1B未使用 
GTCCR = 0; 

digitalWrite(O4, LOW); // PB4:O4:3pin LOW出力

 //               OCR1A有効   high出力          分周無し 
TCCR1 = 1<<PWM1A | 2<<COM1A0 | 1<<CS10; 

// analogWrite(F3, aPwmRef); // analogWriteは使えない 
OCR1A = aPwmRef;               // 0〜255 

} else {
// PB1:O2:6pin LOW出力  , PB4:O4:3pin PWM 出力

//               OCR1A無効   OCR1A未使用  分周無し 
TCCR1 = 1<<CS10; 

digitalWrite(O2, LOW); // PB1:O2:6pin LOW出力

//                OCR1B有効     high出力 
GTCCR = 1 << PWM1B | 2 << COM1B0; 

analogWrite(F1, aPwmRef); // 0〜255 
// OCR1B = aPwmRef;         // この設定もできる 

}

ということは、ATtiny85 でも、モータースケッチ作れますね!
 
【6/18追記】
arduinoのwiring_analog.cのソース内に
#if defined(TCCR1A) && defined(COM1A1)
 case TIMER1A:
 // connect pwm to pin on timer 1, channel A
 sbi(TCCR1A, COM1A1);
 OCR1A = val; // set pwm duty
 break;
#endif

なんか、設定すれば使えるようになるのかな。


拍手[1回]

最近導入した DS1054を4chフルに使ってファンクション出力O1〜O4を観測。

NmraDccのライブラリは、Timer0 を使っているんですね。
要領悪くてpwm周りの設定に理解苦しみます(^^;
OC1B で 3pin PB4のPWMが制御できるのはわかりましたが、OC1Aがウンとも・・・

OC0A,OC0Bとか、Timer0周りは触っちゃいけないんですよね?・・・
ん、分周比はいじれないけど、OC0Aはいじってもいいのかな・・・


拍手[0回]

SmileFunctionDecoderVer2 の組み立て図のPDFファイルを
直接リンクで貼っていましたが、見れないようでしたので、
暫定ページを作りました。

http://dcc.client.jp/FunctionDecoderVer2.html


拍手[0回]

ブログ内検索

プロフィール

HN:
あやのすけ
性別:
非公開
<< Back  | HOME Next >>
Copyright ©  -- あやの --  All Rights Reserved
Design by CriCri / Material by もずねこ / powered by NINJA TOOLS / 忍者ブログ / [PR]