エントリー

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

導通チェッカーの作製

導通を確認するのにテスタを使用しているが「電源ON]「ダイヤル回す」「導通ボタンを押す」を行うのが面倒(だと思っていた)

この際なので導通チェッカを作製することにし参考は沢山あるだろうとネットを検索

多くは電源電圧をそのまま印加するような仕組みで電子回路には怖くて使えそうにないが,まともな導通チェッカーの1つとして見つけた,ELM ChaN氏が2008年に製作された「回路内導通チェッカ」を使わせていただくことにした(air variable 氏の「LMC555使用導通チェッカー」も魅力ではあった)

開発環境もあるし簡単に作製できるだろうと思っていたらいろんな問題(課題でもある)が発生し時間を費やしてしまう

材料

廃却したマザーボードの圧電ブザーと水銀電池ボックス部分を置いてあったので取り外して使う

IMG_20230611_135020.jpg

ATTiny13aは¥50の時に購入したのがある

開発環境

最新の「arduino-2.1.0」,前バージョンの「arduino-1.8.13」でもArdinoISPによるATTiny13aのスケッチ書き込みが不可になっている

書込装置がメニュに出てこないことが問題でこちらを参考に対応してみたがArdinoISPでは不可であった(ATtiny85は対応されているので調査すれば何とかなりそうには思えるが後回し)

更に前のバージョンである「arduino-1.8.10」を使用

デバッグには使えるソフトシリアルポートが無い(pinの空きが無い) ためBlink()で判定

タイマー使用できず

CPUクロック異なるためソフトdelayを使っていたのをタイマーにしようとしたらPWMピンを使用していたので不可

delay()で良いのに気づかずCPU速度でWAIT調整しソフトdelay_msを作製(後に必要ないので移行して削除)

尚,CPUクロックは9.6MHzで開発して最後に消費電力削減のため1.2MHzに落とした

ブザー音

ブザーの仕様が不明だったのでアナログ発信器を作り1kHz前後で発音することを調査

IMG_20230613_090427.jpg

ADC

delayを使った待ち動作では正常に読めないのでフラグ待ちに修正

ADCSRA = _BV(ADEN)|_BV(ADSC)|(0b100);
loop_until_bit_is_set(ADCSRA, ADIF);
uint16_t ad = ADC;
消費電力

CPUクロック9.6MHzで,スリープ時48mA,通常時で20~50mAもありこれでは電源SWなしでは使えない

IMG_20230613_091030.jpg

調査したところブザーピン(PB1)がスリープ時もHIGHになっていて消費していることが判明

PWM使用にてタイミングによってHIGHになってしまうことがあるようで強制的にPB1をLOW(0)に設定してもLOWにはならない

そこでブザーを鳴らす時つまりPWM出力時にPB1を出力ピンにして,ブザーを止める時に出力ピンをOFFにすることで対処してみたらOKとなる

void beep(uint8_t t)
{
if(t) {
DDRB = _BV(PIN_BZR);
OCR0A = t;
OCR0B = t / 2;
TCCR0A = _BV(COM0B1)|_BV(WGM01)|_BV(WGM00); //PWMの動作を指定(PB1出力,8ビット高速PWM動作)
TCCR0B = _BV(WGM02)|0b011; //WGM02|WGM01|WGM00で高速PWM動作
//CS2|CS1|CS0 = 0b011 clkI/O/64 (64分周)
} else {
TCCR0B = _BV(WGM02); //停止
DDRB &= ~_BV(PIN_BZR);
}
}

スリープ前に出力ピンをOFFでも良い(オリジナルはスリープ前に初期化しているようだ)

クロックも下げて再度消費電力を測定しようとしたが手持ちのテスター(60μAレンジのテスターでも)では測定できなくなってしまった(突入電流が僅かなのか起動しない)

PWM

ATTiny13aのPWM関係のレジスタ制御が思うようにいかない

例えばPB1に出力する場合で,

//OCR0A = (値);
OCR0B = (値);

出力されない(発音しない)

OCR0A = (値);
//OCR0B = (値);

出力する(発音)

OCR0A = 255;
OCR0B = 0;

出力する(255の発音)

OCR0A =(値);
OCR0B = 255;

出力されない(発音しない)

他のレジスタとの設定順もないようだ

前にPB0では発音できないこともあり拙者が持っているATTiny13aの不具合なのか(?)

回路図

オリジナルではPIN7(PB2)でスイッチを利用しているがこれをリセットスイッチに変更

(オリジナル)起動後,スリープ状態へ移行し,SW割り込みでウエイクアップし導通チェック開始,SWかタイムアウトでスリープへを繰り返す

(変更)起動後,導通チェック開始,タイムアウトでスリープ,リセットで再起動の繰り返し(更にリセットを電源SWにすればバッテリー持ちが向上する)

他の変更点(PSWはタクトスイッチ使用→タクトスイッチの図が大きいので代わり)

  • LEDの極性
  • 圧電ブザーの抵抗(チップ保護)
  • タイムアウトは1分間

導通チェッカーV2_回路図.png

スケッチ)(UTF-8N,TAB4,LF)

オリジナルのリメイク版(ブレッドボードで試作)

導通チェッカー_回路図.png

オリジナルのリメイク版スケッチ)(UTF-8N,TAB4,LF)

消費電力を含め動作的には完成

IMG_20230614_193859.jpgIMG_20230614_193940.jpg

操作ボタンとLEDは高さを合わせ,一番高さのある圧電ブザーの逆サイドに実装

ケースに重量が欲しいのでコイン電池ではなく1.2V×3本バッテリーを使用予定

ケース

いつものとおり3Dプリンタでケースを作製

IMG_20230616_103046.jpgIMG_20230616_102534.jpg

(←)表,(→)裏,(↓)中身

IMG_20230616_102518.jpg

ステッピングモーターでロータリースイッチを制御

当初はバリコンを遠隔制御するため以下のようなモーターを購入していたのだが上手くいかないので現在はバリキャップ(可変容量ダイオード)に切り替えようと思っている

IMG_20230607_192903.jpgIMG_20230607_192942.jpg

その中で購入していた4相ステッピングモーターがバンド切替に使えるかもしれないと考え試してみた

IMG_20230607_193229.jpg

動作確認

まずは4相ステッピングモーターの動作を確認(YouTubeでよみやさんが丁寧に説明しているので詳細はそちらで)

専門では「2相ユニポーラ」と言われているようだ(2相はバイポーラ)

以下のように2相(青1ー黄3,オレンジ4ーピンク2)の間に1本共通の線(赤5)が配線されている

20230609_001.png

これに電流を順番に8シーケンス流すと回転する(以下は正回転)

20230609_011.png20230609_012.png20230609_013.png20230609_014.png

20230609_015.png20230609_016.png20230609_017.png20230609_018.png

逆回転させるには逆順にする

2相だと2つの電磁石の極性を交換させながらモーターを回転させるので1相毎に4石(計8石)必要だが4相だと既に4方向あるので4石で済むことになる

IMG_20230607_210158.jpg

正回転テスト用スケッチ

ロータリースイッチと繋ぐ

IMG_20230608_164545.jpg

ダイレクトにロータリースイッチに繋いで動かすにはトルクが足りなそうなのでフランジを3Dプリンタで作製(PETG使用)

IMG_20230608_164620.jpgIMG_20230608_164642.jpg

トルクが不足していないか試行して確認

回転したので次へ

ロータリースイッチ回転制御

ロータリースイッチの位置を判断するため2回路を使い抵抗で分圧回路を構成

20230609_021.png

ケースを3Dプリンタで作製(PETG使用)

IMG_20230608_193835.jpg

ロータリースイッチとステッピングモーターを組み込み

IMG_20230608_201320.jpg

UP/DOWNスイッチを付けたスケッチを作製して確認

スケッチ

改良・課題
  • ステッピングモーターを動作させない時はMOへの制御をOFFにしていおかないと電力を消費する
  • ロータリースイッチのスイッチ間にスイッチ未接触間があり対処が以下の場合と絡む
  • 回転時の異常発生を考慮してタイムアウトしているが,その場合の対応策
  • フランジの軸受けが甘いため動作不良が起きた場合の対処
  • モーターの軸が中央にないのでケースサイズが大きくなる

な!百葉箱の補修

台風2号が過ぎ去った後くらいに気圧センサー(BMP280)の異常が発生

稀に突然低くなるおかしい値を計測していたことはあったので交換が必要なのかと思ってはいた

SS20230607_001.png

BMP280通番15を11に交換

IMG_20230607_131546.jpg

ところが交換後.気温や湿度も計測できなくなり分解して調査したところ,ESP8266をはじめセンサー類のソケットのピン側に錆があり接触不良になっていたことが判明

この際,BMP280に問題があるかと11から13に交換(11は問題ないのを確認して後に使用)

BMP280交換の際ピンソケットを刺し直ししたのが災いしたようだ(普通実施するけどね)

ピンの錆を鑢で磨き,分解したので要所を水洗い,センサーのみだがピンの刺し部分をテープ養生し復旧

ArduinoIDEでFTDIチップでの書き込みエラー

たまたま秋月電子のArduinoキットのボードに都合のよいシールドが載っていたので回路を組んでスケッチを書き込もうとしたらエラーとなってしまった

(以下はAuduino Pro Miniのエラー画面だが同じ)

SS20230604_008.png

「avrdude: ser_open(): can't open device "\\.\COM8": ?A?N?Z?X??????????????B」

Windows10時に同じ現象となったことがあり記憶ではFT232RLドライバの問題で,FTDIの最新ドライバーでは通信は問題ないのだがArduinoIDEからのスケッチ書き込みはエラーになってしまう

対策としては古いドライバーにすればよくWindows11に新規にアップした際に最新のドライバーになってしまったようだ

そこで同じように古いドライバーにしたのだが結果は変わらず嵌ることになる

FT232RL使用ボード

FT232RL経由で書き込むボードが多いだけでなくフューズビットやブートローダー書き込み装置で使用しているため重要なので解決しないとならない

(秋月のキット)

IMG_20230604_121122.jpg

(ProMini 5V/3.3V版)

IMG_20230604_121151.jpg

(Uncompatino)

IMG_20230604_121220.jpg

ドライバの完全削除

Windowsの問題だといえるのだが簡単にドライバを削除することができない

削除したと思っていても一度セットアップされたドライバはほとんどがディスクにストックされプラグ&プレイによって復活してしまう

更に今ではディスク上になかったらネットからダウンロードして適用してしまうから困ったもんだ

いろいろやってみたが以下の方法で完全に削除することができた

①デバイスマネージャを開いて対象のデバイスのプロパティを開く

SS20230604_001.png

②デバイスのアンインストールを実行

SS20230604_002.png

③「このデバイスのドライバーを削除しようとしました」のチェックボックスをONしてアンインストールを実行

SS20230604_004.png

これで削除できれば良いが完全に削除されないことが多い

削除されたかどうかは再度プラグ&プレイで確認(ドライバの適用がディスクかネットか判断する必要はあるが完全削除なら適用されない)

④③を実行しないで「ドライバ別デバイス」を実行して削除する方が確実

SS20230604_005.png

⑤デバイスマネージャが以下のようになる

SS20230604_006.png

⑥対象デバイスの「.inf」を選択して「ドライバーの削除」を実行

SS20230604_007.png

⑦バージョン別に多くのドライバがあればプラグ&プレイで何度か繰り返すことで全部削除できる

結果とドライバ

完全解決ではないが回避はできるようにはなった

どうやらIDEの方にも問題がありそうで「arduino-2.1.0」では新旧どのドライバーでも書き込みエラーとなる

「arduino-1.8.13」だと1つ前のドライバで書き込み成功

SS20230604_009.png

ドライバ:https://ftdichip.com/drivers/vcp-drivers/

・2021/07/05 2.12.36.4(最新ドライバ)

不可

・2017/08/16 2.12.28.0(1つ前,DL可)

arduino-2.1.0は不可

arduino-1.8.13で書き込み成功

・2015/07/10 2.12.6.0 (更に1つ前)

arduino-2.1.0は不可

arduino-1.8.13で書き込み成功

情報

この件についてネットで検索しても不思議と出てこない

海外サイトで最新ドライバは問題あるとの情報はあったが対策はない

FTDIドライバを完全に削除する(FTClean)があった(https://www.hdl.co.jp/USB/ftcln/)→ 使用は自己責任で

ページ移動

ユーティリティ

検索

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

新着コメント

過去ログ

Feed