الرئيسية / متحكمات / أردوينو / شاشة اللمس واستخدامها مع الاردوينو
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

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

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

شاهد أيضاً

arduinoynlead01

كيف تحمي الأردوينو من التلف بأبسط المكونات !!

إذا كنت تريد أن تحمي دائرة الأردوينو من التلف عند توصيل المحركات والمرحلات Relays او …

أضف تعليقاً

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

error: thank you for using Kahrabje website ^^