2010年2月17日

はてなブックマークに追加   簡易波形変換回路

 マイコン(PICやAVRなど)やディジタルICで矩形波(方形波)の信号を出力することは、わりと簡単です。例えば、PICなどでは、出力ポートに1kHzの矩形波を出力し、スピーカを鳴らしたりします。
 しかし、よく聞くと正弦波のようにきれいな音ではなく、ひずんだ音がします。
 そこで、この矩形波から正弦波に変換する簡易波形変換回路を作成してみました。回路は、次の三つの部分より構成されます。
  (A)CR積分回路……………………矩形波→三角波
  (B)ダイオード・リミッタ回路……三角波→擬似正弦波
  (C)ロー・パス・フィルタ……………擬似正弦波→正弦波

<回路図>
s-waveform_cnv.jpg

<ブレッドボードで実験中> ※PICで1kHzの矩形波を発生し、本回路に入力しています。
s-IMGP1649.jpg<入力波形(矩形波)> (2V/Div, 0.2msec/Div)
s-IMGP1632.jpg<矩形波→三角波(TP1)> (200mV/Div, 0.2msec/Div)
s-IMGP1631.jpg<三角波→擬似正弦波(TP2)> (200mV/Div, 0.2msec/Div)
s-IMGP1629.jpg<出力波形(正弦波)> (200mV/Div, 0.2msec/Div)
s-IMGP1626.jpg

 いかがでしょうか?
 高精度な変換回路ではありませんが、だいぶきれいになりました。

#オシロスコープによる波形の確認のみですが、実際にスピーカを鳴らせるには、本回路の出力を、高インピーダンスのアンプで増幅する必要があります。

はてなブックマークに追加   LEDを光センサとして使ってみる!

 電子工作では、LED(Light Emitting Diode、発光ダイオード)をよく使用します。
 一般的な使い方は、LEDに電流(数十mA程度)を流すことにより発光させる、発光素子としての使い方です。
 では、その逆に、LEDに光を当てるとどうなるのでしょうか?

<LEDに光を当てる>
s-IMGP1562.jpg<端子間の電圧(無負荷時)>
s-IMGP1589.jpg<端子間の電圧(2.7MΩ負荷時)>
s-IMGP1567.jpg

 このように、電圧が発生します。
 そこで、この光センサとしての特性を利用して、周りが暗くなると灯りが点灯する、簡単な常夜灯を作ってみました。

<回路構成>
 ■LEDによる受光(光センサ)
 ■OPアンプによる増幅(11倍)
 ■OPアンプによる比較(コンパレータ:10%ヒステリシス)
 ■LEDによる発光
 ■乾電池による電源(6V)
s-led_battery.jpg<周りが明るいとき>s-IMGP1605.jpg<周りが暗いとき>s-IMGP1603.jpg

 このように発想の転換【“LED=発光”→“LED=受光”】をすることにより、電子工作の世界が広がり、楽しみも増えるのではないでしょうか?
 LEDの種類や色によって、発電する電圧は異なるようなので、いろいろと試してみてください。

2010年1月27日

はてなブックマークに追加   静電気を見てみよう!(簡易静電気メーター)

静電気

 皆さんも、冬場、セーターを脱ぐときや、金属のドアノブに触れるときにバチッとなったりすることがあると思います。調べてみたら、火災の原因になったこともあるみたいです。気をつけたいですね。
 そこで今回は、この目に見えない静電気の量を、メータで表示してみます。回路図を見てください。部品点数は少なく、シンプルな回路です。回路は2種類用意しました。一つは、静電気の量を針式メータで表示します。もう一つは、LEDで表示(静電気を検出すると消灯)します。

s-static_electricity_meter.jpg

続きを読む
 「静電気を見てみよう!(簡易静電気メーター)」

2010年1月 6日

はてなブックマークに追加   心拍を見てみよう!

 日頃から運動習慣を身に付けていると、次のような効用があるそうです。

  •  同じ運動が楽にできるようになる。
  •  運動の持久性が増す。
  •  肥満を改善する。
  •  筋力が増す。

 しかし、過度な運動は体を痛めてしまうこともあるようです。そこで、オーバーペースであるかを判断するための基準となる心拍の波形を見てみましょう。

 できるだけ入手が容易で廉価な部品を使用します。センサ部には、フォト・インタラプタを使用します。なお、フォト・インタラプタには、出力がフォト・トランジスタの物を使用します。


s-IMGP0254.jpgTLP832.JPG

続きを読む
 「心拍を見てみよう!」

2009年12月22日

はてなブックマークに追加   静電容量型水位センサ(簡単&安価)

★概要
溜まった雨水や風呂桶の水位を測るセンサとしては、“電気抵抗型”と“静電容量型”があります。電気抵抗型は、2対の“導電性の電極”を水に浸し、電極間を流れる電流値の変化で水位を検出する方式です。しかしこの方式では、金属電極が水に触れるため、電極が腐食する欠点があります。それに比べ、静電容量型は、2対の“絶縁された電極”を水に浸し、電極間の静電容量から水位を検出するのでこのような問題が発生しません。

★水位センサ
家庭で使用されている“ACコード”を水位センサとして使用します。

ina20091222-6.jpg

続きを読む
 「静電容量型水位センサ(簡単&安価)」

2009年10月30日

はてなブックマークに追加   エレキジャックNo.15 動くラーメン・タイマの製作 記事訂正

エレキジャックNo.15 p.138の「動くラーメン・タイマの製作」 図2 部品配置図は正しくは以下のようになります。



お詫びして訂正します。

2008年6月 5日

はてなブックマークに追加   炎電流

 炎の中を電流が流れるということをご存知ですか? そしてその特性は、ダイオードのように整流作用を持っていることを調べてみて、私もはじめて知りました。

 さっそく実験してみました。
 炎の中に上下に二本の針金を入れる(図1)と電流が流れます。

◆図1
honoo.JPG

 これは炎が高温によってイオン化されると電流が流れるからだそうです。ファンヒータ等では、炎を検出するために、この原理を利用しているようです。
 もしかしたら、図2(図C)のようにすると増幅器(3極管同様)ができるかもしれませんね。

◆図2
honoo2.jpg

◆図3
honoo3.jpg

◆図4
honoo4.jpg

※この実験は、炎を扱うので危険が伴います。実験する場合は、くれぐれも注意して行ってください。また、子供だけで実験をしないでください。

2008年4月 1日

はてなブックマークに追加   SOS ICで遊ぶ(2)

 UM77Tでスピーカーを鳴らしたい場合は、下の図のようにします。抵抗値やトランジスタはある程度、適当なもので構いません。(と言っても限度はありますが……)
um77t-2-1.gif
 もっと大きな音で鳴らしたい場合、オーディオ・アンプ用IC(TA7368Pなど)を使えば簡単ですが、ちょっともったいない気もします。そんな場合は、下の図のような回路を考えてみてもよいのではないでしょうか?
 NPNとPNPトランジスタを組み合わせたSEPP回路ですが、思いっきり簡略化しています。
 UM77T(SOS IC)の出力は正弦波ではなくて、ON/OFFが4kHzで繰り返される矩形波なので、これでも問題ないようです。スピーカーは直径10cm程度の大きさの物を使えば、部屋の中ではうるさいくらいの音量になると思います。
um77t-2-2.gif

はてなブックマークに追加   DDSチップでいろいろ遊んでみる
   --第9回--

コントロール・ソフトの解説
 では、VB.NETで書いたコントロールソフトを解説します。VB.NETをインストールしたあとでコントロール・ソフトを解凍してください。DDS_34 visual basic project fileを開くと、VB.NETが起動します。

dds34x2_shot2.jpg

 コントロール・ソフトを動かすときは、DebugメニューからStart debuggingを選択します。コントロール・ソフトが起動するときにFT245RLが接続されているかをチェックします。もし、接続が確認できないと「Write」ボタンが有効になりません。公開しているバージョンは、開発用にチェックができるようSPIへの出力を表示するようにしてあります。
 操作は、とくにわかりにくいものはないと思いますが、位相を調整するスライド・バーをつけてあります。これは、ローパス・フィルタなどを通したときに生ずるズレを調整するものです。ソフトウェア・ラジオでは、IQ信号が正確に90°の位相差になっていない場合、イメージ信号の排除が上手くいきません。およそ89~91°まで微調整できるようにしました。

dds34x2_shot1.jpg

はてなブックマークに追加   DDSチップでいろいろ遊んでみる
   --第8回--

SPIデータの出力をLEDで確認しているところ。左からD0,D1.....D7。
8bit.JPG
プログラムの実際
 最初にFTDI社のホームページからドライバをダウンロードして、インストールしておきます。VB.NETからFTDI社のドライバを呼び出すのはとても簡単で、用意されているコードをコピーしてくるだけです。1バイトずつ出力する場合は、サンプル・コードそのままでも良いのですが、SPIデータを文字列に構成してから出力する場合は、ByRefをByValに書き換えてください。
 Public Declare Function FT_Write Lib "FTD2XX.DLL" (ByVal lngHandle As Integer, ByVal lpszBuffer As String, ByVal lngBufferSize As Integer, ByRef lngBytesWritten As Integer) As Integer

 AD9834の制御データは次のような構成になっています。

初期化コマンド + 周波数データ + フェーズデータ + 初期化コマンド

 最初の初期化コマンドは、読み込むデータの指定を行います。周波数データ、フェーズデータを読み込んだあとで、内部レジスタをリセットすると読み込んだデータが有効になります。最初に周波数データをプログラムしてみます。
 周波数データは次の式で求めることができます。

dstatus = (f0 * 10 ^ 6) / MCLK * (2 ^ 28)

 dstatusはAD9834に渡すためのデータです。MCLKは外部クロック周波数です。今回は50MHzを使っています。文字列に並べるために求められたdstatusをいったん配列に直します。d0に周波数データを0と1のByte表現に直して配列として保存します。

n = Len(Convert.ToString(dstatus, 2))

  For i = 0 To 27
    If n >= i Then
      d0(i) = Convert.ToString(dstatus And 1)
      dstatus = dstatus >> 1
     Else
      d0(i) = 0
     End If
  Next

 d0をさらに1バイトずつに分解し、出力するための文字列を生成しますが、この辺は実際のコードを見てください。プログラムのソースは用意ができ次第、公開する予定です。VB.NETでは、バイトを操作するコマンドがCなどのように用意されていないので、このような手間をかけて処理しています。
 次回はコントロール・プログラムで試作基板を操作しながら、修正点、改良したい機能などを考えてみます。

最近のコメント

カレンダ

2010年2月
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

おすすめ書籍


会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。