エントリー

カテゴリー「電子工作」の検索結果は以下のとおりです。

ページ移動

006P(8.4V 7セル)用簡易充電器改造

以前006P(8.4V 7セル)用充電器を作製したが,知識不足だったこともあり時間の掛かる充電器にしてしまっていた

IMG_20180113_161157.jpg

そこでちょっとした訳もあって改造することにした

回路は以下のとおり0.1Cの定電流で充電し満充電の判定など行わない簡易版である

diagram.png

対象がニッケル水素充電池なので停止しなくても0.1Cなら問題は起きないし,周囲の気温により満充電圧が変動するため面倒な判定を行わなくても確実に満充電させることができる

また,006Pに約25mAと以下の3.6Vの組充電池用に約80mA充電を切り替えるられるようにした

IMG_20180114_153320.jpg

大したパーツもないのでサクッと作り直し

IMG_20180114_111223.jpg

先に電子負荷を使って定電流なのを確認した後にバッテリーを繋いで確認

IMG_20180114_111601.jpgIMG_20180114_111645.jpg

30mAと83mA位にしようとしていたし手持ちの抵抗値の事もあり上の様な電流値となる

IMG_20180114_114113.jpg

3.6Vの組充電池も対応したし満足かな

メロディICと圧電サウンダ

警告や終了を音で通知するためにメロディICを購入

(本当は1年前に購入していたのだけど)

いつものほったらかし状態から突如,まずは鳴らしてみようとした・・・が・・・結果はかなり嵌った(つまり楽しめた)

チョイス

メロディICは三端子メロディIC(UM66TxxL)等を3種(5曲オルゴールICも先に購入したけど触るのは後になることに)

UM66TxxL共通仕様

  • 動作電圧範囲:1.5V~4.5V
  • 消費電流:16μA(Typ.)

音の出力は大体は小さい物に組み込むことになるので,サイズ・電力的に大きなスピーカーにするわけにはいかないため圧電ブザーと圧電サウンダを選択

電子ブザー(24mm)PKB24SPCH3601

  • 発振周波数:3.6kHz(電源DC12V時)
  • 定格音圧:90dB(電源DC12V時, 10cm)
  • 動作電圧:DC 2~20V
  • 消費電流

 1.8mA(電源DC2V時)
 2.8mA(電源DC3V時)
 5.0mA(電源DC5V時)
 9.0mA(電源DC9V時)
 13mA(電源DC12V時)

圧電スピーカー(圧電サウンダ)(13mm)PKM13EPYH4000-A0

  • 動作電圧範囲:30Vp-p以下

実は,圧電ブザーと圧電サウンダ・圧電スピーカーの違いを知らずに,とりあえず圧電ブザーと圧電サウンダを購入していた

基礎知識(後付け)

  • 圧電サウンダと圧電スピーカーは同じ(以降,サウンダで記載)
  • 圧電サウンダは音が鳴る圧電振動板のみの部品で発音には外部に励発振回路が必要となる
  • 圧電ブザーは圧電サウンダに自励発振回路を組み合わせ一体化したもので直流電源があれば発音する
ファースト発音

接続は以下のとおり

fig1.png

画像クリックで動画(左:圧電ブザー,右:圧電サウンダ)

IMG_20171127_201002.jpgIMG_20171127_200927.jpg

発音は簡単にできて(左)電子ブザーだと終了音程度なら音量的にも十分

しかし電子ブザーはサイズが大きいため,できれば圧電サウンダを使いたい

そこで難点である音量を増大することを試みる

メロディIC

まずはメロディICの波形を観る(左:画像クリックで動画,右:パルス拡大)

IMG_0464.JPGaudio.jpg

音階の出し方はFM音源が実装される前のPC(AppleII,MZ,PC8001とか)など知っていれば判るが,要は矩形波の密度(周波数)を変えることで音階を出している訳だ(PC8001なんか圧電ブザーで苦心の音階を出していたなぁ)

圧電振動版への電圧増加

圧電サウンダの音量を上げるには圧電振動版を大きく振動させることになり大きく振動させるには圧電振動版への電圧を上げる

TrとFETへ変更版で確認(どちらもスイッチ的使用)

圧電サウンダは電圧を与えないと鳴らない(電圧駆動)ため並列で抵抗を入れる

fig2.pngfig3.png

R1を,1kΩ,100kΩ,330Ωと変更してみたところ1kΩが一番大きい音量であった

圧電振動版へ3V,5V,12Vと変えて与えてみると少しは大きくなるが大して音量は上がらない

更に電圧を上げても大幅に変化しそうにないと考え止めた

IMG_20171130_182513.jpg

1つの結論

電圧を上げても劇的には音量はあがらないようだ(警告音とかは瞬間的に大きい電圧を発生しているらしい)

では何故電子ブザーは,それなりの音量を発生させているのか・・・調査すると共振を利用しているようだ

そこで試しに圧電サウンダを基板に付け共振させてみる(動画はなし)と・・・

IMG_20171203_200240.jpg

音量が上がることを確認,美味く共振させれば十分な音量になりそうな感じだ

最終的な回路は以下とした(発生起電力を抑制するためダイオード入れた)

fig4.png

追加

周波数の違いによる音量の変化を確認(デサルフェータ―で作製したパルスジェネレータを改良して実験)

IMG_20171207_195938.jpg

3kHzの音量が大きかった(だけど・・・耳が年なんで強弱は判断できないだろうと思う)

第3次デサルフェータ―計画

自動車とUPSやポータブルバッテリ用にデサルフェータ―を新規に考えてみようと思いデサルフェータ―3号機を検討

まずはこれまで作製したデサルフェータ―について検証してみた

  • パルス発生部とバッテリー接続部の波形をオシロで再確認
  • 消費電力としてバッテリー接続時の消費電流を計測
1号機

元記事に近い形の回路でPチャネルのFETを用いて作製してある

IMG_20171112_110146.jpg

設計では12kHz動作であるがコイルやダイオード類の発熱がもの凄いため6kHz動作にした(切り替えで12kHzも残してある)

6kHz時の波形(上:パルス発生部,下:バッテリー接続部)

1_b_ff6k.jpg1_13v_ff6k.3-2.jpg

FETのON-OFF間隔となるパルス幅は約7μs,ピーク電圧は約40Vである

掃引時間を高速に変えるとリンギングが見え,パルス発生部も出力に影響してなのかFETをONした部分(0Vになったところ)から電圧が上がっている

消費電流(6kHz時)は32mAで低消費

IMG_20171119_200853.jpg

参考までに12kHz時の波形(上:パルス発生部,下:バッテリー接続部)は6kHzの倍になる

若干6kHz時より波形の上下が増えて派手になっている感じはする

1_b_ff12k.jpg

消費電流はクロックが倍になっただけで10倍以上となり,パーツの発熱のせいかしばらくすると700mAを超えた

IMG_20171119_200905.jpgIMG_20171119_201026.jpg

2号機

555を正論理出力にしてNチャネルのFETを用いた

パルス幅の調整に半固定を付けた

万が一のバッテリー上がりを避けるためエンジン始動中のみ動作させるようにしている(短絡ピンで常時動作も可能)

IMG_20171112_110104.jpg

波形(上:パルス発生部,下:バッテリー接続部)

2_b_ff2.jpg2_b_ff6.jpg

FETのON-OFF間隔となるパルス幅は約5μs,ピーク電圧は約40Vである(後に判明したがオシロを購入した時に計測した2号機デサルのデータは電圧/DIVの倍率が間違っていたため正確ではない)

右は掃引時間を高速に変えてリンギングの状態を観ると,パルスの立ち上がり途中でリンギングが発生しているのが判る

消費電流は225mAで多いと考える

IMG_20171119_200728.jpg

考察
  • 出力電圧に関しては1,2号機ともにピークが約40Vであり十分と考える
  • 出力クロックとリンギングについてはどうなのか(判らないため)判断できない
  • 消費電力については,エンジン始動中のみ動作だと普段の利用状況だと短すぎるため効果が薄いのではないかと思い,消費電力を極力少なめにして一週間位の常時動作を可能にしたい(低消費電力化,電圧検知によるインテリジェント化)
  • 掃引時間を低速に変えて1,2号機の出力の違いを比べる

1_b_ff6k2.jpg2_b_ff3.jpg

1,2号機ともにクロック毎に同じ出力電圧ではなくバラツキがあるのが判る

出力パルスは2号機のほうが多く良さそうにみえる

低消費電力化

低消費電力にするためには効率良いパルスの発生を行いたい

そこでパルス調整できる装置をArduinoで作製し調整中

IMG_20171105_095402.jpg

スケッチ

//PWM出力で周波数・デューティ比をダイナミックに変更
//
#include <avr/io.h>
#include "rotary.h"
#include "Wire.h"
#include "AQMI2CLCD.h"

#define PWMPin 10
#define BTNPin 8

#define SELFreq 0
#define SELDuty 1

Rotary r = Rotary(2, 3);
AQMI2CLCD lcd;

unsigned int freq = 20000;    //周波数
int duty = 10;                //指定したいデューティ比

int select = 0;               //変更値選択(0:周波数,1:デューティ比)
boolean forced = false;

ISR(PCINT0_vect) {
   if(digitalRead(BTNPin) == HIGH) {
       select = (select == SELFreq)? SELDuty: SELFreq;
       forced = true;
   }
}

ISR(PCINT2_vect) {
    unsigned char result = r.process();
   if(result) {
        if(select == SELFreq) {
           freq += (result == DIR_CW)? 1000: (-1000);
           if(freq < 1000) freq = 1000;
           if(freq > 50000) freq = 50000;
       } else {
           duty += (result == DIR_CW)? 1: (-1);
           if(duty < 0) duty = 0;
           if(duty > 100) duty = 100;
       }
        forced = true;
   }
}

void setpwm() {
   // TOP値指定(周波数設定となる)
   OCR1A = (unsigned short)(1000000 / freq);

    // Duty比指定 : 1000000 / freq * duty / 100;
   long val = (long)10000 * duty / freq;
   OCR1B = (unsigned short)val;
}

void setup() {
    //LCD初期化
   lcd.setup();

    //pin設定
   pinMode(PWMPin, OUTPUT);
   pinMode(BTNPin, INPUT_PULLUP);

    //調整用ロータリーエンコーダ割込み設定
   PCICR |= (1<<PCIE2) | (1<<PCIE0);
   PCMSK0 |= (1<<PCINT0);
   PCMSK2 |= (1<<PCINT18) | (1<<PCINT19);

    // モード指定
   TCCR1A = 0b00100001;
  TCCR1B = 0b00010010;

    forced = true;
}

void loop() {
    char str[20];

    for(;;) {
        if(forced) {
           forced = false;

          //1行目
          lcd.setLocate(0, 0);
          if(select == SELFreq) {
              lcd.putString((char *)"[ Freq ] Duty ");
          } else {
              lcd.putString((char *)" Freq [ Duty ]");
          }

          //2行目
          sprintf(str, " %2dkHz %2d%% \0", freq/1000, duty);
          lcd.setLocate(0, 1);
          lcd.putString(str);

           setpwm();
        }

        noInterrupts();
       delay(100);
       interrupts();
    }
}

PWM操作の覚書

  • PWM出力の周波数をダイナミックに変更するためには直接レジスタを操作するしかない
  • PWMの周波数はインターバルタイマでカウントアップされたカウンタ値の上限設定で決定する(上限設定しない場合はMAX)
  • インターバルタイマは最大がCPUクロックで分周比の設定もできる
  • デューティ比となるパルスのHIGH(もしくはLOW)時間はカウントアップされた値の上限値が立ち上がりとなる
  • 下がりはカウンタのMAXもしくはカウンタMAXからマイナスされカウンタ値の上限設定と同じなった時となる(2種選択)
  • 上のスケッチは16MHzの分周比8で2Mカウント/秒となりサイクル1Mとして作成している
  • 詳細はこちらを参照

可変電源の作製

昨年ダイソーで購入していた急速充電対応の自動車バッテリー用USB充電器

IMG_20171112_105906.jpg

その時に持っていた急速充電用の太いUSBケーブルが白だったのと500mAオーバーでの充電の仕組みを理解してなかったため白色を購入したが,これはiPad/iPhone用でAndroid端末では無意味であることを知り後に黒色のAndroid版を購入する

今回は余ったUSB充電器をDCDCに使って可変電源を作製することにした(本商品をこばさんがレビューされており参考にさせていただいた)

分解

まずは分解,無理やり開くことになるので元には戻らない

IMG_20171112_111219.jpg

基板の表と裏

IMG_20171112_111829.jpgIMG_20171112_111700.jpg

改造

使用しているチップHX1304Fの基本回路図(仕様書から抜粋)

HX1304F基本回路図.png

電圧を可変にするためには,R4とR5(基本回路図ではR2とR3)を外し以下の赤で記載したパーツを追加する

KR001.png

可変抵抗は500kΩ位が適切のようだが手持ちが100kΩしかなかった(良くできたら後で交換)

可変抵抗のGND側は0Ωで直結にする(電圧可変は基準電圧~入力電圧となるはず)

実態配線では以下のように3本のラインを取り出した

KR002.png

そして付加配線を楽にするためのと追加パーツがあるのでユニバーサル基板をベースに載せた

出力側のコンデンサの耐圧が6.3Vだったので取り外して100μF35Vのケミコンをユニバーサル基板上で追加

IMG_20171114_191526.jpg

注)まだターミナルは結線していない

動作試験

ここで動作確認する

適当なACアダプタを使用,入力電圧は約16V(無負荷)

IMG_20171115_201128.jpg

可変抵抗を操作して最低電圧から最高電圧へ(1.22~14.15V)

IMG_20171115_201201.jpgIMG_20171115_201308.jpg

電圧の可変を確認していると電圧のふらつきがあり試しに5Vに合わせてみるとふらつきが無くなった

IMG_20171115_201400.jpg

5Vにパーツの値が調整されているのかもしれない

DCDC部の消費電流も確認

5V時(21.1mA)

IMG_20171115_201549.jpg

最小電圧時(6.53mA)

IMG_20171115_201624.jpg

最大電圧時(64.3mA)

IMG_20171115_201704.jpg

100kΩでは少し消費が多いようだ

計器

購入してあった中華バルク版の電圧・電流計を使うことにした

無電圧時は0Vで問題なし

IMG_20171115_202547.jpg

とりあえず電圧のみ,ずれがあるので調整する

IMG_20171115_202634.jpg

結線

必要なパーツの結線を行い,後はケース入れ

IMG_20171116_193357.jpg

ケースが完成したら下記に追加予定

ページ移動

ユーティリティ

検索

エントリー検索フォーム
キーワード

新着コメント

Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/16 from 権限がありません
Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/15 from admin
Re:ArduinoIDEでFTDIチップでの書き込みエラー
2026/01/14 from 権限がありません
Re:NOAA受信システム復旧
2025/06/11 from admin
Re:NOAA受信システム復旧
2025/06/11 from とおりすがり

過去ログ

Feed