الخميس، 10 يوليو، 2014

رسم الأحرف العربية على الشاشة الكريستالية LCD

طباعة كلمة "رمضان" بالعربية على شاشة     ( lcd)





هذه المقالة هي جزء من مبادرة عرب دوينو Arabduino
للتعرف على المبادرة و كيف تشاركنا بمقالاتك و تجاربك من خلال الرابط




في هذه التجربة ساقوم بكتابة كلمة " رمضان " على LCD  بأستخدام المصفوفات + طباعة  "I <3 ramadan "
ولانه لا يقوم بالكتابة بالعربي , سوف ارسمه رسما بالمصفوقات حيث يتكون من 40 خلية, 5 أعمدة , 8 صفوف.

الأدوات التي تحتاجها :-



التوصيل :

أولا يجب تعرف طريقة التوصيل + مداخل الاسلاك  كما في الصورة 



اما كيفية ترسم على الشاشة سوف يكون كالتالي 
مثلا حرف الميم يكون تعبير بالصفر عند الفراغ , واحد  عند الرسم 



يمكن استخدام هذا البرنامج للرسم و الحصول على المصفوفات 

استخدمنا الأمر createchar الخاص في مكتبة الشاشة الكريستالية الخاصة بالأردوينو حيث نقوم ببناء مصفوفة 5*8 و اخترنا هذا الاحداثي للمصفوفة لان كل خانة في الشاشة الكريستالية مكونة من ثمانية صفوف و خمسة اعمدة و نقوم بعدها باستدعاء هذا الأمر لكي نعطي لكل مصفوفة رقم ليسهل على المكتبة التعامل معها .

للمزيد عن هذا الأمر من خلال الرابط هنا 

البرنامج :
/*This to write an Arabian character on LCD 1602
Code written for Arabduino initiative 
You can share Your project on genotronex blog
read More : 
http://www.genotronex.com/p/blog-page_6281.html
http://www.genotronex.com/
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,4,5,6,7);

// هنا نرسم الاشكال :
byte heart[8] = {
  0b00000,
  0b01010,
  0b11111,
  0b11111,
  0b11111,
  0b01110,
  0b00100,
  0b00000
};

byte Lam[8] = {
  0b10000,
  0b10000,
  0b10000,
  0b10000,
  0b10000,
  0b10001,
  0b11110,
  0b00000
};

byte mem[8] = {
  0b00000,
  0b00000,
  0b00000,
  0b00110,
  0b01001,
  0b11110,
  0b00000,
  0b00000,
};

byte thae[8] = {
  0b00100,
  0b00000,
  0b00000,
  0b01110,
  0b10001,
  0b11111,
  0b00000,
 
 
  0b00000,

};
byte non[8] = {
  0b00100,
  0b00000,
  0b00000,
  0b10001,
  0b10001,
  0b10001,
  0b01110,
  0b00000
};

byte raa[8] = {
  0b00000,
  0b00000,
  0b00010,
  0b00001,
  0b00001,
  0b00010,
  0b00100,
  0b01000
};
void setup() {
  lcd.createChar(1, heart);
  lcd.createChar(2, Lam);
  lcd.createChar(3, mem);
  lcd.createChar(4, thae);  
  lcd.createChar(5, raa);  
  lcd.createChar(6, non);  

  lcd.begin(16, 2);
  
  //هنا  نطبع الكلام.
  lcd.print("I "); 
  lcd.write(1);
  lcd.print(" ramadan ");
   lcd.setCursor(0,1);
//,  جرب احذف الكود وشوف كيف تكون النتيجة ح يتلخبط الكلام   { lcd.setCursor(0,1)}
 //بس لو كتبت الكود , ح ينزل  سطر, وكلام يكون واضح 
  lcd.write(6);
  lcd.write(2);
  lcd.write(4);
  lcd.write(3);
lcd.write(5);
}

void loop() {}






كاتبة المقال : ياسمين الشكماك
الجمهورية الليبية
للتواصل مع الكاتبة : reyojy@gmail.com

4 التعليقات :

  1. هو تقريبا اكونت الكاتبة مش صحيح؟؟؟
    ثانيا هو انا ماينفعش اعمل اكتر من 8 حروف تقريبا؟؟؟
    اصلي كنت بفكر اعمل مكتبة عربية بس غالبا عاوز اتأكد من حوار ال 8 حروف دا

    ردحذف
    الردود
    1. من الواضح ان اخره 8 حروف فعلا من 0 الى 7

      حذف
    2. نعم .
      Custom char في الأردوينو مهيئ لتفعيل فقط 8 رموز خاصة .
      يمكن تعديلها من داخل مكتبة ال lcd في ملفات الأردوينو لتحصل على دعم أكبر "هذا يستهلك من ذاكرة ال SRAM لذلك هي محددة تلقائياً ب 8 رموز"

      حذف

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.