මදක් රැදෙන්න…

Arduino පාඩම 09 – PC එකෙන් 4-pin RGB LED එකක් කොන්ට්‍රොල් කරමු.

මම අද කියලා දෙන්නේ PC එකේ ඉදන් 4-pin RGB LED එකක් control කරනහ් හැටි. 4-pin RGB LED එකක නමේ තියෙන විදිහටම පින් 4 ක් තියෙනවා. මේ පින් 4 න් එකක් පොදු අග්‍රය වෙනවා. මේ RGB LED එකක් හැදිලා තියෙන්නේ. Red, Green, Blue color කියන LED 3කින්. ඉතුරු අග්‍ර 3 මේ LED 3 නේ ඉතුරු අග්‍රය. මේ පොදු අග්‍රය + හෝ – වෙන්න පුලුවන්. ඒක තීරණය වෙන්නේ ඔයා LED එක මිලදී ගන්න විදිහ අනුව. ප්‍රධාන වශයෙන් RGB LED එකක වර්ග 2 ක් තියෙනවා. Common anode හා common cathode තමයි ඒ වර්ග 2 ක.  Common anode එකක පොදු අග්‍රය +, common cathode එකක පොදූ අග්‍රය -. RGB LED එකක ක්‍රියාකාරිත්වය ගැන කතාකලොත් මේකේ එක එක අග්‍රවලට ලබාදෙන වෙනස් වෝල්ටීයතාව අනුව අපිට එක එක පාට ගන්න පුලුවන්. හරියට Photoshop එකේදී පාට තෝරනවා වගේ.

මෙතැනදී අපි කරන්න ඕන වැඩ 2 ක් තියෙනවා. ඒ තමයි arduino code එක ලියන එක හා අනිත් එක PC program එක ලියන එක. මම PC program එක ලියන්නේ VB.Net වලින්. අපි මුලින්ම arduino code එක ලියමු. මම මෙතැනදී Common anode හා common cathode කියන වර්ග 2 ටම arduino code එක ලියනවා. මුලින්ම අපි common cathode LED එකට code එක ලියමු.

Common cathode LED එකට arduino code එක ලියමු.

මේකට මුලින්ම පහලින් තියෙන විදිහට circuit එක හදාගන්න. 2.2 KOhm resistor එකක් තමයි දාලා තියෙන්නේ.

දැන් පහල තියෙන code එක arduino එකට upload කරන්න.

මම මෙතැනදී 2 පේලියෙන් Serial communication එක start කරලා තියෙනවා,  ඊළඟට 3,4,5 පේලිවලින් පිලිවලින් 9, 10, 11 කියන pin 3 න OUTPUT විදිහට setup කරගෙන තියෙනවා.

9 වෙනි පේලියෙන් if condition එක දාලා serial port එක හරහා data එනවද කියලා බලනවා. data එනවනම් if එක ඇතුලේ තියෙන දේවල් ටික ක්‍රියාත්මක වෙනවා. 11, 12, 13 වෙනි පේලිවලින් කරන්නේ r,g,b කියන නම් වලින් int variable 3 ක් හදාගෙන තියෙනවා. ඒවගේම Serial port එක හරහා එන data ඒ ඒ variable වලට වෙන වෙනම යොමුකරලා තියෙනවා.

15, 16, 17 පේලිවලින් ඒ ඒ  r,g,b කියන value එකට අදාලව 9, 10, 11 කියන pin වලින් voltage output කරලා තියෙනවා.

***වැදගත්***

මම මෙතනදී කියන්න ඕනේ වැදගත් දෙයක් තියෙනවා.

මම PC program එකෙන් Arduino එකට එවන්නේ යම් කිසි වර්ණයකට අදාල RGB value එක එක පේලියට. උදාහරණයක් විදිහට රෝස පාටට අදාල RGB value එක වෙන්නේ 215,15,200 යි.

ඒ කියන්නේ රතු – 215, කොළ – 15, නිල් – 200 කියන සංයෝජනයෙන් තමයි රෝස පාට හැදිලා තියෙන්නේ.  මෙම මේ RGB value එක 215,15,200 ආකරයට තනි පේලියක් විදිහට තමයි Arduino එකට යවන්නේ. නමුත් 11, 12, 13 වෙනි පේලි වලදී  ලියලා තියෙන code වලින් values ටික වෙනවෙනම හදුනාගන්නවා.
උදාහරණයක් විදිහට කලින් කියපු රෝස පාටට අදාල RGB value එක වෙන 215,15,200 කියන value set එක තනි පේලියක් විදිහට arduino එකට එවපුවහම 11, 12, 13 පේලිවලින් r = 215, g = 15, b = 200 විදිහට හදුනාගන්නවා.

Common anode LED එකට arduino code එක ලියමු.

මේකට මුලින්ම පහලින් තියෙන විදිහට circuit එක හදාගන්න. 2.2 KOhm resistor එකක් තමයි දාලා තියෙන්නේ.

දැන් පහල තියෙන code එක arduino එකට upload කරන්න.

මේ code එකත් කලින් code එක වගේම තමයි. වෙන්සකට තියෙන්නේ 15, 16, 17 පේලිවලදී r,g,b කියන variable වලින් ලැබෙන අගයන් 255 න් අඩුකරලා යොදගෙන tතියෙන එක. එහෙම කරන්නෙ Common anode RGB LED එකක පොදු අග්‍රය + නිසා සුදුසු විභව අන්තරයක් ගොඩනගා ගන්න ඕනෙ නිසයි.

PC program එක ලියමු.

මම මේක ලියන්නේ VB.Net වලින්, ඒකට Visual studio කියන software එක ඕනේ. මුලින්ම Visual studio open එක කරගෙන අලුත් VB.Net project එක ලබාගන්න.

දැන් පහල තියෙන විදිහට Software එකේ interface එක design කරගන්න.

ඊළඟට පහල තියෙන විදිහට Properties window එක භාවිත කරලා property හදාගන්න.

Button 1 : Text – Connect Name – btnCon
Button 2 : Text – Disonnect Name – btnDis Enabled – False
Button 3 : Text – Select Color Name – btnColor
Combo Box 1 : Name – cmbPort
Track Bar 1 : Name – tbRed Maximum – 255
Track Bar 2 : Name – tbGreen Maximum – 255
Track Bar 3 : Name – tbBlue Maximum – 255
Panel 1 :  Name – pnlColor Background Color : Black

ඊට පස්සේ toolbox එකෙන් SerialPort එක තෝරලා ඒක උඩ double click කරලා form එකට add කරගන්න.

ඊළඟට form එකේ load event එක ඇතුලෙදි පහල තියෙන code එක ලියන්න. form එක උඩ double click කරලා form එකේ load event එකට ඇතුලු වෙන්න පුලුවන්.

මෙතනදී කෙරෙන්නේ Form එක Load වෙනකොටම Combo Box එකට Serial Port name ටික එකතු කරගන්න එක.

For Each i As String In My.Computer.Ports.SerialPortNames
cmbPort.Items.Add(i)
Next

ඊළඟට connect කියලා add කරගෙන තියෙන button එකේ click ඉවෙන්ට් එකෙදී පහල කෝඩ් එක ලියන්න.

SerialPort1.PortName = cmbPort.Text
SerialPort1.Open()
cmbPort.Enabled = False
btnCon.Enabled = False
btnDis.Enabled = TrueTrue

ඊළඟට disconnect කියලා add කරගෙන තියෙන button එකේ click ඉවෙන්ට් එකෙදී පහල කෝඩ් එක ලියන්න.

SerialPort1.Close()
cmbPort.Enabled = True
btnDis.Enabled = False
btnCon.Enabled = True

ඊළඟට Trackbar වල scroll event ඇතුලෙ පහල තියෙන code එක ලියන්න. Trackbar උඩ double click කරලා scroll event එකට enter වෙන්න පුලුවන්.

pnlColor.BackColor = Color.FromArgb(tbRed.Value, tbGreen.Value, tbBlue.Value)
SerialPort1.Write(tbRed.Value & “,” & tbGreen.Value & “,” & tbBlue.Value)

පලවෙනි පේලියෙන් කරලා තියෙන්නේ panel එකේ background color එක වෙනස් කරන එක. දෙවෙනි පේලියෙන් කරලා තියෙන්නේ Trackbar value තනි පේලියක් විදිහට හදලා Serial port එකට යවන එකයි. Track bar 3 ටම ලියන්න ඕනේ මේ කෝඩ් එකම තමයි.

ඊට පස්සේ Select Color කියන button එක උඩ double click කරලා button එකේ click event එකේ පහල තියෙන කෝඩ් එක ලියන්න.

Dim colorDialog As New ColorDialog
If colorDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
tbRed.Value = colorDialog.Color.R
tbGreen.Value = colorDialog.Color.G
tbBlue.Value = colorDialog.Color.B
pnlColor.BackColor = Color.FromArgb(tbRed.Value, tbGreen.Value, tbBlue.Value)
SerialPort1.Write(tbRed.Value & “,” & tbGreen.Value & “,” & tbBlue.Value)
End If

දැන program එක RUN කරන්න.

ක්‍රියාත්මක කිරීම.

මුලින්ම circuit එක හරියට හදලා Arduino  එක PC එකට connect කරන්න. ඊට පස්සේ Program එක run කරලා හරියට COM Port එකතෝරලා Connect Button එක ඔබන්න. ඊට පස්සේ Trackbar වෙනස් කරලා පාට හදන්න පුලුවන්.

ලිපිය හොදනම්, ගැටලුවක් එහෙම තියෙනවනම්  comment එකක් දාගෙනම යන්න.

මෙම ලිපියෙහි කතෘ අයිතිය softwarelanthaya බ්ලොග් අඩවියෙහි Yashodha Lakshana සතුවේ.

දැණුම සොයාන ඔබට පුළුල්  විෂය පරායාසයක් ඔස්සේ පලවන තවත් හරවත් ලිපි කියවීමට පිවිසෙන්න

SOFTWARELANTHAYA බ්ලොග් අඩවියට.

 

Leave a Comment

Your email address will not be published. Required fields are marked *