This post is also available in: TürkçeEnglishAzerbaycan Türkcesi
- В Микро С я написал резистивную сенсорную панель по контролю за библиотекой с 4 выходами.
- Для использования панели я использовал микроэлектронные цепи. Схему цепи вы можете посмотреть ниже
- Для того, чтобы ознакомиться с функциями библиотеки просмотрите видео и не забудьте ознакомиться с инструкцией. ;)
- Сенсорная панель работает от +5В
- Во время просмотра видео , вы увидите функции « написать» и « пиксели», которые относятся к написанной мною библиотеке. Поэтому, если вы используете стандартные библиотеки микрок, вы должны сами прописать данные функции или же скачать их из моей библиотеки ( MikroC GLCD Библиотека экрана– (SAP1024B – T6963C)).
- Важно! – В случае , если вы используете аналого- цифровой цикл , рекомендованное напряжение будет являться для вас напряжением питания, из-за чего на линии могут возникать помехи, вам необходимо учесть данные помехи и очистить вашу цепь от помех или же использовать следующую схему (+5v -5v 3.3v SWITCH MOD REGULATOR)
- Ваши вопросы и замечания ,вы можете изложить в качестве комментария
Материалы необходимые для создания цепи.
- 1 штука- 4 Pin FPC соединение ( для выхода сенсорной панели).
- 2 штуки- 100 нф полиэстровых конденсатора
- 2 штуки- 47 К сопротивление
- 8 штук-1 К сопротивление
- 2 штуки-10 К сопротивление
- 3 штуки –ВС546 транзисторы
- 2 штуки- ВС556 Транзисторы
Комментарий! Выхода сенсорных панелей должны быть включены в цепь с использованием подходящих разъёмов, ни в коем случае не старайтесь использовать припой! Потому что во время припоя вы можете расплавить мягкие желатиновые наконечники, а соответственно ваша сенсорная панель станет не рабочей. Данный разъем вы можете приобрести в мастерских по ремонту мобильных телефонов.
Принципиальная электрическая схема

коды
//DOKUNMATİK PANEL PİNLERİ////////// sbit surucu_a at RA5_bit; //surucu_a pini sbit surucu_b at RB4_bit; //surucu_b pini sbit analog_x at RA0_bit; //analog port ucu pini sbit analog_y at RA1_bit; //analog port ucu pini
sbit surucu_a_Direction at TRISA5_bit; //surucu_a pini
sbit surucu_b_Direction at TRISB4_bit; //surucu_b pini
sbit analog_x_Direction at TRISA0_bit; //analog port ucu pini
sbit analog_y_Direction at TRISA1_bit; //analog port ucu pini

//pixel fonksiyonu içerisinde yazan ölçüler en ideal kalibrasyon ölçüleridir(x,y) //kalibrasyon ölçüleri ile ilgili yukarıdaki resmi inceleyebilirsiniz void kalbire_et() { do { SAP1024_YAZI_YAZMA(1,8,"1.Noktaya Dokunun"); SAP1024_PIXEL((GENISLIK_D*20)/100,(YUKSEKLIK_D*80)/100,1); }while(D_PANEL_KALIBRASYON_NOKTA_1()!=1); sap1024_lcd_temizle();
do
{
SAP1024_YAZI_YAZMA(1,8,»2.Noktaya Dokunun»);
SAP1024_PIXEL((GENISLIK_D*20)/100,(YUKSEKLIK_D*20)/100,1);
}while(D_PANEL_KALIBRASYON_NOKTA_2()!=1);
sap1024_lcd_temizle();
do
{
SAP1024_YAZI_YAZMA(1,8,»3.Noktaya Dokunun»);
SAP1024_PIXEL((GENISLIK_D*80)/100,(YUKSEKLIK_D*20)/100,1);
}while(D_PANEL_KALIBRASYON_NOKTA_3()!=1);
sap1024_lcd_temizle();
do
{
SAP1024_YAZI_YAZMA(1,8,»4.Noktaya Dokunun»);
SAP1024_PIXEL((GENISLIK_D*80)/100,(YUKSEKLIK_D*80)/100,1);
}while(D_PANEL_KALIBRASYON_NOKTA_4()!=1);
sap1024_lcd_temizle();
}
while(1) { x1=D_PANEL_KONUM_X();//dokunulan noktanın x konumunu verir y1=D_PANEL_KONUM_Y();//dokunulan noktanın y konumunu verir
if(D_PANEL_DOKUNULDU_MU(50)==0)//panele dokunuldumu?
{
SAP1024_PIXEL(x1,y1,0);
}
SAP1024_PIXEL(x1,y1,1);
delay_ms(5);
}
while(1) { if(D_PANEL_KORDINAT_KONTROL(100,100,10,10)==1) { SAP1024_YAZI_YAZMA(5,14,"resme bastin"); delay_ms(500); SAP1024_LCD_TEXT_TEMIZLE(); }
inttoSTR(D_PANEL_KONUM_X(),yazi);
SAP1024_YAZI_YAZMA(5,8,yazi);
inttoSTR(D_PANEL_KONUM_Y(),yazi);
SAP1024_YAZI_YAZMA(5,10,yazi);
}
char SAPTRIS at trisd;//data portları char SAPDATA_giris at portd; char SAPDATA_cikis at latd; sbit SAP1024_RD at RC1_bit ; //GLCD RD UCU BAĞLANTI PİNİ sbit SAP1024_CE at rc2_bit ; //GLCD CE UCU BAĞLANTI PİNİ sbit SAP1024_CD at Rc3_bit ; //GLCD C/D UCU BAĞLANTI PİNİ sbit SAP1024_RST at Rc4_bit ; //GLCD RST UCU BAĞLANTI PİNİ sbit SAP1024_FS at Rc5_bit ; //GLCD FS UCU BAĞLANTI PİNİ sbit SAP1024_WR at RC0_bit ; //GLCD wr UCU BAĞLANTI PİNİ sbit SAP1024_RD_Direction at TRISC1_bit; //GLCD RD UCU BAĞLANTI PİNİ sbit SAP1024_CE_Direction at TRISC2_bit; //GLCD CE UCU BAĞLANTI PİNİ sbit SAP1024_CD_Direction at TRISC3_bit; //GLCD C/D UCU BAĞLANTI PİNİ sbit SAP1024_RST_Direction at TRISC4_bit; //GLCD RST UCU BAĞLANTI PİNİ sbit SAP1024_FS_Direction at TRISC5_bit; //GLCD FS UCU BAĞLANTI PİNİ sbit SAP1024_WR_Direction at TRISC0_bit; //GLCD FS UCU BAĞLANTI PİNİ
//DOKUNMATİK PANEL PİNLERİ//////////
sbit surucu_a at RA5_bit; //dokunmatik panel surucu_a pini
sbit surucu_b at RB4_bit; //dokunmatik panel surucu_b pini
sbit analog_x at RA0_bit; //dokunmatik panel analog port ucu pini
sbit analog_y at RA1_bit; //dokunmatik panel analog port ucu pini
sbit surucu_a_Direction at TRISA5_bit; // surucu_a pini
sbit surucu_b_Direction at TRISB4_bit; // surucu_b pini
sbit analog_x_Direction at TRISA0_bit; //analog port ucu pini
sbit analog_y_Direction at TRISA1_bit; //analog port ucu pini
void kalbire_et()
{
do
{
SAP1024_YAZI_YAZMA(1,8,»1.Noktaya Dokunun»);
SAP1024_PIXEL((GENISLIK_D*20)/100,(YUKSEKLIK_D*80)/100,1);
}while(D_PANEL_KALIBRASYON_NOKTA_1()!=1);
sap1024_lcd_temizle();
do
{
SAP1024_YAZI_YAZMA(1,8,»2.Noktaya Dokunun»);
SAP1024_PIXEL((GENISLIK_D*20)/100,(YUKSEKLIK_D*20)/100,1);
}while(D_PANEL_KALIBRASYON_NOKTA_2()!=1);
sap1024_lcd_temizle();
do
{
SAP1024_YAZI_YAZMA(1,8,»3.Noktaya Dokunun»);
SAP1024_PIXEL((GENISLIK_D*80)/100,(YUKSEKLIK_D*20)/100,1);
}while(D_PANEL_KALIBRASYON_NOKTA_3()!=1);
sap1024_lcd_temizle();
do
{
SAP1024_YAZI_YAZMA(1,8,»4.Noktaya Dokunun»);
SAP1024_PIXEL((GENISLIK_D*80)/100,(YUKSEKLIK_D*80)/100,1);
}while(D_PANEL_KALIBRASYON_NOKTA_4()!=1);
sap1024_lcd_temizle();
}
void main()
{
char yazi[8];
int x1,y1;
//GENEL PORT AYARLARI
ADCON0=0x09;
ADCON1&=0xF0;
cmcon|=7;
//——————
SAP1024_INIT(240,128,8);
ADC_Init();
D_PANEL_INIT(240,128,0,1);
kalbire_et();
SAP1024_DORTGEN(100,100,110,110,1,1);
while(1)
{
x1=D_PANEL_KONUM_X();
y1=D_PANEL_KONUM_Y();
if(D_PANEL_DOKUNULDU_MU(50)==0)
{
SAP1024_PIXEL(x1,y1,0);
}
SAP1024_PIXEL(x1,y1,1);
delay_ms(5);
if(D_PANEL_KORDINAT_KONTROL(100,100,10,10)==1)
{
SAP1024_YAZI_YAZMA(5,14,»resme bastin»);
delay_ms(500);
SAP1024_LCD_TEXT_TEMIZLE();
}
inttoSTR(D_PANEL_KONUM_X(),yazi);
SAP1024_YAZI_YAZMA(5,8,yazi);
inttoSTR(D_PANEL_KONUM_Y(),yazi);
SAP1024_YAZI_YAZMA(5,10,yazi);
}
}
Важные замечания:
- Для того, чтобы понять как работают коды, обязательно посмотрите видео урок.
- Предоставленные примеры являются максимально упрощенными, вы можете с их использованием создать более сложные системы.
Необходимые документы:
Мои документы
- Calibration in touch-screen systems
- Calibration procedure for a resistive touchscreen system based on the STMPE811
- MMSE-Based Multipoint Calibration Algorithm for Touch Screen Applications
- Study on Calibration Algorithm of Embedded Touch Screen
- Mikroelektronikanın Dokunmatik Panel Yazısı
- BC546 Datasheet
- BC556 Datasheet