الرئيسية / متحكمات / أردوينو / شاشة اللمس واستخدامها مع الاردوينو
UNO-R3-MEGA328P-for-font-b-arduino-b-font-2-4-Inch-TFT-font-b-Touch

شاشة اللمس واستخدامها مع الاردوينو

 شاشة اللمس Touch Screen تعد أحدى أهم الطفرات في عالم صناعة الأجهزة الالكترونية , فمن الأجهزة الخلوية , إلى الحواسيب المحمولة Tablet  ,و غيرها الكثير جعلت هذه الشاشات التفاعل بين الأجهزة و المستخدم أكثر سهولة و متعة .
touchscreen
تقسم هذه الشاشة  نوعين رئيسين شائعين هما :
 PSC0911_H2_119
1) الشاشات المقاومية Resistive Touch :و التي تعتمد على مبدأ ال Strain Gauge كأساس لعملها , حيث يحدث الضغط على مكان ما على الشاشة يحدث تغيير في الفولتية على الخرج تعتمد على مقاومة المكان الذي تم الضغط عليه و بالأتجاهين x,y “مبدأ مقسم الجهد Voltage Divider ” .

about_resistive - Copy

2) الشاشات المكثفية Capcitance Touch و هي الشائعة حالياً لوضوح صورتها و دعمها لمزايا عدة مثل اللمس المتعدد .
458674-steve_jobs_iphone
ستيف جوبس و هو يحمل اول هاتف من آيفون يدعم اللمس المتعدد عام 2007م
و الآن إن كنت تسائل نفسك هل تستطيع بناء واحدة بنفسك فالجواب نعم , في هذه المقالة سأشرح عن كيفية برمجة أحدى اسهل و أرخص شاشات اللمس و التي تستخدم في اجهزة الننتيندو للألعاب .

لنبدأ تنفيذ تجربتنا نحتاج إلى :

 

1) بطاقة اردوينو

2)شاشة اللمس Nintendo DS Touch Screen
3) الحاضنة الخاصة بالشاشة Nintindo ds breakOut
Breakout - Copy

4) اسلاك توصيل .

5) قلم شاشة “اختياري و الهدف منه الدقة في التحديد ”

التوصيل :
 Schematic
و هذه صورة اوضح للتوصيل
DS-Touch-Arduino
البرمجة :

البرمجة ترتكز على التالي : في حال اردنا قراءة الاحداث السيني x axis نقوم بجعل x1  و x2 كمخارج Output احدهما Vcc و الأخر Gnd فيما يقوم y1  و y2 بدور المداخل التي تقرأ هذا التغيير , و العكس صحيح بالنسبة للأحداثي الصادي Y axis .

الكود :


// Code for Nintendo Ds touch screen .

//Connect the breakout with arduino like following:
//  y1  >>> A0
//  x2  >>> A1
//  y2  >>> A2
//  x1  >>> A3
int x_axis=0;
int y_axis=0;
int x1=17;
int x2=15;
int y1=14;
int y2=16;
void setup()
{
  Serial.begin(9600);
}
void Get_x_axis(){
  // make x1&x2 output and y1&y2 input 
  pinMode(x1,OUTPUT);
  pinMode(x2,OUTPUT);
  pinMode(y1,INPUT);
  pinMode(y2,INPUT);
  //this Make the x axis supplied by 5V and the Output
  //Must be show on Y1 .
  digitalWrite(x1,1);
  digitalWrite(x2,0);
  delay(5);
  x_axis=analogRead(y1); 
}
void Get_y_axis(){
  // make x1&x2 output and y1&y2 input 
  pinMode(x1,INPUT);
  pinMode(x2,INPUT);
  pinMode(y1,OUTPUT);
  pinMode(y2,OUTPUT);
  //this Make the x axis supplied by 5V and the Output
  //Must be show on Y1 .
  digitalWrite(y1,0);
  digitalWrite(y2,1);
  delay(20);
  y_axis=analogRead(x2); 
  delay(10);
}

void loop(){
Get_y_axis();
Get_x_axis();
Serial.println("  x  ,  y  ");
Serial.print(x_axis,DEC);
Serial.print("   ");
Serial.println(y_axis,DEC);
delay(500);
}


يمكنك فتح ال Serial Monitor لرؤية الاحداثيات .

Read

المصدر : Genotronex

عن حمزة الخزاعلة

مدير موقع كهربجي | مهندس بور ( هندسة القوى الكهربائية ) وباحث في مواضيع التحكم الالكتروني

شاهد أيضاً

Neonode-Airbar-8

كيف تحول أي شاشة عادية الى شاشة تعمل باللمس؟

تريد شراء جهاز كمبيوتر محمول شاشة تعمل باللمس، ولكن لا يمكن تحمله؟ ولكن ماذا لو …

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

error: thank you for using Kahrabje website ^^