ආඩුඊනෝ ප්රෝග්රෑමිං Part 13 – Water Level Measuring With 1602 Character LCD Screen (16×2)
පහුගිය ලිපියෙන් මම කිව්වනෙ ආඩුඊනෝ සහ Ultrasonic sensor යොදාගෙන වතුර motor එකක් on off කරන විදිහ. අද මම කියන්න යන්නෙ ඒකට LCD Display එකක් සම්බන්ධ කරල වතුර Motor එකේ states මෙන්ම ටැංකියේ තිබෙන ජල ලීටර්ස් ප්රමානය ආදිය බලාගන්න විදිහ. මේ ගැන කියන්න කලින් LCD display එකක් ආඩුඊනෝ එක්ක භාවිතා කරන විදිහ අපි බලමු.
මේ සදහා අපිට අවශ්ය වෙනවා,
1) Arduino Uno × 1
2) (2 × 16) LCD Display Module × 1 (https://scionelectronics.com/product/1602-character-lcd-screen-16×2/)
3) 220 Ohms Resistor × 1
4) 10k potentiometer × 1
5) Breadboard × 1
6) Jumper wires
දැන් 2 රූපයේ ආකාරයට උපාංග සකසාගන්න.
පොටෙන්ශෝමීටරයෙහි pin1 5V සමගද, pin3 GND සමගද, pin2 LCD Display එකෙහි VO සමගද සම්බන්ධ කරන්න.
පොටෙන්ශෝමීටරය කරකැවීම තුලින් LCD display එකෙහි ආලෝකය වෙනස් කල හැකිය.
Arduino pin LCD pin
GND – 01 Vss (Ground)
VDD (+5V) – 02 VDD (+5V)
Potentiometer variable pin – 03 VO
digital pin 12 – 04 LCD RS pin
Ground (-) – 05 LCD RW pin
digital pin 11 – 06 LCD E pin
digital pin 4 – 11 LCD D4 pin
digital pin 5 – 12 LCD D5 pin
digital pin 6 – 13 LCD D6 pin
digital pin 7 – 14 LCD D7 pin
VDD (+5V) – 15 VDD (+5V) A
GND – 16 K
දැන් පහත කෝඩ් එක ටයිප් කරගෙන ආඩුඊනෝ බෝඩ් එකට අප්ලෝඩ් කරන්න.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 4, 5, 6, 7);
void setup() {
lcd.begin(16, 2);
lcd.print(“Welcome”);
}
void loop() {
}
මෙහිදී මුලින්ම LiquidCrystal Library එක include කරගෙන තිබේ. ඉන් පසුව LCD Display එක සම්බන්ධ කල pin 6 define කරගෙන තිබෙනවා.
void setup කොටස තුල ඇති lcd.print යන්න මගින් LCD Display එක මත යමක් පෙන්විය ගැකියි. මෙහිදී මම Welcome ලෙස සදහන් කර ඇතත් අවශ්ය පරිදි එය වෙනස් කරගන්න.
මෙහිදී void loop තුල කිසිවක් ලිවීමට අවශ්ය නොවේ.
LCD display එක මත පෙන්වන යමක් මකාදැමීම සදහා lcd.clear( ); යන code එක භාවිතා කරන්න.
LCD display එක තුල යමක් පෙන්වන ස්ථානය ලබා දීම සදහා lcd.setCursor(0,0); යන්න භාවිතා කරන්න. මෙහි 0 දෙක අවශ්ය පරිදි වෙනස් කරගන්න.
දැන් අපි බලමු අපේ වතුර මෝටරෙත් එක්ක මේ දේ සම්බන්ධ කරගන්නෙ කොහොමද කියල. ඒ සදහා ආඩුඊනෝ ප්රෝග්රෑමිං Part 12 ආකාරයට උපාංග සකසා ගන්න. පසුව පෙර සදහන් කල ආකාරයට LCD display එකද සම්බන්ධ කරගන්න.
දැන් පහත කෝඩ් එක ටයිප් කර, ආඩුඊනෝ බෝඩ් එක වෙත අප්ලෝඩ් කරන්න.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 4, 5, 6, 7);
int trig = 2;
int echo = 3;
int relay = 8;
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(relay, OUTPUT);
lcd.begin(16, 2);
}
void loop() {
int height = 150; //Tank Height
int offlevel = 20; //Off Level
int tankl = 500; // Leaters
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;
int l = tankl / height;
int lp = ((height – cm) * l) + offlevel ;
if (cm <= height) {
lcd.setCursor(10, 0);
lcd.print(“L:”);
lcd.setCursor(12, 0);
lcd.print(lp);
}
if (cm > onlevel) {
motoron();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Motor ON”);
lcd.setCursor(0, 2);
lcd.print(“Low Water Level”);
}
else if (cm < offlevel) {
motoroff();
lcd.clear();
lcd.print(“Motor OFF”);
lcd.setCursor(0, 2);
lcd.print(“Good Water Level”);
}
delay(100);
int HLevel = height * 1 / 4 + offlevel;
int MLevel = height * 2 / 4 + offlevel;
if (cm < MLevel) {
lcd.setCursor(0, 2);
lcd.print(“Good Water Level”);
}
if (cm < onlevel) {
if (cm > MLevel) {
lcd.setCursor(0, 2);
lcd.print(“Mid Water Level”);
}
}
}
void motoron() {
digitalWrite(relay, LOW);
}
void motoroff() {
digitalWrite(relay, HIGH);
}
මෙහි 20 වැනි පේලියේ ඇති 500 ඔබේ ටැංකියේ ධාරිතාවය අනුව ගැලපෙන පරිදි වෙනස් කරගන්න.
ඉතින් තව එක දෙයක් කියන්නම් මගෙන් ගොඩක් දෙනෙක් comments වලින් වගේම inbox ඇවිල්ලත් අහල තිබ්බ කොළඹින් පිට ඉන්න අයට මේ Arduino parts ගන්න තැනක් නැද්ද කියල. ඉතින් මන් හිතුව මන් බඩු ගන්න තැන ගැන ඔයාලට කිව්ව නම් ඒක ඔයගොල්ලන්ට පහසුවක් වෙයි කියල.
“Scion Electronics” ( සයන් ඉලෙක්ට්රොනික්ස් ) ඔයාලට Arduino සම්බන්ධ ඕනෙම item එකක් warranty එකක් සහිතව ගන්න පුලුවන් මේ ශොප් එකෙන්. මාලබේ ස්ලිට් කැම්පස් එක ඉස්සරහ වගේම මොරටුව කැම්පස් එක ඉස්සරහත් මෙයාලගෙ shop තියනව. ඔයගොල්ලො පිට පලාතක ඉන්නව නම් ඔයාලට පුලුවන් ගෙදරටම මේ භාණ්ඩ ගෙන්න ගන්න. මෙයාලගෙ Website එකේ සියලුම item ගැන විස්තර තියනව. ( https://scionelectronics.com/ ) වගකීමක් සහිතවම ඔයාලට ඕනෙ කරන Arduino parts ගන්න පුලුවන්.
ආඩුඊනෝ ප්රෝග්රෑමිං Part 14 තුළින් නැවත හමු වෙමු.
Compiled by: Yasas Sadeepa