リモコンで実際に送信してみた・・・続き

ソニーのテレビリモコンも確認

SONYテレビ点灯を確認スケッチはDEMOの例そのままでいける。”A90″を0.04秒おきにを3回送ると電源ON/OFFができるようだ。じつは、受信テストでは2回しか検出することができなかった。サンプルになかったらできなかったかもしれない。

実際の波形がどうなっているか、PicoScopeで受信の波形を測定してみた。波形を見ると本当に3回送っていることを確認することができた。

回路の電流値を確認

次に回路が計算どおりにできているかテスターを使って確かめてみた。回路の電流は計算値より低かった。抵抗を測ってみると、1つ1つの抵抗はほぼ出ているのに、合成抵抗は計算より高めになるようだ。L12170はIF値を200mAにしたいので、抵抗を6個並列にしようかと思う。IF値が130mAだがとりあえずこれで行くことにしよう。

リモコンテスト 実際に送信してみた

赤外線リモコン送信テスト

赤外線LEDが点灯したことをお確認したので、実際に送信してみた。スケッチは
スケッチ例 → IRremote → IRSendDemo
NEC照明用にプログラムを変更 、前に取得したコードを書き込む。Arduinoで確認成功。

ESP32でLチカ

将来的にWi-fiで接続し制御するようにしたいので、ここから送信はESP32を使用することにする。Arduinoのプログラムが動作し、Wi-fiやBluetoothも使用できる。Arduino IDEに拡張すれば使えるようになる。今回買ったのは開発ボードESP32-DevKitC。インストールはいろいろなサイトが親切に書いているのでここでは割愛する。
まずはLチカで点灯することを確認。持っているブレッドボードに対してちょっと大きいので、直接ソケットタイプの線を挿して接続した。スケッチはピン番号がArduinoと違うので、そこを変更するだけ。今回は26番ピンに接続した。

ESP32でリモコン送信

これもピン番号を変えるだけ。IRsendを定義する時にピン番号を記入する。
このスケッチでは、照明の明るさが1つ上がる

Arduinoで受信確認

Arduinoが空いたので送信したデータを受信して確認した。
スケッチ例 → IRremote → IRrecvDemo
変更はいらなず、そのまま書き込むだけ。

リモコンと同じデータを受信することを確認した。照明に向けると5秒毎に1段階ずつ照明が明るくなることを確認した。

まとめ

赤外線LEDから実際にデータを送って切り替わることを確認した。ライブラリがあるのですごく簡単だった。また、ESP32を初めて使用したがArduinoからの移行があまりにも簡単で驚いた。開発ボードの値段が1500円ぐらいと価格も安いので、この先もいろいろなことに使えそうだと思った。

リモコンにトライ トランジスタを購入しまずはLチカを試してみた

トランジスタPN2222を選定
前回、赤外線LED L12170のIF値が大きく、ON/OFFできなかったので、もっと容量が大きいとトランジスタPN2222を選定した。
データシートに書いてあるL12170の標準IF値は200mAでVFは1.45V。 PN2222のコレクタ電流Icは600mAなので余裕がある。
電流制限抵抗にかかる電圧は Rv = 3.3V-1.45V = 1.85V
抵抗値 R = 1.85V / 0.2 A = 9.25 Ω
容量が大きくなるので、47Ωを並列に4つ接続して 抵抗が11.75Ωになるようににした。

Fritzingで回路図を作成

トランジスタに抵抗とLED接続するだけなので、回路図を書かなくても配線できるが、最近Fritzingを導入したので、図面を書いてみた。Fritzingはブレッドボード上に実際の部品と同じような感じに書けるので、実際に配線する時に迷いなく組み立てることができて便利だ。今回のようにちょっとしたテストでも図面を書いておけば、後で確認することもできる。

Lチカで点灯を確認

LEDの点灯を確認するために、ArduinoでLチカをしてみた。Lチカはよく入門サイトや本に載っているやつである。一応スケッチは下記の通り。前回は分からなかったが、赤外線といえども角度によっては点灯時に裸眼で確認できた。前回同様Webカメラで確認した。

次回

前回つまづいた赤外線LED点灯はできるようになった。やはりちゃんと容量を満たした部品が必要だ。次回はいよいよ、リモコンの赤外線送信テストだ。

Arduinoでリモコンにトライ

電子工作をやりたくなり、電子工作入門でよく取り上げられる赤外線リモコンを作ることにした。リビングに置いてテレビとシーリング照明のON/OFFを制御したい。そしてAmazon Echoから音声で制御するところまでやりたい。それぐらいのことができる商品はネットで5千円ぐらいから売っているとは思うが、自作でやってみようと思う。

とは言ってもリモコンはやったことが無い。まずは実験でArduinoで制御してみることにした。下記サイトで詳しく載っていた。
Arduinoで赤外線リモコンの値を読み取り、送信する方法 : 試行錯誤な日々

まずは、リモコンから送信された値を確認。サイトにかかれている方法で全く問題なくできた。サイトでは赤外線リモコンモージュールはSPS-444を使っていたが、SPS-440-1でも問題なくできた。試したのはNECのLEDシーリング照明だった。

できなかったのはLED送信の方だ。5mm赤外LED L12170 高出力・高速応答: LED(発光ダイオード) 秋月電子通商-電子部品・ネット通販を買って試したのだが全然光らない。全然サイトの例で赤外線LEDの型式が載っているにもかかわらず適当に買ったのが悪かった。LEDの電流値はどれも20mAだろう思ってスペックを全然見てなかった。もう一度秋月電子のページ確認してみるとL12170なんと300mAもあった。GPIOからじゃ無理だ。むしろ壊れなくてよかった。5Vを直接かけたら光った。

今は、300mAを切り替えられるトランジスタを持っていないので後日挑戦することにする。

シリアル変換ケーブルTTL-232R-5Vを試してみた。

電子工作がまたやりたくなった。
前回RS-485通信をやってから、また電子工作をやってみたくなった。やってみたいテーマは、リモコンを作ってテレビや照明を消すこと。電子工作の例でよくのっているやつだ。早速秋月電子で赤外線の受信素子や赤外線LEDを購入した。

ついでに、以前に欲しいと思っていた、USBシリアルケーブルを思わず購入したのでこれを先に試すことにした。型式はTTL-232R-5V。商品が届いたが、取説類は全然入っていなかった。秋月電子のHPで書かれていたPDFで接続のしかたは分かった。試しにMacbookとArduino Unoでシリアル通信をすることにしたが、意外と苦労した。

商品が届いたが、取説類は全然入っていなかった。秋月電子のHPで書かれていたPDFで接続のしかたは分かった。試しにMacbookとArduino Unoでシリアル通信をすることにしたが、意外と苦労した。

のでこれを先に試すことにした。型式はTTL-232R-5V。商品が届いたが、取説類は全然入っていなかった。秋月電子のHPで書かれていたPDFで接続のしかたは分かった。試しにMacbookとArduino Unoでシリアル通信をすることにしたが、意外と苦労した。

MacはScreenで接続

-l /dev/tty.*
でポートを調べて
$ screen /dev/tty.usbserial-FTAKBZ4I
で接続

散々苦労したが結果的に悪かったのは(わからなかったことは)Arduinoシリアルモニタは受信データを表示しない事だ。確認するには受信したデータをSerial.print()関数などで、シリアルに送らなければ鳴らない。
スケッチは以下の通り。

これが分からずに配線をいろいろ入れ替えたこともあり、RXとTXがどっちがどっちだか分からなくなった。結局正解は最初からやってたこの接続だった。

Arduino PC TTL-232R-5V 通信方向
1 : TX →  5 : RXD(黄) ArduinoからPCへ
0 : RX →  4 : TXD(橙) PCからArduinoへ
GND 0 : GND(黒)

今回いろいろ試行錯誤してわかったこと

  • Ardunio通信設定のデフォルトはデータ長8bit,ストップビット1bit,パリティなし
  • これをscreenで設定するには
    $ screen /dev/tty.usbserial-FTAKBZ4I 9600,cs8,-parenb,-cstopb
  • screenの終了方法
    control + a を押してからk 。終了してよいかどうか聞かれるのでyを押す

今後

何年か前にもやってははずなのにすっかり忘れている。screenについてはもっと調べたほうが良さそうだ。

RS485/RS422トランシーバ送信テストをやってみた。

何年か前に買ったRS485/RS422トランシーバ「LTC1785CN8」を買ってずっとそのままだったのを気づいた。LTC1785CN8はLINERD TECHNOLOGY社が発売していて、マイコンなどからTTLレベルと差動入出力を変換してくれるICだ。買ったのはおそらく2、3年前ぐらいだったと思うが、何のために買ったかは忘れてしまった。

RS485なのできちんとできているかどうか確認するのが大変だ。確認方法としては、Arduinoのシリアルから送信し、三菱電機QシリーズのシリアルコミュニケーションユニットQJ71C24Nのシリアルモニタで確認することにした。三菱電機のシーケンサは仕事で使っているので問題ない。電子工作は最近やってなく、Arduino使い方を思い出すところからだったので、結構大変だった。

昨年、macbookのSSDを交換した時に、まっさら状態からやり直したのでArduinoのIDEを入れるところからやった。IDEはただダウンロードしてインストールするだけなので問題なかった。

回路は下記の通り

スケッチは下記の通り

2秒に1回ひたすら”Hello, world”と出力するだけの回路だ。
2:REはレシーバ出力イネーブル。3:DEはドライバ出力イネーブル。両方ともディスエーブルの場合、回路は低消費電力シャットダウン状態になるとのこと。
PLCがわはプログラムは不要でパラメータの設定だけ。シリアルコミュニケーションモニターで確認できた。
次は受信をテストだ。あと、RS485を使って何をするか考えよう。