Arduino သင္ခန္းစာ (၆) - Analog Pins (Arduino UNO) - Arduino Myanmar

Breaking

Open Arduino for Myanmar

Friday, April 6, 2018

Arduino သင္ခန္းစာ (၆) - Analog Pins (Arduino UNO)

Analog Input Pins 
ပံုတြင္ ျပထားသည္႔အတိုင္း Arduino Uno ၏ ေအာက္ဘက္ ညာျခမ္းတြင္ A0 မွ A5 အထိ အမွတ္စဥ္ထိုးထားေသာ Analog Input pins ၆ ခု ပါဝင္ပါသည္။ Arduino တြင္ အသံုးျပဳထားသည္႔ Atmega controller မ်ားတြင္ 10 bit resolution ရွိေသာ analog-to-digital (A/D) converter ပါဝင္ပါသည္။ ထို႔ေၾကာင္႔ ၄င္း pin မ်ားတြင္ ခ်ိတ္ဆက္ထားေသာ Voltage တန္ဖိုးမ်ားကို 0 မွ 1023 အထိ integers တန္ဖိုးမ်ား ဖတ္ယူရရွိမည္ ျဖစ္ပါသည္။
မွတ္သားရမည္႔ အခ်က္မွာ analog pin မ်ားသည္ Voltage ကိုသာ တိုင္းတာျခင္းျဖစ္ၿပီး current အားတိုင္းတာျခင္း မဟုတ္ပါ။ Ground ႏွင္႔ analog pin မ်ားၾကား ႀကီးမားသည္႔ internal resistance ရွိေသာေၾကာင္႔ current အနည္းငယ္သာ စီးဆင္းမည္ျဖစ္သည္။
Analog pin မ်ားကို မ်ားေသာအားျဖင္႔ analog sensors မ်ားမွ တန္ဖိုးမ်ား ဖတ္ယူရန္ အသံုးျပဳေလ႔ ရွိၾကေသာ္လည္း analog pins မ်ားတြင္ သာမန္ digital GPIO pins မ်ားကဲ႔သို႔ အသံုးျပဳႏိုင္သည္႔ (ေရးႏိုင္ဖတ္ႏိုင္သည္႔) လုပ္ေဆာင္ႏိုင္စြမ္း အျပည္႔အဝ ပါဝင္ပါသည္။ ထို႔ေၾကာင္႔ digital GPIO pins မ်ား ပိုမိုလိုအပ္သည္႔ အခ်ိန္တြင္ analog pins မ်ားအား digital GPIO pins မ်ားအျဖစ္ အသံုးခ်ႏိုင္ပါသည္။
...
Pin mapping
Analog pins မ်ားကို digital pins မ်ားကဲ႔သို႔ပင္ အသံုးခ်ႏိုင္စြမ္း ရွိပါသည္။ ထိုသို႔ အသံုးျပဳရာတြင္ analog pin နံပါတ္မ်ားအား ေရွ႕မွ A ခံ၍ အသံုးျပဳရမည္ ျဖစ္ပါသည္။ ဥပမာ analog pin 0 အား A0 ဟု အသံုးျပဳ ေရးသားရမည္ ျဖစ္ပါသည္။ Analog pin 0 အား output အျဖစ္ ေၾကျငာၿပီး HIGH ျပဳလုပ္ပံုကို ေအာက္ပါ ကုဒ္မ်ားအား ေလ႔လာၾကည္႔ပါ-
...
pinMode(A0,OUTPUT);
digitalWrite(A0,HIGH);
...
Pullup resistors 
Analog pins မ်ားတြင္ digital pins မ်ားကဲ႔သို႔ပင္ pullup resistors မ်ား ပါရွိပါသည္။ အဆိုပါ pullup resistors မ်ားအား အသက္ဝင္လာေစရန္ ေအာက္ပါ command အား အသံုးျပဳႏိုင္ပါသည္။
...
digitalWrite(A0, INPUT_PULLUP); // set pullup on analog pin 0
...
အေသးစိတ္ဂရုျပဳရမည္႔ အခ်က္မ်ား
Analog pin မ်ားကို OUTPUT အျဖစ္ အသံုးျပဳခဲ႔ပါက analogRead command သည္ ေကာင္းစြာ အလုပ္လုပ္မည္ မဟုတ္ပါ။ ထိုကဲ႔သို႔ အေျခအေနမ်ိဳးတြင္ ၄င္း pin ကို INPUT အျဖစ္ ျပန္လည္ သတ္မွတ္ေပးရန္ လိုအပ္ပါသည္။ အကယ္၍ OUTPUT အေျခအေနတြင္ HIGHT ေပးခဲ႔ပါက INPUT အျဖစ္ ျပန္လည္သတ္မွတ္သည္႔ အခါမ်ိဳးတြင္ pullup resistor သည္ set ျဖစ္ေနမည္ ျဖစ္ပါသည္။
ထို႔ျပင္ Atmega datasheet တြင္ analog pins မ်ားအား digital mode အျဖစ္ ေျပာင္းလဲ လိုက္သည္႔ အခ်ိန္မ်ိဳးတြင္ အနီးရွိ အျခား analog pins မ်ား၏ analogRead() function အသံုးျပဳ၍ A/D reading ျပဳလုပ္ျခင္းအား အေႏွာက္အယွက္ ျဖစ္ေစႏိုင္ေၾကာင္း သတိေပးထားပါသည္။ ထို႔ေၾကာင္႔ ထိုသို႔ ေျပာင္းလဲ အသံုးျပဳသည္႔အခါ အျခား analog pin မ်ား analogRead() မျပဳလုပ္မီ delay အနည္းငယ္ခံ၍ ေစာင္႔ဆိုင္းသင္႔ပါသည္။
...
I2C pins

Arduino UNO တြင္ Analog pin A4 ႏွင္႔ A5 ကို I2C protocol ၏ SDA ႏွင္႔ SCL pin မ်ားအေနျဖင္႔လည္း အသံုးျပဳႏိုင္ပါသည္။ SDA (A4) pin သည္ data line ျဖစ္ၿပီး SCL (A5) pin သည္ clock line ျဖစ္ပါသည္။ အေသးစိတ္ကို I2C protocol သင္ခန္းစာတြင္ ဆက္လက္ တင္ျပသြားပါမည္။
...
ေမတၱာျဖင္႔
Dr. Aung Win Htut
Founder and President
Green Hackers

No comments:

Post a Comment