نمایشگرهای 7 سگمنت (Seven Segment Displays) برای نشان دادن و برقراری ارتباط بصری اعداد بسیار مفید است و به طور گسترده در مدارهای مختلف استفاده می شود. در این مقاله در مورد صفحه نمایش سون سگمنت و انواع آن و سپس اتصال سون سگمنت به آردوینو توضیح داده می شود.
نمایشگر 7 بخشی
همانطور که از نامش پیداست شامل هفت LED برای نمایش اعداد عددی یا اعداد اعشاری هگزا است و شامل یک قابلیت اضافه با نمایش یک نقطه برای اعشار.
در اینجا هر LED با پایانه های جداگانه و آند یا کاتد مشترک به منبع تغذیه متصل می شود.
این یک ماژول سون سگمنت است که برخی از آنها دارای دو یا بیشتر از هفت بخش هستند که برای پیکربندی پایه مناسب باید به دیتاشیت آن مراجعه کرد. در اینجا هر بخش شامل یک LED است، برخی از نمایشگرهای بزرگ دارای آرایه LED برای هر بخش هستند.
رابط سون سگمنت آردینو
در اینجا نمایشگر سون سگمنت کاتد مشترک برای آزمایش در نظر گرفته شده است و پایانه های مشترک 3، 8 از طریق مقاومت 220Ω یک وات به زمین متصل می شوند و هر پایانه به پایه های دیجیتال آردوینو متصل می شود و این پایه های دیجیتال به عنوان خروجی اختصاص داده می شوند.
این جدول برای نمایشگر سون سگمنت معمولی از نوع کاتد مشترک معتبر است و می توانید با اتصال پایه های 3 و 8 به زمین و پایه های دیگر به +Vcc عدد نمایش داده شده را تغییر دهید.
کد سون سگمنت آردینو
int segment_a = 7; // declare the variables
int segment_b = 6;
int segment_c = 5;
int segment_d = 4;
int segment_e = 3;
int segment_f = 2;
int segment_g = 1;
int segment_dp = 0;
void setup()
{
pinMode(segment_a,OUTPUT); // configure all seven segment pins to outputs
pinMode(segment_b,OUTPUT);
pinMode(segment_c,OUTPUT);
pinMode(segment_d,OUTPUT);
pinMode(segment_e,OUTPUT);
pinMode(segment_f,OUTPUT);
pinMode(segment_g,OUTPUT);
pinMode(segment_dp,OUTPUT);
}
void loop() {
for (int i = 0; i < 10; i++)
{ // make count 0 - 9
switch(i)
{ // switch statemet to display the number
case 0: // set relevent segments HIGH and others LOW to display Number 0
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,HIGH);
digitalWrite(segment_e,HIGH);
digitalWrite(segment_f,HIGH);
digitalWrite(segment_g,LOW);
digitalWrite(segment_dp,LOW);
break;
case 1: // set relevent segments HIGH and others LOW to display Number 1
digitalWrite(segment_a,LOW);
digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,LOW);
digitalWrite(segment_e,LOW);
digitalWrite(segment_f,LOW);
digitalWrite(segment_g,LOW);
digitalWrite(segment_dp,LOW);
break;
case 2: // set relevent segments HIGH and others LOW to display Number 2
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,LOW);
digitalWrite(segment_d,HIGH);
digitalWrite(segment_e,HIGH);
digitalWrite(segment_f,LOW);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW);
break;
case 3: // set relevent segments HIGH and others LOW to display Number 3
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,HIGH);
digitalWrite(segment_e,LOW);
digitalWrite(segment_f,LOW);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW);
break;
case 4: // set relevent segments HIGH and others LOW to display Number 4
digitalWrite(segment_a,LOW);
digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,LOW);
digitalWrite(segment_e,LOW);
digitalWrite(segment_f,HIGH);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW);
break;
case 5: // set relevent segments HIGH and others LOW to display Number 5
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,LOW);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,HIGH);
digitalWrite(segment_e,LOW);
digitalWrite(segment_f,HIGH);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW);
break;
case 6: // set relevent segments HIGH and others LOW to display Number 6
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,LOW);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,HIGH);
digitalWrite(segment_e,HIGH);
digitalWrite(segment_f,HIGH);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW);
break;
case 7: // set relevent segments HIGH and others LOW to display Number 7
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,LOW);
digitalWrite(segment_e,LOW);
digitalWrite(segment_f,LOW);
digitalWrite(segment_g,LOW);
digitalWrite(segment_dp,LOW);
break;
case 8: // set relevent segments HIGH and others LOW to display Number 8
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,HIGH);
digitalWrite(segment_e,HIGH);
digitalWrite(segment_f,HIGH);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW);
break;
case 9: // set relevent segments HIGH and others LOW to display Number 9
digitalWrite(segment_a,HIGH);
digitalWrite(segment_b,HIGH);
digitalWrite(segment_c,HIGH);
digitalWrite(segment_d,HIGH);
digitalWrite(segment_e,LOW);
digitalWrite(segment_f,HIGH);
digitalWrite(segment_g,HIGH);
digitalWrite(segment_dp,LOW);
break;
}
delay(1000); // delay for 1 second.
}
}
اگر از نمایشگر سون سگمنت نوع آند مشترک استفاده کنید، کد بالا را به صورت LOW به HIGH و HIGH به LOW تغییر دهید.