- モータドライバ TA7291P
- 赤外線リモコン受信モジュール PL-IRM0208(38kHz)
- 47kの抵抗
FT232RLを使って、Tiny2313と無事にシリアル通信ができましたのでソースを残しておこうと思います。
回路は、こんな感じです。

(私の経験上、初めて使うため)気をつけなければいけないのが、FT232RLのつなぎ方です。ちなみに、FT232RLはUSBのミニBタイプなのでケーブルを忘れずに買っておきましょう。
FT232RLのTXD→Tiny2313のPD0(RXD)
FT232RLのRXD→Tiny2313のPD1(TXD)
FT232RLの7,13ピンは、ともにGNDにつなぐ
FT232RLの15ピンには、5Vの電気を流す。
次に、Tiny2313ですが上記でほとんど接続は終了です。
VCCに5Vの電気を流し、GNDをつなげば終了です。
FT232RLを使うので簡単ですね。
※ちなみに、FT232RLを使うためにはあらかじめ、http://www.ftdichip.com/Drivers/VCP.htmからドライバをダウンロードして、使用するパソコンにインストールしておきます。
次に、マイコンに書き込むプログラムは以下となります。
※Tiny2313用なので他を使う場合には、変更が必要でしょう。
////////////////////////////////////////////////////////////////////////////////////////////////////
#include <avr/io.h>
void sendString(char* pstr)
{
while( *pstr != '\0' )
{
while( !(UCSRA & 0b00100000 ) )
{
}
UDR = *pstr;
*pstr++;
}
}
int main( void )
{
unsigned char x;
UBRRH = 0;
UBRRL = 25;
UCSRB = 0b00011000;
UCSRC = 0b00000110;
while(1) {
while( !(UCSRA & 0b10000000 ) ) {}
x = UDR;
sendString("HELLO\r\n");
while( !(UCSRA & 0b00100000 ) ) {}
UDR = (x++);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
コンパイルして、書き込んだらすべて完了です。
TeraTermなどを使用して、ボーレート2400bps 8bit パリティなし ストップビット1の設定で‘
FT232RLの仮想COMポートにつないでください。
そのコンソールで、Enterキーを押下する度に、HELLOと表示さされれば成功です。
できてみると、意外と簡単でした。
(実はすでに手元でできているのですが)LM35Dから温度を取り込んで、
コンソールに表示させる例を、次に載せようと思います。
上記の内容をもっと基本から詳しく知りたい方は↓の本を買った方が良いです。

試しながら学ぶAVR入門
FT232RL使ってできるのでは?から、数日。
シリアル通信、できるんですね。
はまった点と、反省点
・TXDとTXDをつないでしまっていた。TXDとRXDをつながないといけない。
入力と入力、のような関係になってしまうので、いわゆるストレート接続って感じ??
・内蔵クロックを使っているのだが、ボーレートを9600で動作確認しようとしていた。
4800bpsまでのようでした。内蔵クロックをつかっている身の丈をしりました。
・Cのソースをいきなり使っていた、問題を多く抱えてスタートしていた。
またBASCOM-AVRさんに助けてもらいました。以下のソースで通信できました。
$baud = 4800
Dim A As Long , B As Long
Do
Print : Print "Addition"
Input "A= " , A , "B= " , B
A = A + B
Print "A + B = " ; A
Loop
End
これで、Cに戻ります。あとはプログラムの問題だけなので。
そのときに、回路図とソースを公開しようと思います。
なんかすげー楽しくなってきた!
RS-232Cのレシーバが必要かな?と思っていましたが、ふと妙案?を思いつきました。
78Kマイコンのために購入しておいた、FT232RLというUSB-シリアル変換モジュールをAVRをつなげれば、レシーバいらないのでは?という案です。
調べてみると、なんだかできそうな予感
もし、そうだとしたらFT232RLすごい便利なモジュールなのかもしれません。
とりあえずやってみよう。
D-Subのコネクタが手元にあったので、「簡単にAVRにつなげちゃうかも」と思っていたのですが、うまくはいかないみたいです。専用のレシーバと、それに使うコンデンサが必要のようです。
次回の秋葉原では、以下のものを買ってこよう。
- MAX232A
- コンデンサが、0.1μFのもの。マルツ
- RS232CインターフェースIC SP3232CPZ。秋月だと250円。
- セラミックコンデンサ
- 47Kの抵抗

こんな感じにLCDに温度を表示する回路ができましたー
※見づらいかもしれませんが、タダイマノキオン25.4ドと表示しています。
LM35Dに息を吹きかけたりすると、温度が変わるのが面白いです。
回路はこんな感じになりました。

回路作る前に、オペアンプの勉強をしておいたおかげが比較的スムーズに作れました。
抵抗が来たないですが、47Kが手元になかったので22k+22K+1k+1k+1kとしているからです。
ちなみに、AVRWRTをつないだ状態の回路はこんな感じ

ぐちゃぐちゃです。
ソースは、↓の本を参考にして作成しました。

試しながら学ぶAVR入門
次は、シリアル通信で温度センサをパソコン上のプログラムとやり取りさせるようにしようと思います。
共立エレショップさんから2100円で購入したAVRWRT、ATMEGA88でも使用することができました。Tiny2313とピンは同じみたいです。
【マイコンの左側】
赤(RST)・・・1ピン
【マイコンの右側】
黄(SCK)…19ピン
青(MISO) …18ピン
橙(MOSI)・・・17ピン
ちなみに、茶(GND)と緑(VCC)はつなげなくても動作した。

データシートを参照すると、LM35Dは、このようになっている。
データシートのBOTTOMVIEWを見逃して、vccとGNDを逆にしていたら、変な匂いがしたような気がする。
LM35Dの出力電力は小さいためA/D変換に向かないため、OPアンプを通すのが一般的なようだ。
以前、公開したLCDのソースを再利用して、ATMEGA88を使ってLCDを表示させることに成功しました。lcd.hのポート類をすべてPORTDを使用するにしただけです。
あとは、mainを含むソースで、PORTDを0xffで初期化するだけ。
表示部は確保できたし、いよいよ温度測定だ!
とりあえず、もう寝るので、メモだけ。
回路を本の通りに組んでみたら、確かに数mVの電圧が、数Vになった。
たぶんできていると思われる。オペアンプすごいなー。
オペアンプの数式当てはめて本当にそうなのか計算してみたい。
オペアンプの回路による計算式は、先生代わりにしている↓の本にあります。
部品と、説明が詳しいので必携の1冊ですね。

ゼロから学ぶ電子回路
こんな本もあるもよう。すごいところからの入門だ。

オペアンプからはじめる電子回路入門
試してみた回路はこちらの本にあった。

試しながら学ぶAVR入門