Çalışmalarım - Yazılarım -Təcrübələrinin

PIC 18 ile Davamlı Sensor Panel İstifadəsi – MikroC

This post is also available in: Türkçe English Русский

  • MikroC içində yazdığım 4 tel çıxışlı davamlı tip sensor panelleri nəzarət kitapxanasıdır
  • Paneli işlətmək üçün mikroelektronikanın dövrəsini istifadə ettim. Dövrə sxemasını aşağıda tapa bilərsiniz.
  • Kitapxanada yerləşən funksiyalar haqqında məlumat almaq üçün videonu və istifadə təlimatlarına baxmayi unudmayin.;)
  • Sensor paneller +5v ilə işləməktədir
  • Sensor kitapxana videosunda görəcəyiniz  “yazı yazma”  ve “pixel “ unksiyaları mənim yazdığım kitapxanaya aiddir. Bu səbəbdən standart mikroc kitapxanası istifadə edirsinizsə o kitapxananın funksiyalarını yazmalısınız yada burdan endirərək menim kitapxanamı istifadə edə bilərsiniz( MikroC GLCD EKRAN KÜTÜPHANESİ – (SAP1024B – T6963C))
  • ƏHƏMİYYƏTLİ! – Analog Digital çevrim ilə bağlı olan istinad gərginliyi təchizat gərginliyi olduğu uçün bu xəttə yaşanacaq müdaxilələr negativ şəkildə əks olunacaqdır bu səbəblə təchizat dövrənizi müdaxilələrdən təmizləməniz lazımdır yada bu dövrəyi istifadə edəbilərsiniz(+5v -5v 3.3v SWITCH MOD REGULATOR)

Dövrə Hazırlaması Üçün Lazımlı Materiallar

    1. 1 ƏDƏD – 4 Pin FPC 1. birləşdirici( sensor panel çıxışı üçün)
    2. 2 ƏDƏD – 100 nf Polyester Kondansatör
    3. 2 ƏDƏD – 47K Direnç
    4. 8 ƏDƏD – 1K Direnç
    5. 2 ƏDƏD – 10K Direnç
    6. 3 ƏDƏD – BC546 Tranzistor
    7. 2 ƏDƏD – BC556 Tranzistor

QEYD! –Sensorlu panellərin çıxışlarını mütləq uyğun rozetka ilə dövrəyə bağlayın qətiyyətlə lehim etməyə çalışmayın.Çünkü lehim etdiyinizdə bir çatışmazlıq olarsa incə jelatin uclar əriyəcəyi üçün sensrolu panellər istifadə edilməz hala gələcəkdir. Bu rozetkayi mobil telefonu təmircilərindən təmin ede bilərsiniz

 


Dövrə Sxeması

rezistif 4 tel dokunmatik panel devresi
rezistif 4 tel sensorlu panel dövrəsi

Kodlar

Pin Tanımlama Kodları
//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

Ən ideal kalibrləmə ölçüləri
Ən ideal kalibrləmə ölçüləri
Kalibrləmə Ön Funksiya Kodları
//pixel funksiyası içində yazan ölçülər ən ideal kalibrləmə ölçüləridir(x,y)
//kalibrləmə ölçüləri ilə bağlı yuxarıda ki şəkli incələyə bilərsiniz
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();
}

Sensorlu Lövhə Kodları
while(1)
{
x1=D_PANEL_KONUM_X();//toxunan nöqtənin x mövqəsini verir
y1=D_PANEL_KONUM_Y();//toxunan nöqtənin y mövqəsini verir

if(D_PANEL_DOKUNULDU_MU(50)==0)//panele toxunuldu mu?
{
SAP1024_PIXEL(x1,y1,0);
}

SAP1024_PIXEL(x1,y1,1);
delay_ms(5);
}

Düymə nümunəsi və Mövqə Yazdırma Kodları
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);
}

Tüm Program Kodları
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;

//ÜMUMİ PORT PARAMETRLƏRİ
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);
}
}


Əhəmiyyətli Qeydlər  

  • Kodların tətbiqini görmək üçün mütləq video dərsi izləyin
  • Verilən nümunələr sadə şəkildə izah edilmişdir mütləq daha inkişaflı sistemler dizayn edin.
  • Bütün funksiyaların detalları üçün istifadə təlimatını oxuya bilərsiniz

Lazımlı fayllar


Sənədlər




soru-cevap

 

About ERCAN KOÇLAR

Çalışmalarım uşaqkən başladı odikolonlu kağızları yandırmaq, dərmanları bir-birinə qatmaq kimi dəyişik dənəylərim var idi. Lise 1 . sinifə gəldim. Kimya kitabında elektroliz ilə suyun hidrogen və oksigenə ayrıldığı və hidrogenin yandığını yazırdı, o zamanlarda ağlım almırdı sudan necə yanan bir şeyin çıxacağını,....Devamını okumak için tıklayınız ;)