دمج الوحدات · الدرس 3.5
الشاشة سباعية المقاطع ذات أربع خانات (4 Digit 7-Segment Display)
العودة إلى الدروسالمسح السريع للخانات
ستتعلم استخدام شاشة (4 Digit 7-Segment Display) بأربع خانات. في شاشة الخانة الواحدة (4 Digit 7-Segment Display)، يصل المصعد المشترك بالطاقة، والمهبط المشترك بـ GND. في الأربع خانات تستخدم الأطراف المشتركة لاختيار الخانة المعروضة.
تعمل خانة واحدة في اللحظة نفسها، لكن سرعة المسح وبقاء أثر الرؤية يجعلان العين ترى الأرقام كلها، دون ملاحظة الفواصل.
المكونات المطلوبة
- لوحة أردوينو (ELEGOO UNO R3) ولوحة تجارب (Breadboard) 830 نقطة.
- مسجل الإزاحة (74HC595 IC) وشاشة سباعية المقاطع بأربع خانات (4 Digit 7-Segment Display).
- أربع مقاومات (Resistor) 220Ω وثلاثة وعشرون سلكًا ذكر إلى ذكر (Male to Male Jumper Wires).


التوصيل


البرنامج
افتح ملف البرنامج Four_Digital.ino من ملفات الدرس في بيئة Arduino IDE. بعد إتمام التوصيلات، وصّل لوحة أردوينو (UNO R3 Board) بالحاسوب بكابل توصيل (USB Cable)، ثم اضغط زر Upload (رفع) لنقل البرنامج إلى اللوحة وتشغيله عليها.
إذا تعذر نقل البرنامج إلى اللوحة، فراجع قسم «رفع البرنامج ومعالجة خطأ الاتصال» في الدرس 1.5 «وميض LED وإضافة المكتبات» للتحقق من اتصال USB واختيار نوع اللوحة والمنفذ التسلسلي في بيئة Arduino IDE.
الكود
Four_Digital/Four_Digital.ino
//www.elegoo.com
//2016.12.12
int latch=9; //74HC595 pin 9 STCP
int clock=10; //74HC595 pin 10 SHCP
int data=8; //74HC595 pin 8 DS
unsigned char table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c
,0x39,0x5e,0x79,0x71,0x00};//Display digital data
void setup() {
pinMode(latch,OUTPUT);
pinMode(clock,OUTPUT);
pinMode(data,OUTPUT);
}
/* The most common method of using 74CH595
* latch->LOW : Begin transmitting signals.
* shiftOut(dataPin, clockPin, bitOrder, value)
* dataPin: the pin on which to output each bit. Allowed data types: int.
* clockPin: the pin to toggle once the dataPin has been set to the correct value. Allowed data types: int.
* bitOrder: which order to shift out the bits; either MSBFIRST or LSBFIRST. (Most Significant Bit First, or, Least Significant Bit First).
* value: the data to shift out. Allowed data types: byte.
* latch->HIch : The end of the transmission signal.
*/
void Display(unsigned char num)
{
digitalWrite(latch,LOW);
shiftOut(data,clock,MSBFIRST,table[num]);
digitalWrite(latch,HIGH);
}
void loop() {
Display(1);
delay(500);
Display(2);
delay(500);
Display(3);
delay(500);
Display(4);
delay(500);
Display(5);
delay(500);
Display(6);
delay(500);
Display(7);
delay(500);
Display(8);
delay(500);
Display(9);
delay(500);
Display(10);
delay(500);
Display(11);
delay(500);
Display(12);
delay(500);
Display(13);
delay(500);
Display(14);
delay(500);
Display(15);
delay(500);
}