7 - Segment Display වැඩ කරන්නෙ කොහොමද
සුබ දවසක් යාලුවනේ... ඉතින් අද කතා කරන්නෙ ඔයාලා හැම තැනම දැකලා තියන 8 ඉලක්කම වගේ Display එක වැඩ කරන්නෙ කොහොමද කියලා හොයලා බලන එක.
ඒ වගේම ආඩුයිනෝ හරහා ඒක පාලනය කරලා අපිට අවශ්ය ඉලක්කම් display කරගන්න විදියත් අද ඔයාලට කියලා දෙනවා.
ඇයි ඔය 8 වගේ display එකට 7 - Segment Display කියලා කියන්නේ? යාලුවනේ ඔයාලට මතක ඇති ඔය display එකේ කුඩා ඉරි කෑලි (segment) 7ක් යොදාගෙන තමයි 0 සිට 9 දක්වා ඉලක්කම් සියල්ලම පෙන්වන්නේ. ඒ වගේම සමහර ඉංග්රීසි අකුරුත් පෙන්නන්න පුලුවන් මේ 7 - Segment Display එකෙන්. මේ එක display block එකකට කියන්නෙ Digit එකක් කියලා. ඉතින් ඒ වගේ digit කිහිපයක් එකතුවෙන් ඕනෑම සංඛ්යාවක් හෝ වචනයක් උනත් display කරන්න පුලුවන්.
ඉතින් මේ 7 - Segment Display එකේ එක digit එකකට segment 7ක් තියනවා කියලා දැන් ඔයාලා දන්නවා නේ. ඒ එක් එක් segment එකට වෙන වෙනම LED බල්බ් යොදලා තමයි ඕවා නිශ්පාදනය කරලා තියෙන්නෙ.
ඉතින් දැන් ඔයාලට තේරෙනවා ඇති අපි ඔය LED ටික control කරගත්තා නම් ඕකෙන් ඉලක්කම් අකුරු පෙන්නන එක පැණි කජු වගේ ලේසියි කියලා... (ඒත් ඒක ටිකක් අමාරුයි කෝඩ් ලියනකොට)
හරි. මේ display වල තවත් විශේශත්වයක් තියනවා. සමහර 7 - segment display වල 8 ඉලක්කමට අමතරව පොඩි dot එකක් (.) තියනවා. අන්න ඒකටත් වෙනම LED එකක් දාලා තමයි හදලා තියෙන්නෙ. ඒ කියන්නෙ ඔක්කොම LED 8ක් අපිට පාලනය කරන්න වෙනවා. LED 8 ක් කියන්නෙ හරි නම් මේ එක digit එකකට pin 16ක් තියෙන්න ඕනෙ. ඒත් තියෙන්නෙ pin 10 යි. ඒකට හේතුව LED අටේ ම එක්කෝ (+) ඇනෝඩ හෝ එහෙමත් නැත්නම් (-) කැතෝඩ සියල්ලම එකට සම්බන්ද වෙලා තියෙන්නෙ. මේ පොදු සම්බන්දය pin දෙකකින් පිටතට ලබා දීලා තියනවා. ඊට අමතරව LED වල ඉතුරු pin ටික වෙන වෙනම් පිටතට එනවා. ඒ කියන්නෙ සම්පූර්ණ pin 10ක් තමයි බලාගන්න පුලුවන් වෙන්නෙ.
අනිත් කරුණ තමයි පොදු කරන pin එක ඇනෝඩය ද කැතෝඩය ද කියන දේ අනුව මේ display, common anode 7 - segment display සහ common cathode 7 - segment display ලෙස වර්ග 2ක් වෙලදපොලේ තියෙනවා.
අපි අද කරන්න යන්නෙ arduino එකට මේ display එකක් සවි කරලා 0 සිට 9 දක්වා ඉලක්කම් එකින් එක පෙන්නන්න එක. මෙතනදි භාවිතා කරලා තියෙන්නෙ common anode වර්ගයේ seven segment display එකක්.
පහතින් පෙන්නලා තියෙන්නෙ arduino එකට සම්බන්ද කරන විදිය.
දැන් අපි බලමු code එක ලියන්නෙ කොහොමද කියලා.
මම කලින් කිව්ව විදියට a, b, c, d, e, f සහ g segment වල තියන LED, on / off කිරීම තමයි මෙතනදි කරන්නේ.
උදාහරණයක් විදියට 1 කියන ඉලක්කම පෙන්නන්න ඕනෙ නම් b සහ c කියන LED දැල්වෙන්න ඉඩ දීලා ඉතුරු ඔක්කොම නිවලා දාන්න ඕනෙ. අපි සාමන්යයෙන් භාවිතා කරන digitalWrite() keyword එක උපකාරයෙන් මේ දේ කරගන්න පුලුවන්.
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, HIGH);
ඔය විදියට අනිත් ඉලක්කම් උනත් පෙන්වන්න පුලුවන්.
මෙතනින් download කරගන්න සම්පූර්ණ code එක.
ඉතින් අපි ඔය කතා කලේ එක digit එකක් තියන seven segment display ගැන. ඒත් මේ වගේ digit 2ක් හෝ 4ක් එකතු කරලා හදපු 2 digit seven segment display, 4 digit 7 segment display උනත් වෙලදපොලේ තියනවා.
විශේශ කාරනය තමයි මේවායේ pin සම්බන්ද කරලා තියෙන්නෙ විශේශ විදියකට. සරලව කිව්වොත් 4 digit 7 segment display එකක නම් segment සහ decimal place (.) සම්බන්ද කර තියෙන්නෙ 8 x 4 matrix එකක් විදියට. පහත සටහනෙන් ඒක පැහැදිලි කරගන්න පුලුවන්.
ඒත් ඔය විදියට හැම තැනම පේලි ගනන් code ලිය ලිය ඉන්න බෑ නේ. අනික එක digit එකකින් එහා ගිහින් digit කිහිපයක් පාලනය කරන්න අවශ්ය උනාම වැඩේ තවත් සංකීර්ණය වෙනවා. අන්න ඒ වෙලාවට තමයි custom function වගේ දේවල් ලියලා code එකේ ඕනම තැනකදි call කරන්න පුලුවන් විදියට code එක ලියාගන්නේ.
ඔයාලට මෙතනින් download කරගන්න පුලුවන් මම හදපු custom function එක මේ 4 digit common anode 7 - segment display එක drive කරන්න. මෙතනදි අපිට Arduino එකේ pins 12ක් අවශ්ය වෙනවා. a, b, c, d, e, f, g segment සදහා මම පාවිච්චි කලේ arduino එකේ D2 සිට D8 වෙනකන් තියන pins. Decimal place එක සම්බන්ද කලේ D9 pin එකට. Arduino එකේ D10 සිට D13 දක්වා pin වලට පිලිවෙලින් display එකේ common anode pin වන D1, D2, D3 සහ D4 යන pins සම්බන්ද කරගත්තා.
පහතින් බලාගන්න පුලුවන් wiring diagram එක.
මේ තියෙන්නෙ මම පරිපතය අටවගත්ත විදිය. මම පරිපතය වැඩ කරනකොට segment වල එලිය ටිකක් අඩුයි වගේ පෙනුන නිසා මේකට දාලා තිබුන 220 Ohm resistor ටික ඉවත් කරා.
ඔයාලා code එක බැලුවම තේරුම් යාවි මම ssd_display(number); කියලා වෙනම custom function එකක් හදලා තියනවා. මෙතනදි ඔයාලට number කියන එක වෙනුවට 0 සිට 9999 දක්වා ඕනම අගයක් ලබා දීලා එම අගය 7 - segment display එකේ පෙන්වන්න පුලුවන්. තවදුරටත් පැහැදිලි කරගන්න code එක හොදින් අද්යනය කරන්න.
මේ විදියට තමයි code එක වැඩ කරන්නෙ.
එහෙනම් අදට ලිපිය ඉවරයි. ගැටලු තියනවා නම් comment එකක් දාන්න. අනිත් අයටත් බලන්න share කරන්න. සුබ දවසක්.
Comments
Post a Comment