محترف إزيس6: شاشة عرض 7 قطع (Afficheur 7 segments) و الشريحة الإلكترونيّة ( circuit intégré 4511)

في البداية يجب مراجعة الدرس السّابق (شاشة عرض 7 قطع) و سنواصل على ذاك الدرس أكثر تعمّق كمعرفة أنواع أخرى من شاشة عرض 7 قطع ومعرفة الشرائح الإلكترزنيّة ( circuit intégré 4511) للقتليص من إستعمال منافذ الأردوينو

يحتوي برمجيّة إزيزعلى عدّة أنواع من شاشة عرض و مختلف الألوان و الأشكال و بالبحث عن كلمة (7SEG) نجد

أنواع الشّاشات

هناك برقم واحد أو أكثرمن الرقم من ذات أنود مشترك أو كاتود مشترك و بإختلاف ألوانها.
كما رأينا لأجزاء القطع شاشة عرض 7 قطع المتكوّنة من a , b , c , d , e , h , g
كما هو مبيّن في الصّورة

طريقة إستعمال الشّاشة

كما رأينا بالنسبة للرقم 1 نقوم برمجة صمام b  و c  فقط التي تضيء.
و بالنسبة للرقم 2 نقوم ببرمجة a وb وg وe وd
و نفس الطريقة بالنسبة لبقيّة الأرقام 3 و 4 و 5 و 6 و 7 و 8 و 9 و 0
بالنسبة لهذا الدرس سنقوم برمجة أردوينو بطريقة أخرى فقط لمعرفة إنّ في البرمجة يمكنّ أن تكون أكثر من طريقة صحيحة للمشكل الواحد

في ما يلي دارة كهربائيّة تحتوي على

  1. لوحة أردوينو أونو(ARDUINO UNO)
  2. شاشات عرض مختلفة الألوان ذات كاتود مشترك
    (7SEG-COM-CAT-BLUE و 7SEG-COM-CAT-GRN و
    7SEG-COM-CATHODE و 7SEG-MPX1-CC
  3. مقاومات كهربائيّة (RES)

سنعتمد الدرس السابق ( مصادر التغذيّة الكهربائيّة في برمجيّة Proteus ISIS و إستعمالهم في لوحة الأردوينو) لتسهيل ربط الدّارة الكهربائيّة
بالنسبة للمنافذ
بالنسبة الصمام a  سيتمّ ربطه بالمنفذ 2
بالنسبة الصمام b  سيتمّ ربطه بالمنفذ 3 
بالنسبة الصمام c  سيتمّ ربطه بالمنفذ 4 
بالنسبة الصمام d  سيتمّ ربطه بالمنفذ 5 
بالنسبة الصمام e  سيتمّ ربطه بالمنفذ 6 
بالنسبة الصمام f  سيتمّ ربطه بالمنفذ 7 
النسبة الصمام g  سيتمّ ربطه بالمنفذ 8 

في ما يلي الدّارة الكهربائيّة

لم يتم وضع مقاومات كربونيّة لشاشات عرض 7 قطع لأنّ المنفذ أردوينو يوفّر 5 فولط تزوّد 3 صمامات مشعة(صمام واحد لكل شاشة) بالتالي
5/3=1.6 فولط
غير ضروري من وضع مقاوم كربوني لتخفيض من شدّة التيّر الكهربائي
سنقوم ببرمجة عدّاد يقوم بالعد بالنظام  السدادي عشر
للتذكير فقط بالنظام ااثنائي و نظام العشري و نظام السداسي عشر

نظام ااثنائينظام العشرينظام السداسي عشر
000
111
1022
1133
10044
10155
11066
11177
100088
100199
101010A
101111B
110012C
110113D
111014E
111115F

طريقة ظهور الأرقام

بهذه الطريقة نريد بها ظهور الأرقام

بالنسبة لصمام a يضيء بالنسبة للأرقام التالية
إذا كان الرقم 0 أو 2 أو 3 أو 5 أو 6 أو 7 أو 8 أو 9 أو 10 أو 12 أو 14 أو 15
المنفذ الخاص بحرف a (المنفذ 2) يكون مرتفع

بالنسبة لصمام b يضيء بالنسبة للأرقام التالية
إذا كان الرقم 0 و 1 و 2 و 3 و 4 و 7 و8 و 9 و 10 و 13
المنفذ الخاص بحرف b (المنفذ 3) يكون مرتفع

بالنسبة لصمام c يضيء بالنسبة للأرقام التالية
إذا كان الرقم 0 و 1 و 3 و 4 و 5 و 6 و 7 و 8 و 9 و 10 و 11 و 13
المنفذ الخاص بحرف c (المنفذ 4) يكون مرتفع

بالنسبة لصمام d يضيء بالنسبة للأرقام التالية
إذا كان الرقم 0 و 2 و 3 و 5 و 6 و 8 و 9 و 11 و 12 و 13 و 14
المنفذ الخاص بحرف d (المنفذ 5 )يكون مرتفع

بالنسبة لصمام e يضيء بالنسبة للأرقام التالية
إذا كان الرقم 0 و 2 و 6 و8 و10 و11 و12 و13 و14 و15
المنفذ الخاص بحرف e (المنفذ 6) يكون مرتفع

بالنسبة لصمام f يضيء بالنسبة للأرقام التالية
إذا كان الرقم 0 و 4 و5 و6 و8 و9 و10 و11 و12 و14 و15
المنفذ الخاص بحرف f (المنفذ 7) يكون مرتفع

بالنسبة لصمام g يضيء بالنسبة للأرقام التالية
إذا كان الرقم 2 و 3 و4 و5 و 6 و8 و 9 و10 و11 و13 و14 و15
المنفذ الخاص بحرف g (المنفذ 8) يكون مرتفع

كود البرمجة

int x ;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
for (x = 0; x < 16; x++) {
//a
if ((x == 0) || (x == 2) || (x == 3) || (x == 5) || (x == 6) || (x == 7) || (x == 8) || (x == 9) || (x == 10) || (x == 12) || (x == 14) || (x == 15))

{
digitalWrite(2, HIGH);
}
//b
if ((x == 0) || (x == 1) || (x == 2) || (x == 3) || (x == 4) || (x == 7) || (x == 8) || (x == 9) || (x == 10) || (x == 13))

{
digitalWrite(3, HIGH);
}
//c
if ((x == 0) || (x == 1) || ( x == 3) || (x == 4) || (x == 5) || (x == 6) || (x == 7) || (x == 8) || (x == 9) || (x == 10) || (x == 11) || (x == 13) ) {
digitalWrite(4, HIGH);
}
//d
if ((x == 0) || (x == 2) || ( x == 3) || (x == 5) || (x == 6) || (x == 8) || (x == 9) || (x == 11) || (x == 12) || (x == 13) || (x == 14))

{
digitalWrite(5, HIGH);
}
//e
if ((x == 0) || (x == 2) || (x == 6) || (x == 8) || (x == 10) || (x == 11) || (x == 12) || (x == 13) || (x == 14) || (x == 15) ) {
digitalWrite(6, HIGH);
}
//f
if ((x == 0) || (x == 4) || (x == 5) || (x == 6) || (x == 8) || (x == 9) || (x == 10) || (x == 11) || (x == 12) || (x == 14) || ( x == 15))

{
digitalWrite(7, HIGH);
}
//g
if ( (x == 2) || (x == 3) || (x == 4) || (x == 5) || (x == 6) || (x == 8) || (x == 9) || (x == 10) || (x == 11) || (x == 13) || (x == 14) || ( x == 15) )

{
digitalWrite(8, HIGH);
}
delay(800);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
}

شاهد هذا الفيديو

شريحة 4511 (ِcircuit intégré 4511)

إن شاشة عرض 7 قطع تتطلّب 7 منافذ للوحة الأردوينو و هو مقلق عند إنجاز المشروع.
هناك عدّة طرق لتقليص من عدد المنافذ من بينها شريحة (4511) التي تحوّل من نظام الثنائي (4 منافذ) إلى نظام العشري (7 منافذ متطابقة مع شاشة عرض 7 قطع)
مثال رقم 5 يماثله بالنظام الثنائي (0101) تقابله (a وc و d وf و g مساوية 1 و البقية أصفار (b و e)

مثال رقم 9 يماثله بالنظام الثنائي (1001)

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

بإستعمال لوحة أردوينو(ARDUINO UNO) أونو و دارة مدمجة 4511(4511)
ننجز عدّاد من 0 إلى 9
في ما يلي الدّارة الكهربائيّة التالية

كود البرمجة

int pinA = 13;
int pinB = 12;
int pinC = 11;
int pinD = 10;
int x;
void setup() {
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT); pinMode(pinD, OUTPUT);
}
void loop() {
for (x = 0; x <= 10; x++) {
if (x == 0) {
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
}
if (x == 1) {
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
}
if (x == 2) {
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
} if (x == 3) {
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
}
if (x == 4) {
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
}
if (x == 5) {
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
}
if (x == 6) {
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
}
if (x == 7) {
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
}
if (x == 8) {
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
}
if (x == 9) {
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
}
delay(500);
}
}

شاهد هذا الفيديو لمعرفة كيفيّة تشغيل الدّارة

أي إقتراحات أو أسئلة حول هذا الدرس إضغط هنا