ラベル Arduino の投稿を表示しています。 すべての投稿を表示
ラベル Arduino の投稿を表示しています。 すべての投稿を表示

2026年5月9日土曜日

9年ぶりに完成しました・・・ANRITSU製 ATT

  左写真は、ANRITSU製の、おそらくStandard Signal Generator:標準信号発生器から取り外されたと思はれる、ATT(信号減衰器)です。

 手持ち部品を整理していたらこれが出てきたのです。  思い返すと、 このブログの2017年1月23日に

 (クリックでこのページへジャンプ)

として掲載していたものです。
 この部品の詳細や解析結果、実際の駆動方法などが書かれていますが、装置として使うための実装がされていませんでした。

 私のように、解析や実験により興味を持つ者にとって、ケースをつくり、実装して実用装置の形まで作業を進めることはかなりハードルが高いようですが、この機会に完成形まで、、、、と一念発起しました。

 私は実験結果をノートに努めて残すようにしていますので、上記ブログの日付(2017年1月23日)からノートを遡ってみました。

 ありました! 数ページにわたって詳細に記録されており、この時の arduino のスケッチもパソコンの中から探し当てられました。

 コンピュータのプログラムのようなものは別として、実験ノートのようなものは、いわゆる大学ノートに日付順に書き込んでいくだけのほうが使いやすいと私は思っています。(化石人間???
) 
 そんなわけでこの実験ノートも一年で約1冊のペースで、今では33冊目となっていますが、どの記事がどこにあるかの、いはゆる検索が苦手ですので、出来上がったものにはその日付を必ず入れておくようにしています。







 








 上写真が、今回作成したケースで、1mmのアルミニウム板を切断・曲げ加工したものです。
 左側が、ベース側(下側)で表示、ATTコントロールなどの機能部分が搭載されています。右側はATT本体を固定してあり、上からかぶせるようにして一体化します。
 これらはできる限り小型にしたかったため、各所の寸法がギリギリで、組み立てにはかなり苦労しました。

 7セグメントの4桁表示器(使っているのは3桁)とATTの制御基板をそれぞれ駆動するための回路で、ATMega 88 を使っています。(左図)

 表示器は上下逆さにして、ドットを10の位の表示に使いますので、左下図のように、黒字の A B C ・・・を赤字の A B C ・・・に接続を変える必要があります。













 右写真はその実態写真でかなりゴタゴタしており、お恥ずかしい限りです。



 左写真は正面からのもので、左右の金色 SMC コネクタは ATT に直付けされたものそのままで、スペースと性能低下に配慮したものです。

 ツマミを回すと中央の3桁7セグ LED の数字が変化して ATT の減衰量 ーdB を表示しますが、右回転で数字を小さくし、 減衰量が少なくなるようにしてあります。

 写真では ー123dB が表示されています。また今回使用した、ロータリーエンコーダにはプッシュスイッチがついていますので、ツマミを押すと10の位のドットが点灯し、10の位を変化させることができるようになり、再度押すとこのモードは解消されます。

 ということで、9年の月日を経てようやく実用できるようになりました。
 電源の15Vを必要としますが、比較的小型でツマミも軽く、かつ節度も良く、カチカチと気持ちよく作動してくれます。

 念のため製作日時も書きこみました、これで故障時の対応も万全です!!!

2026年3月17日火曜日

エコノミークラス症候群対策用タイマーの製作

  最近のテレビ番組は、「健康」をテーマにしたものが多いようです。たまたま「エコノミークラス症候群」について解説をしていました。
 長時間同じ姿勢でいることで下肢の静脈に血栓ができ、それが肺の血管に詰まる危険な疾患であるということで、以前にも何回も耳にしたことがあります。

 私自身、机に向かってパソコンとのやり取りや、はんだごてを握っての電子工作は、時間の経過も忘れて何時間も没頭するのはほぼ日常です。

 いまさらのことながら、何とかしようという気持ちになってきたのを幸い、対策を思案しましたが、早い話、1時間ごとに立ち上がって体操をすればいいということのようでした。

 そこで思いつくままに手元の部品を集め、加工して30分タイマーを製作しました。(冒頭写真) 
タイマーということなら、身の回りにいくらでもありそうですが、自作品ならば、より愛着がわき使いやすいと思ったからです。

 使う場所が机上ですので、電源はパソコンのUSB 端子から得れば回路はより簡単になります。
 より小型にするために、FRISK のケースを使い、手持ちの古いAVRマイコンチップの ATTiny13A を内蔵 9.6MHz の8分周で動かしました、回路を上に挙げておきました。
 緑色のリセットボタンを押し、スタートさせると5秒に1回赤色の LED が極短時間フラッシュし続け、動作していることを示しながら、30分経過したら圧電ブザーを6回鳴らして時間が来たのを知らせる仕組みです、、、、、そこで私は、やおら立ち上がり、踵落としやスクワットをこなして再度座りなおすと同時にタイマーのリセットボタンを押す、、、、ということになります。

 プログラムは arduino IDE で作りました、右にスケッチを示します。時間は5sec X 360 で30分としたのですが、最終的には実測してループを 340 回としてほぼ30分となりました。


















 蛇足ながら内部写真を示します、中央の黒く丸い部品が圧電ブザー、その下の黒い四角のものが AVR マイコンチップの ATTiny13A 、上の黒い四角はリセットスイッチです。

 こうしてブログをアップしている最中にも3回ほどタイマーが注意喚起してくれました。思ったより時間は短く感じ、頻度は多くなりますが、そのつどの体操は健康のため!!と考え使い続けていこうと思っています。

2026年1月13日火曜日

キャラクターLCDチェッカー を作りました

 新年最初の電子工作です。
 電子工作を趣味としていると左写真のような、キャラクターLCDが沢山手元にたまってきます。

 これらキャラクターLCDは電子回路で得た結果をわかりやすく文字で表示するもので(左写真左下)、こんな便利なものはありません。
 
 ありがたいことに、この部品は早い時期に規格が定まり、基本的に古いものから現行品に至るまで同じ様な結線で作動させることができるようです。

 右図はその一例をネットから転載したものですが、この例では制御線は16本あります。

 ただ私の場合 Arduino で使うことがほとんどですので、1~6,11~14の計10本で制御できます。1~3は電源、5のRWはGNDに落としますので、実質、制御線としてはRS E D4 D5 D6 D7 の6本となります。

 でも冒頭の写真の中から1個の LCD を選んだ時、果たして動くかどうかは実際に結線してみないとわかりません、ということで簡単に動作をチェックできるものを考えました、要点は以下のとうりです。
  ・簡単に文字の表示ご確認できること
  ・3.3V、5V の両方がチェックできること
  ・これに伴ってコントラスト用の電圧を測定・読み出しができること
  ・最近多くなってきた、I2C で使うLCD もアドレスの取得、表示の確認ができること
以下に回路図を挙げておきます。


 基本は、ATMega 8 なるAVRマイコンを使い、プログラムは Arduino IDE によりました。
この ATMega 8 はArduino UNO に使われている上位の ATMega 328 とピン互換で、値段も秋月で極めて廉価ということでたいへん気に入っています。

 LCD とのコネクタには、TTL用の丸ピンソケットを使いました、場所を取らず、抜き差しの確実さ・耐久性は抜群で重宝しています。

 ATMega 8 のピン番号14~19は I2C アドレスを赤色LEDでビット表示するためのもので、0x00 ~ 0x3F が表示できます。

 電源部は、9V_DC を Input して、LM317 を使用し、抵抗を切り替えることで5Vと3.3Vを得ています。また3.3V の時 LCD のコントラスト調整用にマイナス電源が必要となりますが、たまにしか使わないのでリレーと単4の乾電池1個でごまかして?います。

 写真は今回作成したチェッカーの基板両面の様子です。かなり細かい作業で老眼にムチ打ちました。

 ケースは以前何かに使ったものの流用です。
 右写真はケースに収めたところ、下写真は完成品の様子です。










 
 上側の赤い LED は前述の I2C アドレス表示用で、2ビット+4ビットで 0x00 ~ 0x3F を表現できます。
 その下の四角い穴の中に見えているのが LCD とのコネクタで、TTL用の丸ピンソケットを切り取って使っています。トグル・スイッチは左が電源の ON ⇔ OFF 、右が 5V ⇔ 3.3V 切り替え用、右側のツマミはコントラスト調整用です。

 、、、、ということで早速使ってみますが、LCD の接続で最も注意せねばならないのが、ピン1とピン2です。冒頭の図ではピン1:VSS(GND)  、ピン2:VDD(+5V) のように表示してありますが、モノによっては(おそらく古いもの)ピン1とピン2が逆になっているものがあり、間違って接続すれば必ず壊れますので要注意です!!

 左写真は LCD をチェック中のもので、左が 5V 駆動、右が3.3V 駆動です。

 このときコントラスト調整用電圧(上記回路図中の Vc は本体右側にある10kΩの可変抵抗で調節する)は 5V 駆動のとき +0.77V 、3.3V 駆動のとき ー0.84Vでした。
 ありがたいことにキャラクターLCDはコントラスト調整用電圧を適正に与えれば、 5V 駆動、3.3V 駆動のどちらでも使えるようです。

 右写真は、I2C 接続の LCD をチェックしているところです。
 赤い LED は I2C アドレス 0x27 を表示しています。表示画面にもテストパターンが無事表示されています、大成功!!

 ちなみにこの I2C キャラクターLCD は過日このブログで取り上げた「16x1 液晶キャラクターディスプレイモジュールを使う」で作り上げたものです。

 新年早々、ものつくりの意欲が湧いてきました、そういえば今年は午年で私の当たり年です、元気にこの一年を過ごせますように、、、、

2025年10月7日火曜日

16x1 液晶キャラクターディスプレイモジュールを使う

 左写真は、液晶キャラクターディスプレイモジュールと言い、左上画面(表面)のLCD(液晶)スクリーンに数字や文字を表示するものです。
 下は裏面で、中央に大きな(古い)ICが1個(この1個が後々問題に、、、)デーンと鎮座しています。  この HD44780 というICはこれら液晶キャラクターディスプレイモジュール駆動する、世界標準とされ、おかげで我々にも様々な使い方ができるようになっています。

 ことのきっかけは、私が別途進めているプロジェクトで動作状況をモニターするディスプレイが必要だったのです。
 読み取る内容は16文字x1行で十分足りると思ったので、かつて超廉価で購っておいたこのディスプレイを使ってみようと思い立ったのです。

 基本的にこれらディスプレイの制御には Arduino を使いますが、標準ではその制御に、電源のほか6本もの線が必要となります。たかがこれしきの事に6本は問題外で、過日このブログで述べた「 通常の LCD を I2C 化する 」I2C(アイ・スクエアド・シー Inter-Integrated Circuit 2線式シリアル・バス規格)を使うことにしました。

 右上写真は、Arduino と液晶キャラクターディスプレイモジュールのインターフェイスに使う PCF8574 というICで、その右側の赤とブルーの小さな基板は使いやすくするために基板化されたものです。  

 今回は液晶キャラクターディスプレイモジュールの裏面に PCF8574 を背負わせる、ピギーバック・スタイルで行くことにしました。
 左がその回路図、下写真が実装状況です。

 液晶キャラクターディスプレイモジュールの I2C 接続は経験があるといっても8年も前の話で、Arduino の Library も更新されており予備実験が必要でした。
  Library は LiquidCrystal_I2C.h を使いますが、表現は以下のたった2行で事足ります。

#include <LiquidCrystal_I2C.h>             //  Library の宣言
LiquidCrystal_I2C lcd(0x20 , 16 , 1 ); //  0x20 は上回路図 A2,A1,A0 で表現されるI2Cアドレス、16,1 は16文字1行を表します。

 万事順調のように思われたのですが、ここで奇妙なことが起こりました。テストのため、
lcd.print("ABCDEFGHIJKLMNOP"); で16文字を表示させるつもりが、 左写真のように、8文字しか表示されません???
 そこで色々調べた結果、16文字x1行のディスプレイとはいっても2種類あることがわかりました。
 一つはそのまま16文字が表現できるもの、もう一つは(8文字)+(8文字)となっているもので、このディスプレイはそれにあたるようです。
 このことは、前述した HD44780 というICが1個であることによるらしく、
 LiquidCrystal_I2C lcd(0x20 , 8 , 2); // 8文字x2行   のように取り扱う必要があるよう  です。ちなみに
 lcd.setCursor(0, 1);
 lcd.print("IJKLMNOP"); とすればたしかに右写真のように表示されました。
、、、となれば、多少面倒でも、、、 
 lcd.setCursor(0, 0);
 lcd.print("ABCDEFGH");
 lcd.setCursor(0, 1);
 lcd.print("IJKLMNOP"); とやってみましたら、、、

 見事に16文字が並びました。

 8x2の表示が2つ並んでいるということでとりあえずは使えそうですが、連続した16文字を表現するためにはさらにソフトに関して知恵を絞らなければならなさそうです。

2024年6月18日火曜日

Arduino の自動電源 Off 回路

 相変わらず日々、Arduino を使った電子工作などを楽しんでいます。
 最近の技術の発達は目覚ましいものがあり、電子工作の世界にもその恩恵がもたらされています。その最たるものは小型化、高性能化でしょう。
 おかげで最近では虫眼鏡なしではものつくりが出来ません、いわゆるSMD( Surface Mount Device )です、でも消費電力も小さくなり電池駆動でも十分に働いてくれるのは有難いことです。

 しかしながら貧乏性の故か、電池の消耗が気になって落ち着きません。
 そんな時、一定時間が経過したなら、自ら電源を落とすようにしてやればよい、、、と気付きました。

 もちろん世の中ではそんな仕組みは当たり前なのですが、自分の工作の中で実用化する、というのはそれはそれで意味のあることだ、、、と取り組んでみました。

 最初に考えたのは、右上回路です。
 仕組みは、電源スイッチを押すと上側のトランジスタ(2SA1015)の E (Emitter)から C (Colecter) へ電流が流れ、すなわちバッテリーからArduino へ電源が供給されます。
 電源を得た Arduino はただちに Arduino Port を HIGH レベルにすることで下側のトランジスタ(2SC1815)をオンにして、電源スイッチから手を放してもバッテリーからの電流が途絶えないように、すなわち電源スイッチ‐オンの状態を保持します。

 あとは Arduino が一定の仕事をしたのちに Arduino Port を LOW レベルにすれば電源スイッチ‐オフの状態に戻ります。以下にArduinoのスケッチの要点を記述してみました。

 
  取り敢えずはこれで動いたのですが、上の回路図では電源‐ONの状態で、トランジスタ(2SA1015)の E-C 間で約0.6Vの電圧降下があります。

 3~5Vの電源での0.6Vは場合によっては大きいといえますので、右に示すようにトランジスタ(2SA1015)を FET (2SJ168) に置き換えました、これで電圧降下はほとんどなくなりました。
 また回路図中の S-G 間にある100kΩは省略してもうまく動いてくれています。
 
 ということで少々強引ですが、自動電源Off回路を動かすことが出来るようになりました。今回は P-N-P と N-P-N の素子をうまく使えたということでしょう、この回路を標準として今後、私の作品の中で使っていきたいと思っています。

2024年5月18日土曜日

Sweeperino なるものを実験してみました

  2000年の初めごろと言えばもうかなりまえになりますが、FRMS(Frequency Response Measuring System)という自作測定器がアマチュア間で話題になりました。今でいうネットアナで秋月のDDSキットをPICで操作し、その出力をコンポーネントや回路に与え、そのレスポンスをAD8307というログアンプで読み取り、パソコンのスクリーンに図示するというものでした。

 このキットはCYTECさんから発売されており、今でもFRMS2として品揃えの中にあります。左上写真はそこからの引用です。

 ありがたいことに回路図、部品表、基板データさらにはPICに焼きこむファーム・ウエアやパソコンで使用するソフトまでの一揃いを我々アマチュアがフリーで使用できるようになっており、私も何回か製作し実験に使ってきました、感謝です。

 最近になってネットサーフイン中に、少し古いですが気になるサイトを見つけました。(右画面) 著者は Ashhar Farhan さんで VU2ESE のコールサインからインドの方と思われます。


 ここでいう Sweeperino のコンセプトはケースであるキャンディー缶の右上にあるツマミを回し、目的周波数(AD570 による発振)に合わせ、回路からのレスポンス・パワーをやはり AD8307 で読み取る、、、といったもので FRMS によく似ています。
 私が着目したのはもう一つの機能で、マイコンのソフトで、回路の周波数特性を読み取り図示するという FRMS と同様の機能です。

今回作成した部分の回路図を示します。(パソコン専用のため LCD は省略)そのため回路は極めて簡単で、これをベースにいろいろなものが出来そうな予感がしますが、今回は基本的なところの動作確認としました。
 主体となるブロックは、ひとつは右下の Si5351 発振器です。オリジナル回路は Si570 が使ってあり、 Si5351 でも使えるように Arduino のスケッチが作ってありますがいまではより低周波側から使える超安価な中華 Si5351 発振器が入手できますので選択の余地はないと思います。
 もう一つのブロックは上側にある AD8307 を使ったパワー計で、この二つを Arduino_Nano でコントロールするものです。これらの情報はネットの GitHub を探せばより詳しく見つけられます。

 そしてある意味カナメのパソコンソフトは「 specan_ui.exe 」を使います。当初 GitHub に同梱されていたものは、win10 との相性のためか?動いてくれませんでしたが、より新しいものを探したところ無事動きました。

 前述の回路図中の CLK OUT と Signal Input の間に自作の 10MHz バンドパス・フィルタを入れて測定した結果です。

 Si5351 発振器のクリスタルは 25MHz のままででオリジナルの 27MHzには代えてありませんし、電力レベルも校正してありません、取り合えずのマンマです。  
 このきわめてシンプルな GUI はパッと観で操作できますが、このままでは最大中心周波数99.999MHz、最大スパン50MHz の制限がありますが FRMS に比べれば、、、、

 左写真は実験中の写真で、左から Arduino UNO 互換ボード、中華 Si5351 発振器、AD8307 パワーユニットとなっていますが各ユニット間の結線が極めて少ないのが面白いです。

2023年8月31日木曜日

トイレのリモコンがこわれた、、、

  突然ですが、、、トイレのリモコンがおかしくなりました。考えてみればもう20年近くになるのですから当然と言えばそれまでですが、完全に壊れてしまったわけではなく、時々いうことを聞かなくなるのです。
 いろいろ試してみた結果、リモコンが怪しいと思われますが、ハード的には何もデータがない状態ではお手上げです。
 試しにもう一つのトイレで使用しているリモコンを試したところほぼ機能することが確認できました。それでは、、、ということで、非常用?としてフラッシュ機能AUTO設定機能の2点に絞ったリモコンを自作することにしました。

 身の回りにある、テレビやエアコンなどのリモコンのほとんどは赤外線を使ったものがほとんどです。

 リモコンからの情報は1と0を組み合わせたコードを右図に示すような方式で送ることで伝達されます。
 波長950nmの赤外線を右下の緑で囲んだようなサブ・キャリヤにして送り出し、このサブ・キャリアを500uS ON、500uS OFFにすることで bit0、500uS ON、1500uS OFFにすることで bit1をそれぞれ表現するのです。(ELM-CHANさんのブログより転載)

 ということで、前述のフラッシュ機能とAUTO設定機能を達成するためにはリモコンからのそれぞれのコードを知る必要があります。

 ネットでいろいろ調べてみるとarduinoに赤外線信号センサをつなぐだけで、極めて容易にコードを解析できることがわかりました。(左写真)

 センサは手元のジャンク・ボックスからのものですが、一般的には OSRB38C9AA などが多く使われており、写真右上の素子がそれで、中央の脚?!が GND、右が +5V そして左を arduino の D4 に接続するだけです。

 取得したデータは下写真のようにリストアップされます。このようにして得たコードは、
フラッシュ機能0X200800B0B0 )とAUTO設定機能0X200800DCDC )でした。



 参考にさせていただいたサイトは、東京お気楽カメラさんの、タイトルは「Arduino nanoを使った⾚外線リモコンデータ
の受信器」です、あらためてお礼申し上げます。


 いよいよリモコンの製作ですが、簡単にするため、 arduino IDE により作成したスケッチを ATMEGA 8 にプログラムして16MHzで動かすことにしました。ATMEGA 8は古いですが、十分にこなれており信頼性も高いです。


 




 回路図を左に、これをブレッドボードで確認の様子を右写真に示します。写真右上に見えているのが赤外線用のLEDです、これもジャンク・ボックスからのものなので詳細は不明です。

 電源部は省略してありますが、絶えず使うものでもありませんので、単2マンガン電池3本を使っています。電源スイッチは必要ですが、切り忘れを防ぐために、跳ね返り型のスナップスイッチを使いました。このスイッチを押しながらS1、S2の押し釦スイッチを押すことで信号が発信されます。S1:AUTO設定機能、 S2:フラッシュ機能にそれぞれ割り付けました。
 回路図中の LED_RED (実験中のブレッドボードには実装してありません)は、従来のままだと赤外線は視認できないので、信号を発信してもなにも反応が感じられません!!
 そこで動作中であることが視認できるように信号発信中に赤色LEDを点灯させるようにしましたが、これによりリモコンを使っているという手ごたえが感ぜられます。

 arduino IDE で作成したソフトウェアは省略しますが、キモは tone 関数、および no Tone 関数です。tone 関数は tone(pin, frequency)  pin: トーンを出力するピン、frequency: 周波数(Hz) で表現され、今回は tone(12, 38000) で前述のサブキャリアを作成しましたが、ディユーティ比が1:3でなく、1:1でも何とか作動しました。

 一方、 no Tone 関数は出力を停止します。

 したがって bit 0 の出力は、
      tone(12,38000);
      delayMicroseconds( 500 );
      noTone(12);
      delayMicroseconds( 500 );
また bit 1 の出力は
      tone(12,38000);
      delayMicroseconds( 500 );
      noTone(pin_IR);
      delayMicroseconds( 1500 ); となりますので、これらを組み合わせて目的のコードを発信すればよいのです。

 右上は組みあがったリモコンの中身で、これをケース(無印良品のペンスタンドを利用)に組み込んだのが冒頭の写真です。単2マンガン電池3本のおかげで重心もしっかりしており安定しています。

 リモコンがおかしくなったおかげで、基本的なところから勉強することが出来、自作のリモコンも無事稼働しています。おかげさまでこの猛暑の中、楽しく熱中する時間を持つことが出来ました、健康に感謝です。

2022年10月19日水曜日

ウクライナからの最近のFRMS(Si5351 Network Analyzer Lite)は優れもの

 FRMSFrequency Response Measuring System)というアマチュアが使う測定器があります。秋月電子のDDSキットを発振器に使い、ログアンプのAD8307を使ってレベルの測定を行いパソコンに表示するといったもので、アマチュア無線関係のガレ-ジキットのネットショップ「CYTEC /サイテック」から情報が公開され、必要に応じプリント基板も購入することが出来ました。(左写真、CYTECさんのサイトから引用)
2000年にはもうありましたから、大変なロングセラーです。

 今日まで私も、何台も試作し、また便利に使ってきました。秋月電子のDDSキットはもうありませんし、MAX周波数が20MHzでは今時物足りません。

 UR5FFRというウクライナのアマチュア無線家のサイトは、昨年このブログでも紹介していますが、(arduino シールド型 簡易ネットワークアナライザ (pico NWT) の製作)今回はこの高性能版ともいえましょう。

 詳細はネットで、「 
UR5FFR NWT で検索すれば、回路図、ソフトウェアなど詳細な情報が得られますので、ここでは簡単な紹介のみとします。

 このシステムを簡易回路図で説明します。
 キーパーツは、Si5351ASA612AAD8307AAruduino nano、そしてセラミックフィルターです。
 これらのパーツの羅列を観れば、もうこれといった説明はいらないほどに目的は明確です。
 Aruduino nanoによって制御されたSi5351ACLK0から試料( DUT )に供すべき周波数の高周波が、CLK2からSA612Aのローカルに供すべき周波数の高周波がそれぞれ発振、供給されます。

 一方、試料( DUT )を経た信号はSA612Aに入り、Si5351ACLK2からのローカル信号との差である455kHzの信号に変換されます。この信号は2個のセラミックフィルター(秋月 455kHz±2kHz  LTM455IW)を経てAD8307Aで対数変換されます。そしてこのADC信号をAruduino nanoがパソコンに転送し、描画ソフトによりモニター上に表示されるわけです。


 上写真左は完成した本機、右は内部の写真ですが、フロアノイズを下げるための悪戦苦闘ぶりの痕跡が残っています。また入力部(左側)は本来50Ω受けですが、使い勝手を考えてBF998によるソース・フォロアに改造してあります。50Ωが必要な時には無理やりアッテネータを介します。

 右は、DUTとして50ΩのATTをいれたものです。

 最上部のラインは0dBを正規化したもので、以下-10dBごとの結果を示しています。

 周波数は100kHzから100MHzまでスイープしていますが、50MHzまででしたら、下から3本目の-80dB以下まで行けそうで、AD8307Aのスペックであるダイナミック・レンジ92dBを考えればむしろ上出来だと考えます。

 この制御ソフトには、クリスタルフィルターを作成するためのユーティリティーがついていますので早速試してみました。
 クリスタルは9MHzのものを使用しましたが左図は共振点の測定です。


 右図は即席で組み立てたクリスタルフィルターの特性です。このNWTに描画するのが目標ですので、細かいマッチングなどはとってありませんので、、、、

 図のように曲線を描かせて、ツール・ボタンの中のフィルター・パラメータをチェックすると、いくつかのマーカーと右上の特性表が現れてビックリです、うまく使えば有益かも、、、

 というわけで今回は、時流に乗ったわけではありませんが、ウクライナ関連ネタでした。
 UR5FFRさんのサイトを閲覧することはできますが、彼にメールしても返事はできないョ!!とありましたし、記事の一部には生々しい戦争被害のシーンもアップしてありました。

 はやく平和な世界が訪れんことを祈ります。

2021年10月10日日曜日

CH340KでArduino Unoクローンをつくる

  先日、いくつかの部品を例によって、秋月から購入した時に CH340K というICも併せ入手しました。
 シリアル‐USB変換用ICといえばこれまでは FTDI 社の FT232シリーズが有名で、その多機能・高性能を売りにしてきたのですが、シリアル-USB変換用のみに使用するには比較的高価でした。

 そうこうするうちにFT232のクローン?や安価な変換IC が出現したりしましたが、ここのところ安価な中華製品には16ピンの CH340G が使われてきました。
 この CH340G は中国は南京にある会社の製造によるもので、WCH(WinChipHead)ブランドです。

 今回、上写真にある CH340K に注目したのは、非常に小型10-pin ESSOP ピン間隔1mmで12MHzの発振器も内蔵しており、シリアル‐USB変換回路が、部品点数も少なく、かなり小さくできそうな予感がしたからです。

 右写真に各ピンの割り当てを示します。
 単に、シリアル‐USB変換に使うだけなら、右端の2ピンは無視してかまいません。

 







 ただ以下の点に注意してください、
 1. V3ピンは必ず0.1uFでグランドに落とすこと
 2. Arduino Unoクローンへ応用するときには#DTRピンと ATmega328 のリセット・ピンを0.1uFで結ぶこと。

 それではArduino Unoクローンを作っていきましょう。
 最初にAVRプログラマを用いて ATmega328 にヒューズ・ビットを書き込みます。 Arduino Unoでは搭載している ATmega328 に Low:FF High:D6 Ex:FD が書き込まれています。私は左写真のように自作のプログラマ HIDaspx をつかい、ISPで書き込んでいます、このプログラマは随分前のものですが、信頼性も高く重宝しています。(書き込まれる ATmega328 の現状ヒューズ・ビットが不明な場合は外付けクリスタルが必要です。)

 つぎにこのままの接続で、Arduino IDEを立ち上げ、メニューバーツール→ボードで Arduino Uno を指定します。

 次いで、メニューバー→ファイル→スケッチ例→01.Basics→Blinkで新しい画面を出し、そのメニューバーの左端のチェック・ボタンを押してコンパイルします。


 コンパイルされた .hex ファイルは、PC→ローカルディスク→Arduino→temp と辿った先のtempファイルの中にあります。

 左に示したのがそれで、「Blink.ino.with.bootloader.hex」がお目当ての .hex ファイルです。

 このファイルをプログラマで先ほどヒューズ・ビットを書き込んだ ATmega328 に書き込みます。


 右図はCH340KSOP→DIPへの8ピン変換基板に載せたものと ATmega328 との結線を簡単に表現したものです。
 前述したように赤丸で示した0.1uFを忘れないように、、、、

 USBプラグの電源線赤(+5V)(GND)や ATmega328 周りの配線などは省略してあります。


 左写真は先ほどの「Blink」プログラムを実行しているところです。

 この状態からこのまま他のプログラム、おっとスケッチというんでしたっけ、もアップ・ロードして実行可能です。

 こうしてみると思ったように小型化できていると思います。
 こう見えてもArduino Unoクローンなのですから、、、、