もうこれで最後にするだったんですが、ようやく格安Banggood液晶 2.4 Inch TFT LCD Shield Touch で動きました。これは前にも紹介したBanggoodで販売されている2.4 Inch TFT LCD Shield Touchです。なんと送料込みで6.49$です。前に作ったAdadruitのものと比較するとなんと1/10です。
これは表示速度もAdafruitとほとんど同じですごく早いです。ただ難点はこのShildはアナログポートのA0からA4までを使っていて、普通のUnoを使うとアナログポートは1個足らなくなることです。ではA0からA7があるNanoを使うと、せっかくのShildの意味がなくなってしまいます。
それで前回紹介した、Uno互換機を使いA6とA7を使うことによって完成させました。
タッチシールドの感度は若干鈍いようですが十分動きます。
ドライバは
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_TFTLCD.h>
#include <TouchScreen.h>
ピンの設定は
#define YP A3
#define XM A2
#define YM 9
#define XP 8
#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 920
#define TS_MAXY 940
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
ad9850のピン設定は
const int RESET=12;
const int SDAT=10;
const int FQ_UD=11;
const int SCLK=7;
にしました。
なおAdafruitのTFTLCDに表示する特殊文字はCP437で表示されるのがわかりました。
tft.println(char(16));のようにすると表示されます。
それとオリジナルのsetup()にあるanalogReference(INTERNAL);をコメントアウトしないとタッチパネルが動作しないようです。これコメントアウトしたらアナログの入力が変化するみたいですが、今のとこ影響ないみたいです。
なおこのアナライザの部品で苦労するのは50Ωと5KΩの抵抗ですが、Bispaというところで買えます。そのほかは649Ωは680Ωでいけます。ゲルマニュームダイオードはAA143ですが、1N60では使えなくはないですが、出力が低いです。ヤクオクで売られている日立の1N34AならばAA143とほとんど変わらないです。オペアンプMCP6002はLM358Nあたりで代用できます。もともとSWRの値自体は市販のアナライザに比較してあまり正確ではないので、最低のSWRを見つける目的で使用するのがいいでしょうね。なんといっても最大の利点は安いことです。
コメント
コメント一覧 (5)
にゃん太郎さんの、このHPに刺激され、
このSWR計を作りたくなり、最近Ardinoの勉強をはじめております。
Banggoodから、にゃん太郎さんと同じ2,4"TFTを買い、試行錯誤して
サンプルスケッチは動作させることが出来ましたが、移植するまでの実力が無いので、再度2.2"SPI液晶を注文しました。
DG7EAOさんOrgrの"Ucglib.h"を使ったスケッチをDLして再挑戦しておりますがコンパイルでだんまりとなってしまい連日苦戦しております。
ご教授頂けたら幸いです。
手順としては以下の通りです。
①作成中のスケッチファイルと同じフォルダーにUcglib.hをコピーする。
②"ucg.h"ファイルを含む"utility"フォルダーをフォルダーごとコピー
③コンパイル実行時にてエラーとなる。
↓
In file included from sketch_jan15a.ino:23:0:
Ucglib.h:61:25: fatal error: utility/ucg.h: No such file or directory
#include "utility/ucg.h"
compilation terminated~コンパイル時にエラーが発生しました。
④そこで次に
"ucglib.h"の61行目付近 #include "utility/ucg.h"→ #include "ucg.h"に変更。
⑤utilityフォルダーから"ucg.h"を1つ上位のフォルダー(作成中のスケッチファイル、Ucglib.hと同じところ)へ全てのファイルをコピー。
再度コンパイル実施。
スケッチをコンパイルしています。表示後→プログレスバーが1/3付近で、止まってしまいます。
※PCハングアップにはなっていません。
次に、どこで止まってしまうのか、調べたところ、
Ucglib_ILI9341_18x240x320_SWSPI ucg(/*sclk=*/ 10, /*data=*/ 11, /*cd=*/ 6 , /*cs=*/ 5, /*reset=*/ 4);
をメモ化すると、コンパイルが通ります。
大変恐縮ですが、ご助言頂けたら幸いです。
併せて、#include <Adafruit_GFX.h>と <Adafruit_TFTLCD.h>
を使ったTFT液晶のスケッチを掲載、又は頂きたく
ぶしつけなお願いで申し訳ありませんが、何卒、よろしくお願いします。
YM
でもUgclibよりもadafruit.hの方をお勧めします。
スケッチは
http://nyan.ldblog.jp/AD9850_ROTARY.zip
説明書は
http://nyan.ldblog.jp/JR5IZIanarlzer.pdf
においておきます。
なおこのバージョンはSW付きロータリーエンコーダを使っていてタクトSWは使っていません。SWを押すとScanスタートで長押しするResetするようにしています。動作は前の記事のYoutubeをご覧ください。
タクトSWでバンドを選択するバージョンが必要できたらまた連絡ください。
""でくくった参照ファイル(#include "xxxh")は、スケッチと同じローカルに置かなければならないものだと思っていました。
早速、試してみたところ、無事コンパイルが通りました。
今手元には2.4"TFT液晶しか無いので動作確認は出来ませんが、今からSPI液晶到着が楽しみです。
2.4"TFT液晶の方も、使われていないSDカード端子やDDSのリセット端子を潰して代わりにAN端子を1つ移せば、普通のUnoでも使えるかも知れませんね。
色々教えて頂き、ありがとうございます。
今後共よろしくお願いします。
2.4液晶シールドを買われたんですね。ではこのスケッチも
http://nyan.ldblog.jp/banggood_tftlcdshiled.inoにおいておきます。このシールドは2.2液晶よりも結構高速で動くのでお勧めです。安いのでこれを購入してぜひ試してみてください。
http://www.banggood.com/UNO-R3-ATmega328P-CH340-Micro-Mini-USB-Board-Compatible-Arduino-p-968867.html
またこのシールドは実験したところD2からD13まできちんと接続されていないと、動作しないようです。最初の電源投入時イニシャライズで使われているようです。
操作性も良いし、画面デザインも恰好良いし、最高ですね。
本当にありがとう御座います。
最初、何も知らずにUnoと液晶シールドのセット品を買ったのですが
シールドの配線を切り貼りするのも大変ですし
安さにひかれ、早速教えて頂いたMicroMiniUSBも購入することにします。
お影様で念願のSWR計を安価に作ることが出来、アンテナの自作に拍車が掛かりそうです。
当方、長年PIC16Fのアッセンブで悪戯していましたが、限界を感じてしまい、年末からardinoに乗り換えた次第です。
当面は、頂いたスケッチを先生にして勉強させて頂きます。
電子部品関係も最近ではAriexpressやBangGoodで買うことが多くなりました。
これからも、にゃん太郎さんのブログ楽しみに読ませて頂きます。
何から何まで本当にお世話になりました。