arduino analog input
ඇනලොග් INPUT යොදාගැනීම
ඉලෙක්ට්රොණික
පරිපථ වල ප්රධාන වශයෙන් දෙවර්ගයක සංඥා යොදාගනු ලබන බව අපි දනිමු.එනම් ඇනලොග් සහ ඩිජිටල්
සංඥා යන දෙවර්ගයයි.එසේම ප්රයෝගිකව අපට ඩිජිටල් සංඥා හමු නොවන තරම් වන අතර ඩිජිටල්
සංඥා යනු මිනිසා විසින් නිර්මාණය කර ගත් සංඥා වර්ගයක් වේ.එහෙත් ඇනලොග් සංඥා ස්වාභාවිකව
ඕනෑ තරම් හමු වේ.ඇත්තටම ස්වාභාවික හමුවන සියලු සංඥා ඇනලොග් වේ. Arduino යොදාගෙනද පරිපථ
නිර්මාණය කරන විට ද මෙම ඇනලොග් සංඥා ලබා දීමට
සිදු වේ.
(ඇනලොග් හා ඩිජිටල්සංඥා ගැන සහ ඒවා යොදාගනු ලබනු ආකාරය පිළිබදව මීට පෙර විස්තරත්මකව පැහැදිලි කිරීම්සිදු කර ඇත. )
Arduino තුල ද ඇනලොග් සංඥා ලබා දීම සදහා වෙනම පින් කිහිපයක් අන්තර්ගත කොට ඇත.ඒ අනුව පහත දැක්වෙන්නේ Arduino Uno r3 හී එලෙස යොදාගත හැකි පින් වේ.මෙම පින් මගින් ඇනලොග් සංඥා Arduino වෙත ලබා ගෙන එය (ADC ක්රියාව සිදුකර) විවිධ කාර්යන් සිදුකරගැනීම සදහා යොදාගත හැක.
(ඇනලොග් හා ඩිජිටල්සංඥා ගැන සහ ඒවා යොදාගනු ලබනු ආකාරය පිළිබදව මීට පෙර විස්තරත්මකව පැහැදිලි කිරීම්සිදු කර ඇත. )
Arduino තුල ද ඇනලොග් සංඥා ලබා දීම සදහා වෙනම පින් කිහිපයක් අන්තර්ගත කොට ඇත.ඒ අනුව පහත දැක්වෙන්නේ Arduino Uno r3 හී එලෙස යොදාගත හැකි පින් වේ.මෙම පින් මගින් ඇනලොග් සංඥා Arduino වෙත ලබා ගෙන එය (ADC ක්රියාව සිදුකර) විවිධ කාර්යන් සිදුකරගැනීම සදහා යොදාගත හැක.
ඇනලොග් සංඥා
ඩිජිටල් පරිපථ සමග යෙදාගැනීමේදී ඒවා ප්රථමයෙන් ඩිජිටල් සංඥා බවට පරිවර්ථනය කර ගත
යුතුය.ඒ අනුව ADC පරිවර්තනයක
වැදගත්ම මිනුම් දෙකක් ඇත.එනම් resolution එක සහ ADC පරිවර්තනය
සදහා බිට් කියක් යොදාගනු ලබනවාද යන්න.( ADC පිළිබදව මීටපෙර විස්තර කර ඇත.)
Arduino තුලද ADC පරිවර්තනය
සදහා බිට් 10 යක් යොදාගනු ලබයි. එමනිසා මෙහිදී එකිනෙකට වෙනස් බිට් දහයේ අගයන් 1024
ක් නිර්මාණය කරගත හැක.ඒ අනුව මෙහි resolutionඑක වන්නේ
මේ අනුව 0 හා 5 අතර වෝල්ටීයතාවය කොටස් 1024 කට බෙදිය හැකි අතර එහි එක් කොටසක අගය 4.887mv පමන වේ. .ඒ අනුව මෙහි උපරිම අගය වන 5v වෝල්ටීයතා අගය 1111111111 මගින්ද අවම අගය වන 0v වෝල්ටීයතා අගය 0000000000 මගින්ද පෙන්නුම් කරනු ලබයි.
Arduino IDE තුලදී ඇනලොග් වෝල්ටීයතාවයට
අනුරූප බයිනරි අගය ලබා ගැනීමට analogRead (pin) function එක යොදාගනු ලබයි. පහත
දැක්වෙන්නේ මෙයට අදාල කුඩා වැඩසටහනකි.
මෙම වැඩසටහනෙන් සිදු වන්නේ ලබා දෙන ඇනලොග් සංඥාව අනුව LED එකක ආලෝකය පාලනය කිරීම වේ.
මෙහි ඇනලොග් සංඥාව ලබා දීමට යොදාගෙන ඇත්තේ වේරියබල් රෙසිස්ටරයක් වේ.ඒ මගින් 0 හා 5 අතර වෙනස් වෝල්ටීයතා මට්ටම් ඇති කර ගත හැක.
මෙම වැඩසටහනෙන් සිදු වන්නේ ලබා දෙන ඇනලොග් සංඥාව අනුව LED එකක ආලෝකය පාලනය කිරීම වේ.
මෙහි ඇනලොග් සංඥාව ලබා දීමට යොදාගෙන ඇත්තේ වේරියබල් රෙසිස්ටරයක් වේ.ඒ මගින් 0 හා 5 අතර වෙනස් වෝල්ටීයතා මට්ටම් ඇති කර ගත හැක.
int led_pin
= 6;
int pot_pin = A0;
int output;
int
led_value;int pot_pin = A0;
int output;
void setup() {
pinMode(led_pin, OUTPUT);
}
void loop() {
output = analogRead(pot_pin);
}
void loop() {
output = analogRead(pot_pin);
ඇනලොග් සංඥාව Read කිරීමෙන් ලැබෙන්නේ 0 හා 1024 අතර
අගයක් වේ.එහෙත් ආලෝකය පාලනය කිරීම සදහා PWM output එකට ලබා දිය යුත්තේ 0 හා
255 අතර අගයක් වේ.එමනිසා එම අගයන් Mapping
කිරීම සිදුකර ගත යුතුය.පහත
දැක්වෙන්නේ එය සිදු කරන ආකාරය වේ.
led_value = map(output, 0, 1023, 0, 255);
analogWrite(led_pin, led_value);
delay(1);
}
}