ආඩුඊනෝ ප්‍රෝග්‍රෑමිං Part 12 – Water Level Measuring With Ultrasonic Sensor

ඔන්න අපි අද වෙනස්ම දෙයක් කතා කරමු. මේ වෙනකන්ම අපි කතා කලේ ආඩුඊනෝ යොදාගෙන LED රටා හදපු එක, Motor control කරපු එකනේ. ගොඩක් දෙනෙක් මගෙන් ඇහුව මේ ආඩුඊනෝ වලින් එදිනෙදා ජීවිතයේ එන ගැටලු වලට පිළියම් යොදන්න බෑද කියල. ඇත්තටම එහෙම කරන්න බෑද?? මොකද බැරි. පුලුවන්. ආඩුඊනෝ කියන්නෙ තමන්ගෙ නිර්මාණශීලිත්වය මත පදනම් උන දෙයක්. ඒකේ සීමාවක් අපිට කියන්න බෑ.

ඔයාගෙ ගෙදරත මෝටරේ දැම්මම off කරන්න අමතක වෙලා වතුර ටැංකිය පිරිල වැඩි වතුර උතුරලා ගිහින් තියනවද?? මේ නාස්තිය නවත්ත ගන්න ආඩුඊනෝ යොදාගන්න පුලුවන් නම් ඒක වටිනව නේද?? අපි බලමු කොහොමද ආඩුඊනෝ යොදාගෙන වතුර ටැංකිය පිරුනහම ස්ව්‍යක්‍රීයව වතුර motor එක off වෙන ආකාරයට සහ වතුර ටැංකියේ වතුර යම් නිශ්චිත මට්ටමකට අඩු වූ විට ස්ව්‍යංක්‍රීයවම වතුර motor එක on වෙන ආකාරයට ආඩුඊනෝ පරිපථයක් සාදාගන්නෙ කොහොමද කියල අපි බලමු.

මේකට අපිට ඕනෙ කරනවා :-

1) Arduino Uno බෝඩ් එකක්
2) Ultrasonic sensor එකක් (2 රූපය) (https://scionelectronics.com/product/ultrasonic-sensor-hc-sr04/)
3) Relay Module එකක් (3 රූපය)
4) Contactor එකක් (4 රූපය)
5) Wires

Ultrasonic sensor එකෙහි Vcc පින් එක ආඩුඊනෝ බෝඩ් එකෙහි 5V වෙතද, Trig පින් එක ආඩුඊනෝ බෝඩ් එකෙහි 2 වන පින් එකටද, Echo පින් එක 4 වන පින් එකටද, Ultrasonic sensor එකෙහි GND පින් එක ආඩුඊනෝ බෝඩ් එකෙහි GND පින් එක වෙතද සම්බන්ධ කරගන්න.

තවද Relay module එකෙහි Vcc පින් එක ආඩුඊනෝ බෝඩ් එකෙහි 5V පින් එකටද, GND පින් එක ආඩුඊනෝ බෝඩ් එකෙහි GND වෙතද, IN පින් එක ආඩුඊනෝ බෝඩ් එකෙහි 8 වන පින් එකටද සම්බන්ධ කරගන්න.

මේ ටික සපයා ගැනීමෙන් පසු Single phase motor එකක් නම් 5 රූපයේ ආකාරයට උපාංග ටික සකසා ගන්න. 3 Phase motor එකක් නම් 6 රූපයේ ආකාරයට උපාංග ටික සකසා ගන්න.

පසුව පහත කෝඩ් එක Upload කරන්න

int trig=2;
int echo =4;
int relay=8;

void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(relay,OUTPUT);
}

void loop() {
int height=150; //Your Water Tank Hight
int offlevel=20; //change with your value

digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);

long time = pulseIn(echo,HIGH);
long cm = time/29/2 ;

int onlevel = height*3/4 + offlevel;
if(cm>onlevel){
motoron();
}
else if(cm<offlevel){
motoroff();
}

delay(100);
}
void motoron(){
digitalWrite(relay,LOW);
}
void motoroff(){
digitalWrite(relay,HIGH);
}

මෙහිදී වතුර ටැංකියේ උස 150cm ක් ලෙස මෙහිදී මම code එකෙහි 12 වන පේළියෙහි සදහන් කර ඇතත්. මෙය අවශ්‍ය පරිදි වෙනස් කරගන්න. තවද මෙහි වැඩි වතුර පිටවන කව්ලුවට ඇති දුරද ගැලපෙන පරිදි වෙනස් කරගන්න. මෙහි 32 වන පේළියේදී තිබෙන delay අගය වෙනස් කිරීමෙන් දැනට තිබෙන ජල මට්ටම පරීක්ෂා කරනු ලබන කාල පරතරය වෙනස් කරගන්නට හැකියාව තිබෙනවා.

මෙහිදී මම active Low අවස්ථාවෙ තිබෙන Relay module එකක් භාවිතා කලද ඇතැම් අවස්ථාවල active High අවස්ථාවේ තිබෙන Relay module ද අපට හමුවීමට පුලුවන්. එවිට 35 සහ 38 පේළි වල ඇති HIGH සහ LOW යන අවස්ථාවන් දෙක මාරු කළ යුතුයි.

ඉතින් තව එක දෙයක් කියන්නම් මගෙන් ගොඩක් දෙනෙක් comments වලින් වගේම inbox ඇවිල්ලත් අහල තිබ්බ කොළඹින් පිට ඉන්න අයට මේ Arduino parts ගන්න තැනක් නැද්ද කියල. ඉතින් මන් හිතුව මන් බඩු ගන්න තැන ගැන ඔයාලට කිව්ව නම් ඒක ඔයගොල්ලන්ට පහසුවක් වෙයි කියල.

“Scion Electronics” ( සයන් ඉලෙක්ට්‍රොනික්ස් ) ඔයාලට Arduino සම්බන්ධ ඕනෙම item එකක් warranty එකක් සහිතව ගන්න පුලුවන් මේ ශොප් එකෙන්. මාලබේ ස්ලිට් (SLIIT) කැම්පස් එක ඉස්සරහ වගේම මොරටුව කැම්පස් එක ඉස්සරහත් මෙයාලගෙ shop තියනව. ඔයගොල්ලො පිට පලාතක ඉන්නව නම් ඔයාලට පුලුවන් ගෙදරටම මේ භාණ්ඩ ගෙන්න ගන්න. මෙයාලගෙ Website එකේ සියලුම items ගැන විස්තර තියනව. ( https://scionelectronics.com/ ) වගකීමක් සහිතවම ඔයාලට ඕනෙ කරන Arduino parts ගන්න පුලුවන්.

ආඩුඊනෝ ප්‍රෝග්‍රෑමිං Part 13 තුළින් නැවත හමු වෙමු.

Compiled by: Yasas Sadeepa

Leave a Reply

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