الشاشة الرقمية TM1637

فيديو يشرح استخدام TM1637

حول المشروع:

هذا الدرس يشرح كيفية توصيل وبرمجة شاشة رقمية SEGMENT 7 المعروفة ب TM1637 والتي تحتوي على أربع خانات. تتميز TM1637 بعدد منافذ اقل من 7 SEGMENT التقليدية.
 

الدائرة الكهربائية :

يجب تغذية الشاشة بالطاقة عن طريق توصيلها بكل من المنافذ VCC و GND. ثم توصيل أطراف الشاشة  DIO , CLK  لأي منافذ رقمية في الأردوينو مثال : 2،3  شاهد الصورة بالأسفل:

تثبيت المكتبة الخاصة بالشاشة TM1637

يوجد مكتبات عديدة يمكنها تشغيل الشاشة TM1637  .  ولكننا ننصح بمكتبة :  TM1637Display.h

و مبرمج هذه المكتبة هو :   

Avishorp

هذه المكتبة موصى بها من موقع الأردوينو الرسمي.

أيضا يمكنك تحميل المكتبة كملف مضغوط (zip)  من هذا الرابط:

 

التمرين 1 : عرض رقم ثابت على شاشة TM1637

تم تسمية الكائن (dd) اختصاراً .

 

الأمر :  setBrightness  يستخدم لضبط شدة إضاءة الشاشة ،  اختر أي رقم 0-15 .

 

  الأمر  showNumberDec  يستخدم بسهولة لعرض أي قيمة رقمية عادية ، و يمكنك اضافة بعض الخيارات ، مثل : تشغيل الاصفار على اليسار أو عمل إزاحة للرقم ليظهر في المنتصف مثلا.  

الأمر     showNumberHex  يمكنه عرض الأرقام و بعض الحروف الخاصة بالقيم السداسية عشر  Hexadecimal .  

الأمر  clear  يستخدم لإخفاء كل ما يظهر على الشاشة.

				
					#include 
#define CLK 12
#define DIO 11
TM1637Display dd(CLK, DIO);
void setup(){
  dd.setBrightness(15);  // choose value 0-15   
}

void loop(){
    dd.showNumberDec(31);              delay(1000); dd.clear();
    dd.showNumberDec(32,true);         delay(1000);  dd.clear();
    dd.showNumberDec(33,false,3);      delay(1000);  dd.clear();
    dd.showNumberHexEx(0xabcd);     delay(1000);  dd.clear();
    dd.showNumberHexEx(0xef);       delay(1000);  dd.clear();
    dd.showNumberHexEx(0xef,0,1,0); delay(1000);  dd.clear();  //last number on right is the column
    dd.showNumberHexEx(0xef,0,1,1); delay(1000);  dd.clear();  // 1  is the 1st from the left
    dd.clear();
}
				
			

التمرين 2 : عرض قيمة الساعة على الشاشة

لاحظنا أنه من الصعب التحكم بالنقطتين الرأسيتين (:)  في وسط الشاشة .   في المثال التالي نكتب لك كود مقترح لعرض الساعات و الدقائق ، و عرضها على الشاشة بشكل مناسب باستخدام الأمر : 

 

dd.showNumberDecEx()

انظر للمثال :

				
					#include 
#define CLK 12
#define DIO 11
TM1637Display dd(CLK, DIO);
int m=0;
int h=0;
void setup(){
  dd.setBrightness(15);  // choose value 0-15
}
void loop(){
  int x=m+(h*100);
  dd.showNumberDecEx(x, 64, true);delay(500);
  dd.showNumberDecEx(x, 0 , true);delay(500);
  m=m+3;
  h=h+1;
}
				
			

التمرين 3: عرض قراءة مقاومة متغيرة على شاشة TM1637

ملاحظة : في الصورة لم نوصل الطاقة للشاشة . لكن يجب عليك توصيلها .

				
					#include 
#define CLK 2
#define DIO 3
TM1637Display dd(CLK, DIO);
void setup(){
  dd.setBrightness(15);  // choose value 0-15   
}
void loop(){
  int x=analogRead(A7);
  dd.showNumberDec(x);
  delay(1000);
  dd.clear();
}
				
			

انتقل إلى المتجر

انتقال إلى الأعلى