ハンブルソフト サポート掲示板

有限会社ハンブルソフトの製品関連の疑問に答える掲示板です。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  

51 / 58 ツリー    ←次へ | 前へ→

タッチパネル機能について nopnop2002 16/12/10(土) 12:00
こちらでは、動きました。 nari 16/12/10(土) 21:29 [添付]
Re:こちらでは、動きました。 nopnop2002 16/12/11(日) 14:01
Re:こちらでは、動きました。 nopnop2002 16/12/12(月) 0:08
タッチしたときだけ、表示されました。 nari 16/12/12(月) 9:37
Re:タッチしたときだけ、表示されました。 nopnop2002 16/12/12(月) 20:40
Re:タッチしたときだけ、表示されました。 nopnop2002 16/12/13(火) 8:14
Re:タッチしたときだけ、表示されました。 nari 16/12/13(火) 9:26 [添付]
Re:タッチしたときだけ、表示されました。 nopnop2002 16/12/13(火) 22:19
2.4インチTFTのタッチパネルについて色々な事が分か... nopnop2002 16/12/29(木) 8:11 [添付]
情報ありがとうございます。 nari 16/12/29(木) 13:08
Re:情報ありがとうございます。 nopnop2002 16/12/31(土) 12:40
SDカードスロットを使わなければIO0も使用できます。 nari 17/1/2(月) 18:34
Re:情報ありがとうございます。 nopnop2002 16/12/31(土) 13:33
2.8インチのTFT nopnop2002 16/12/29(木) 11:55
Re:2.8インチのTFT nopnop2002 16/12/29(木) 11:58 [添付]

タッチパネル機能について  nopnop2002 WEB  - 16/12/10(土) 12:00 -

タッチパネル機能について教えてください

公開されているcalibrationSaveLoadを参考に
以下のコードを書きました。

先日大垣でピンコンパチの2.8インチTFTに換装したものをお見せしましたが
これだと以下のコードであっさりタッチパネルが動きますが、
標準の2.4インチTFTだと同じコードが動かず、ずっとパネルが押された状態として認識します。

タッチパネルのライブラリはこれを使っています。
https://github.com/PaulStoffregen/XPT2046_Touchscreen

何が問題なのか教えていただけますでしょうか??

/*
* Simple Touch Screen Test
*/


#include <SPI.h>
#include "XPT2046_Touchscreen.h"

#define CS_PIN 16

XPT2046_Touchscreen ts(CS_PIN);
#define TIRQ_PIN 4
//XPT2046_Touchscreen ts(CS_PIN); // Param 2 - NULL - No interrupts
//XPT2046_Touchscreen ts(CS_PIN, 255); // Param 2 - 255 - No interrupts
//XPT2046_Touchscreen ts(CS_PIN, TIRQ_PIN); // Param 2 - Touch IRQ Pin - interrupt enabled polling

void setup() {
Serial.begin(9600);
delay(500);
Serial.println();
Serial.println("Start");
ts.begin();
while (!Serial && (millis() <= 1000));
}

void loopB() {
TS_Point p = ts.getPoint();
Serial.print("Pressure = ");
Serial.print(p.z);
if (ts.touched()) {
Serial.print(", x = ");
Serial.print(p.x);
Serial.print(", y = ");
Serial.print(p.y);
}
Serial.println();
// delay(100);
delay(30);
}

void loop() {
if (ts.touched()) {
TS_Point p = ts.getPoint();
Serial.print("Pressure = ");
Serial.print(p.z);
Serial.print(", x = ");
Serial.print(p.x);
Serial.print(", y = ");
Serial.print(p.y);
Serial.println();
delay(100);
}
}

引用なし

パスワード



・ツリー全体表示

こちらでは、動きました。  nari  - 16/12/10(土) 21:29 -

同じプログラムを入力してみましたところ、
こちらでは動きました。
画面コピーを添付します。

念のため、ヘッダーピンあたりの半田付けを確認してみてください。

あと、ライブラリーのソースコードに Serial.printf()等を挿入し、
値を確認することもできます。

引用なし

パスワード


[添付] :30_sc161210a1.png (278.5KB)


・ツリー全体表示

Re:こちらでは、動きました。  nopnop2002 WEB  - 16/12/11(日) 14:01 -

▼nariさん:
>同じプログラムを入力してみましたところ、
>こちらでは動きました。
>画面コピーを添付します。
>
>念のため、ヘッダーピンあたりの半田付けを確認してみてください。
>
>あと、ライブラリーのソースコードに Serial.printf()等を挿入し、
>値を確認することもできます。

ご確認、ありがとうございます。
画面コピーを拝見しましたが、これは画面をタッチした時だけ、コンソールに出力される(画面をタッチしなければ何も表示されない)
という理解でよろしいでしょうか??

引用なし

パスワード



・ツリー全体表示

Re:こちらでは、動きました。  nopnop2002 WEB  - 16/12/12(月) 0:08 -

▼nopnop2002さん:
>▼nariさん:
>>同じプログラムを入力してみましたところ、
>>こちらでは動きました。
>>画面コピーを添付します。
>>
>>念のため、ヘッダーピンあたりの半田付けを確認してみてください。
>>
>>あと、ライブラリーのソースコードに Serial.printf()等を挿入し、
>>値を確認することもできます。

ILI9341のTFTについていろいろ調べてみたら同じ製品でも
With Touch というページと
Without Touch というページの両方が有ることが分かりました。
もしかしたら2.4インチのTFTには
タッチパネルコントローラは実装されていないのかもしれません。
現在2.8インチTFTを発注しています。
届くのは来年でしょうね

引用なし

パスワード



・ツリー全体表示


はい、そうです。

タッチした時だけ、シリアルモニターに表示されました。

引用なし

パスワード



・ツリー全体表示

Re:タッチしたときだけ、表示されました。  nopnop2002 WEB  - 16/12/12(月) 20:40 -

▼nariさん:
>はい、そうです。
>
>タッチした時だけ、シリアルモニターに表示されました。

そうですか....
正しい動作ですね....
私の持っているTFTモジュールの不具合のようです。
ありがとうございました。

引用なし

パスワード



・ツリー全体表示

Re:タッチしたときだけ、表示されました。  nopnop2002 WEB  - 16/12/13(火) 8:14 -

▼nariさん:
>はい、そうです。
>
>タッチした時だけ、シリアルモニターに表示されました。

おはようございます。

お手元のTFTの裏面のタッチコントローラーICのマーキングを教えていただけないでしょうか??
当方のTFTには
HR2046
1542
のマーキングがあります。

引用なし

パスワード



・ツリー全体表示


こちらのTFTでも、同じマーキングでした。

タッチスクリーンの有無は、LCD側でもわかります。
添付の写真をご覧ください。

引用なし

パスワード


[添付] :40_160622c2m.jpg (33.4KB)


・ツリー全体表示

Re:タッチしたときだけ、表示されました。  nopnop2002 WEB  - 16/12/13(火) 22:19 -

▼nariさん:
>こちらのTFTでも、同じマーキングでした。
>
>タッチスクリーンの有無は、LCD側でもわかります。
>添付の写真をご覧ください。

色々とありがとうございます。
XPT2046_Touchscreen.cpp にデバッグ出力を入れて確認しましたが
TSC2046チップからZ1,Z2の値が正しく取れないみたいです。

SPI通信タイミングの問題かなとも考え
SPI.setClockDivider とか
SPI.setFrequency とか入れてみましたがダメでした。

2.8インチTFTでは正常動作するので、TFTモジュール(TSC2046チップ)の
問題だと思います。
タッチ動作はあきらめます。

お手数をおかけしました。

引用なし

パスワード



・ツリー全体表示

2.4インチTFTのタッチパネルについて色々...  nopnop2002 WEB  - 16/12/29(木) 8:11 -

こんにちは
2.4インチTFTのタッチパネルについて色々な事が分かりましたので報告します。
長文ご容赦ください

その1
2.4インチTFTにはタッチパネルコントローラとして
TSC2046が実装されているものと
XPT2046が実装されているものの2種類が有ります。

その2
タッチパネルライブラリには以下の2種類が有ります
XPT2046_Touchscreen.h //https://github.com/PaulStoffregen/XPT2046_Touchscreen
XPT2046.h // https://github.com/Links2004/XPT2046

その3
XPT2046_TouchscreenライブラリはCSだけを使う方法とCS+T_IRQを使う
2通りの方法が有ります。
XPT2046ライブラリでは必ずCS+T_IRQを使います。

そこで、これ以降、以下のように呼ぶことにします
XPT2046_TouchscreenライブラリでCS(=16)だけを使う方法をCS方式
XPT2046_TouchscreenライブラリでCS(=16)+T_IRQ(=0)を使う方法をIRQ方式
XPT2046ライブラリでCS(=16)+T_IRQ(=0)を使う方法をXPT方式

その4
大垣では2枚のHSES-LCD24を購入しましたが、
写真の様に基盤にはGPIO0のボタンからSP1にジャンパがあるものと
無いものが有りました。
これ以降、GPIO0のボタンからSP1にジャンパがあるものをジャンパあり基盤
無いものをジャンパー無し基盤と呼びます

2.4インチTFTにはタッチパネルコントローラとして
XPT2046が実装されている場合
ジャンパー無し基盤+CS方式:〇
ジャンパー無し基盤+IRQ方式:×
ジャンパー無し基盤+XPT方式:×
ジャンパー有り基盤+CS方式:〇
ジャンパー有り基盤+IRQ方式:〇
ジャンパー有り基盤+XPT方式:〇


2.4インチTFTにはタッチパネルコントローラとして
TSC2046が実装されている場合
ジャンパー無し基盤+CS方式:×
ジャンパー無し基盤+IRQ方式:×
ジャンパー無し基盤+XPT方式:×
ジャンパー有り基盤+CS方式:×
ジャンパー有り基盤+IRQ方式:×
ジャンパー有り基盤+XPT方式:〇

そこで確認ですが
基盤にはGPIO0のボタンからSP1にジャンパがあるものと
無いものが有りますがどちらが正解なのでしょうか??

引用なし

パスワード


[添付] :45_DSCN0039.JPG (127.5KB)


・ツリー全体表示

2.8インチのTFT  nopnop2002 WEB  - 16/12/29(木) 11:55 -

先ほど外出から戻ってみたら2.8インチのTFTが届いていました。
なんと、これはタッチコントローラがついていませんでした。
写真右上のモジュールです。
購入時には注意が必要です。

引用なし

パスワード



・ツリー全体表示

Re:2.8インチのTFT  nopnop2002 WEB  - 16/12/29(木) 11:58 -

▼nopnop2002さん:
>先ほど外出から戻ってみたら2.8インチのTFTが届いていました。
>なんと、これはタッチコントローラがついていませんでした。
>写真右上のモジュールです。
>購入時には注意が必要です。

写真がうまくアップロードできなかったみたいです。
今回もアップロードできるかどうか心配です。

引用なし

パスワード


[添付] :47_touch-1.JPG (317.8KB)


・ツリー全体表示

情報ありがとうございます。  nari  - 16/12/29(木) 13:08 -

ジャンパー付きのボードは、こちらで実験で
使用したものを手違いで販売してしまったものだと
思われます。 もうしわけありません。

ジャンパーがある以外は、違いはありません。
T_IRQをIO0に接続して問題無いか試していた
ものだと思われます。

結局、IO0はSDカードのCSで使用しているので、
使えないということがわかりました。

TSC2046というのは知りませんでした。
情報ありがとうございます。

タッチスクリーンを使用したプログラムをいくつか
作ってみましたが、T_IRQの必要性は感じませんでした。
T_IRQを接続しても、ポーリング時の負荷が若干軽くなる程度では
ないでしょうか。

あとT_IRQが必要になるのは、ArduinoVNC (VNCクライアント)で
タッチスクリーンを使用したい時ですね。
これは、Links2004/XPT2046を使用しているので、T_IRQが接続
されていないと動きません。

引用なし

パスワード



・ツリー全体表示

Re:情報ありがとうございます。  nopnop2002 WEB  - 16/12/31(土) 12:40 -

▼nariさん:
>ジャンパー付きのボードは、こちらで実験で
>使用したものを手違いで販売してしまったものだと
>思われます。 もうしわけありません。

ということはT_IRQを使いたい時には、やはりSP1をショートさせて
T_IRQ=IO4として使うことになりますか??

http://www.humblesoft.com/wiki/?HSES-LCD24/VNC_ILI9341_touch

こちらのページに
SP1をショートさずに、T_IRQとIO0を接続する方法もあります
と書かれていますが、これは通常の製品では使えないという事ですね?

引用なし

パスワード



・ツリー全体表示

Re:情報ありがとうございます。  nopnop2002 WEB  - 16/12/31(土) 13:33 -

▼nariさん:
>TSC2046というのは知りませんでした。
>情報ありがとうございます。

http://www.yoycart.com/Product/536896614188/

上記のページのマーキングのものです。

XPT2046 の互換品のようですが、どうも挙動が違います。

HR2046でデータシートを探してみましたが、どこにもありませんでした。

引用なし

パスワード



・ツリー全体表示


SDカードを使用しなければ、T_IRQをIO0に接続する
して使うことも可能です。

いろいろと、説明が不足していて済みません。

引用なし

パスワード



・ツリー全体表示

51 / 58 ツリー    ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  

 7116
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b3