エントリー

カテゴリー「実験・研究」の検索結果は以下のとおりです。

5V昇圧DCDCを評価の続きの続き

ダイソー モバイルバッテリーのリップルが多かったのを出力側へコンデンサ追加で改善できるはずなので試してみた

バッテリーの充電等なら問題にならないが,マイコンの電源では基準電圧等の影響もあるため簡単に解消できるなら試しておこうと思うし,折角簡単に手に入る5V昇圧DCDCを見捨てるのも勿体ないためである(中華DCDCよりコンパクトというのも理由の1つ)

先ずは不要なパーツを外し付けられていたパーツを付け直してみた

IMG_20180224_182950283.jpgIMG_20180224_183003718.jpg

早速オシロで計測したが結果は変わらず

IMG_20180318_172223590.jpgIMG_20180318_171335073.jpg

そこで出力側に1μFを付けてみたがほとんど変化なし

IMG_20180318_171600036_BURST000_COVER.jpgIMG_20180318_171609473.jpg

10μFにしたところ少しは改善

IMG_20180318_171633550.jpgIMG_20180318_171651692.jpg

22μFにアップして効果あり

IMG_20180318_171758250.jpgIMG_20180318_171815650.jpg

もう少しなんとかなるか細かい波を小で押さえるため22μF+1μFにしてみるが変わらず

IMG_20180318_171940031.jpgIMG_20180318_171950983.jpg

22μF+0.1μFで少しの変化はあったが影響するほどではない

IMG_20180318_172132404.jpgIMG_20180318_172153934.jpg

出力に22μFを付ける位で良さそうで,もう少し頑張るなら22μF+0.1μFとする

大抵はマイコン側の電源ラインの違いところで0.1μFを付けているので22μFだけで十分と思われる

5V昇圧DCDCを評価の続き

前回の低価格で入手可能な5V昇圧DCDCの続きでオシロスコープで観た結果を追加

環境

入力3.6Vで5Vの昇圧出力,負荷はセメント抵抗で100Ω(50mA)と50Ω(100mA)の出力波形を観察した

IMG_20180218_164655.jpg

出力波形

オシロスコープの表示は縦目盛りを0.5Vにして5Vが中央になるように(0Vは画面下方外)スクロールしている

尚,左が100Ω(50mA),右が50Ω(100mA)の結果

(1)セリア USB charger

IMG_20180218_171101.jpgIMG_20180218_171348.jpg

(2)ダイソー モバイルバッテリー

IMG_20180218_171506.jpgIMG_20180218_171707.jpg

(3)中華 DCDCボード

IMG_20180218_171910.jpgIMG_20180218_172020.jpg

結果

セリアのリップルは問題になる程ではないが100mAになると大きくなっているのが判る

ダイソーはリップルが多く(0.30V位だけど)出力500mAまで使えるのは良いが使うのにためらいを感じる

ダイソーのボードを観るとコイルが基板から浮いているので影響しているのかもしれない

IMG_20180218_182658.jpg

中華はオシロスコープのノイズのみで実質リップルは観られない(50mA→100mAで電圧降下もない)

 

低価格で入手できる5V昇圧DCDCを評価してみる

拙者はAVRを3.3Vで使用すること多いが稀に5Vで使うことがある

単純に5Vを用意すれば良い訳だが運用でなるべく以下のバッテリ(2種)を組み込んで利用したい

(1)秋月のNiMHバッテリ3.6V(使用電圧範囲3~3.8V位)

IMG_20180211_205856.jpg

  • コンパクトながら830mAhと容量があるので長く使用できる

(2)100均ライターから取り出したリポ(使用電圧範囲3~4.2V位)

IMG_20180211_205906.jpgIMG_20180211_210759.jpg

  • 基板ごと取り出してヒーター部を外す
  • タクトスイッチは付け替え電源スイッチとする
  • このままUSB充電できるので便利
  • 容量は少ないので低消費電力運用時利用となる

そこでポータブル用途として使うのを前提に扱い易い5V昇圧DCDCを検討してみた

昇圧回路の自作

最初に思いつくのは基板上に昇圧回路を組み込んでしまうことだ

そのためのパーツとしてHT7750Aを購入してあるのだがデータシートのように性能がでないようである

WS000028.png

気の迷いさん,電気の迷宮さんを参考にさせてもらっても面倒そうに思える

なので今回は(HT7750A版を含めて評価してみようと思ったが止め)100均の昇圧商品や既に購入してある中華のDCDCボードなど出来合いの物だけで評価する

チョイスした昇圧ボード

評価してみる昇圧ボードは以下の3つ

(1)USB charger

IMG_20170701_134325.jpgIMG_20170701_135725.jpgIMG_20180211_205629.jpg

  • セリアの商品
  • 単3アルカリ乾電池または充電池×2個使用
  • DC5.0/最大出力不明(おそらく100~200mA位)

(2)モバイルバッテリー

IMG_20170627_192257.jpgIMG_20170627_192558.jpgIMG_20180211_205715.jpg

  • ダイソーの商品
  • 単3アルカリ乾電池×2個使用
  • DC5.0/500mAh(最大出力)

(3)中華のDCDCボード(Rasbee DC-DC 2A Boost ステップアップ 転換モジュール)

IMG_20180211_205731.jpg

  • 中華製品
  • 1個(税込み)100円(以下)
  • 最大出力電流:2A
  • 入力電圧:2V~24V,最大出力電圧:>28V
出力5V50mA固定で入力電圧を変動させ効率の測定

WS000029.png

  • AVRで使用される電力での効率測定
  • 中華は2Vから動作仕様
  • 使用するバッテリの電圧範囲である3~4V間で中華は90%近く優秀だがダイソーは75%で電圧が高い程よろしくない
入力電圧3.0V,3.6V,4.2Vでの負荷変動による出力電圧と効率の測定

(1)セリア USB charger

WS000030.png

  • 3.6Vと4.2Vは値が同じ
  • 140mAを超えると電圧が保てないので止め

WS000031.png

  • 140mAを超えると電圧が保てないので止め

(2)ダイソー モバイルバッテリー

WS000032.png

WS000033.png

(3)中華 DCDCボード

WS000034.png

WS000035.png

  • 出力電圧は無負荷で5.03Vにしてある
  • 安定した出力電流が得られていた
評価結果

ダイソーのモバイルバッテリーは500mAまで出力できるのだが効率が悪いので入力に余裕が必要

50mA位の出力ならどれを選択しても出力電圧は問題はないだろう

出力電圧を調整でき安定した電流を流せる中華のDCDCボードがコストパフォーマンスも高く抜けている

その他

IMG_20180212_100633.jpg

オシロによる波形測定を忘れていたので後で追加する

3.6Vの組充電池用充電器の試作

秋月電子のニッケル水素電池パックは安価で何かと使える3.6V充電池である

IMG_20170903_153320.jpg

これまで(リポを外した)ダイソーのUSB充電ライターの充電機能を利用して充電していた(真ん中のパーツ)

充電は問題なくできるのだがリポ用のため完全な満充電にはならないのが欠点

今後充電する事が増えそうなので専用の充電器を作製しようとしたら実は半年前に作製しようと設計していた(いろいろあって中止し忘れてしまっていたようだ)

diagram.png

ATTINY13aで充電制御する方式で設計,スケッチがまだなのでプログラミングしていたが,今のところ先日の充電器で十分なため記録だけにしておく(他に完了させないといけない物があるので落ち着いたら組み立てる予定)

暫定仕様
  • 全体の8~9割までは500mAの急速充電
  • 残りの1~2割は50%位で充電
  • 最終充電電圧を10秒間保持できていたら充電完了
  • LEDの点滅具合で充電状態が判るようにする
スケッチ
//
// ATMEL ATTINY13 / ARDUINO
//
//                 +-\/-+
// ADC0 (D 5) PB5 1|   |8 Vcc
// ADC3 (D 3) PB3 2|    |7 PB2 (D 2) ADC1
// ADC2 (D 4) PB4 3|    |6 PB1 (D 1) PWM1
// GND            4|   |5 PB0 (D 0) PWM0
//                 +----+
// 1: Reset
// 2: LED
// 3: Serial Out
// 4: GND
// 5: PWM(FET SW)
// 6:
// 7: ADC(充電池電圧確認)
// 8: Vcc 3.3V
//
#include <avr/io.h>

#define BAUD_RATE 38400
#include <BasicSerial3.h>

#define PIN_ADC 1   //PB2(ADC1)
#define PIN_LED PB3 //LED
#define PIN_OUT PB4 //SerialOut(Debug)
#define PIN_FET PB0 //FET

#define MCHR_VOLT (1400*3) //最大充電終止電圧(mV)
#define LAST_VOLT (1420*3) //充電終止電圧(mV)

static void serOut(const char *str) {
while(*str) TxByte(*str++);
}

//確認用シリアル出力
static void voltOut(int v) {
char bf[8];

itoa(v, bf, 10); //10は十進数
serOut(bf);
serOut("mV\r\n");
}

//電圧(mV)
static int voltRead() {
    ADCSRA = (1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(0<<ADIF)|(0<<ADIE)|(0b100);
//ADC#3
    loop_until_bit_is_set(ADCSRA,ADIF); //ADC#4
    long v = (long)ADC; //long v = (long)analogRead(PIN_ADC);
    v *= 5000;                           //基準電圧5V
    v /= 1024;
    return((int)v);
}

void setup() {
    DIDR0 = _BV(PIN_ADC);                              //ADC#1: pinMode(PB2, INPUT);
    ADMUX = (0<<REFS0)|(0<<ADLAR)|PIN_ADC; //ADC#2: analogReference(DEFAULT);
    DDRB = (_BV(PIN_LED)|_BV(PIN_FET)|_BV(PIN_OUT));   //pinMode(PIN_LED, OUTPUT);
                                                       //pinMode(PIN_FET, OUTPUT);
                                                       //pinMode(PIN_OUT, OUTPUT);
    OSCCAL = 91;                           //87 - 96 (91, 92)
}

void loop() {
   int volt;

    serOut("Begin.\r\n");

    //MAX充電
   while((volt = voltRead()) < MCHR_VOLT) {
        voltOut(volt);
        PORTB |= _BV(PIN_LED);                         //digitalWrite(PIN_LED, HIGH);
        PORTB |= _BV(PIN_FET);                         //digitalWrite(PIN_FET, HIGH);
        delay(4000);
        PORTB &= ~_BV(PIN_LED);                        //digitalWrite(PIN_LED, LOW);
        delay(1000);
    }

    //残りを50%充電で完了させる
    int final = 5;
    do {
        voltOut(volt);
        PORTB |= _BV(PIN_LED);                         //digitalWrite(PIN_LED, HIGH);
        PORTB |= _BV(PIN_FET);                         //digitalWrite(PIN_FET, HIGH);
        delay(1000);
    PORTB &= ~_BV(PIN_FET);                        //digitalWrite(PIN_FET, LOW);
    PORTB &= ~_BV(PIN_LED);                        //digitalWrite(PIN_LED, LOW);
        delay(1000);
    if((volt = voltRead()) < LAST_VOLT) final = 5;
    } while(--final != 0);

//終了
serOut("End.\r\n");
PORTB &= ~_BV(PIN_LED);                            //digitalWrite(PIN_LED, LOW);
for(;;);
}
コードサイズ
  • arduinoのライブラリを利用すると1Kbytesを超えた
  • ADCを直接ハードウェア操作することで210bytes減る
  • その他も直接操作で最終的に780bytesになっている
  • 確認用のシリアル出力は削除できる
ADC関係
  • ADC#1: デジタル入力抵抗を無効(消費電流が減る)
  • ADC#2: REFS0=Reference: 0でVCC参照, 1で1.1V内部電圧源,ADLAR=0:右詰め,1:左詰め,下位2bitで00から11までADC0からADC3
  • ADC#3: ADEN=ADC有効,ADSC=ADC開始,ADIE=完了割込許可,下位3bitがクロック指定
  • ADC#4: ADIFビットが1の間はAD変換中

ページ移動

  • ページ
  • 1
  • 2
  • 3

ユーティリティ

タグクラウド

検索

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

Feed