Arduino உடன் டிஜிட்டல் பொட்டென்டோமீட்டர் MCP41xx ஐப் பயன்படுத்துதல்

சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்





இந்த திட்டத்தில் நாம் டிஜிட்டல் பொட்டென்டோமீட்டரை அர்டுயினோவுடன் இடைமுகப்படுத்தப் போகிறோம். இந்த ஆர்ப்பாட்டத்தில் பொட்டென்டோமீட்டர் MCP41010 பயன்படுத்தப்படுகிறது, ஆனால் நீங்கள் MC41 ** தொடரின் எந்த டிஜிட்டல் பொட்டென்டோமீட்டரையும் பயன்படுத்தலாம்.

எழுதியவர் அங்கித் நேகி



MC41010 க்கு அறிமுகம்

டிஜிட்டல் பொட்டென்டோமீட்டர்கள் ஒரே மாதிரியான வித்தியாசத்துடன் மூன்று டெர்மினல்களைக் கொண்ட எந்த அனலாக் பொட்டென்டோமீட்டரையும் போலவே இருக்கும். அனலாக் ஒன்றில் நீங்கள் வைப்பர் நிலையை கைமுறையாக மாற்ற வேண்டும், டிஜிட்டல் பொட்டென்டோமீட்டர் வைப்பர் நிலை இருந்தால், எந்த மைக்ரோகண்ட்ரோலர் அல்லது நுண்செயலியைப் பயன்படுத்தி பொட்டென்டோமீட்டருக்கு கொடுக்கப்பட்ட சமிக்ஞைக்கு ஏற்ப அமைக்கப்படுகிறது.

FIG. MC41010 ஐசி பின்அவுட்

FIG. MC41010 ஐசி பின்அவுட்



MC41010 என்பது வரி தொகுப்பு ஐ.சி.யில் 8 முள் இரட்டை. எந்த அனலாக் பொட்டென்டோமீட்டரைப் போலவே இந்த ஐசி 5 கே, 10 கே, 50 கே மற்றும் 100 கே ஆகியவற்றில் வருகிறது. இந்த சுற்றில் 10 கே பொட்டென்டோமீட்டர் பயன்படுத்தப்படுகிறது
MC4131 பின்வரும் 8 முனையங்களைக் கொண்டுள்ளது:

முள் எண். முள் பெயர் சிறிய விளக்கம்

1 சிஎஸ் இந்த முள் அர்டுயினோவுடன் இணைக்கப்பட்ட அடிமை அல்லது புறத்தைத் தேர்ந்தெடுக்கப் பயன்படுகிறது. இது என்றால்
குறைந்த பின்னர் MC41010 தேர்ந்தெடுக்கப்பட்டது, இது அதிகமாக இருந்தால் MC41010 தேர்வுநீக்கம் செய்யப்படுகிறது.

2 SCLK பகிரப்பட்ட / தொடர் கடிகாரம், தரவு பரிமாற்றத்தைத் தொடங்குவதற்கான கடிகாரத்தை arduino வழங்குகிறது
Arduino to IC மற்றும் நேர்மாறாக.

3 எஸ்.டி.ஐ / எஸ்.டி.ஓ சீரியல் தரவு இந்த முள் மூலம் அர்டுயினோ மற்றும் ஐ.சி இடையே மாற்றப்படுகிறது
அர்டுயினோவின் விஎஸ்எஸ் மைதான முனையம் இந்த ஐசியின் முள் இணைக்கப்பட்டுள்ளது.

5 PA0 இது பொட்டென்டோமீட்டரின் ஒரு முனையமாகும்.

6 PW0 இந்த முனையம் பொட்டென்டோமீட்டரின் வைப்பர் முனையமாகும் (எதிர்ப்பை மாற்ற)
7 பிபி 0 இது பொட்டென்டோமீட்டரின் மற்றொரு முனையமாகும்.

இந்த முள் மூலம் 8 வி.சி.சி பவர் ஐ.சி.

இந்த ஐ.சி ஒரு பொட்டென்டோமீட்டரை மட்டுமே கொண்டுள்ளது. சில ஐ.சி அதிகபட்சம் இரண்டு பொட்டென்டோமீட்டர் உள்ளமைக்கப்பட்டுள்ளது. இது
வைப்பருக்கும் வேறு எந்த முனையத்திற்கும் இடையிலான எதிர்ப்பின் மதிப்பு 0 முதல் 255 வரை 256 படிகளில் மாற்றப்பட்டுள்ளது. நாங்கள் 10k மின்தடையத்தைப் பயன்படுத்துவதால் மின்தடையின் மதிப்பு பின்வருமாறு மாற்றப்படுகிறது:
0 முதல் 255 வரை ஒரு படிக்கு 10 கி / 256 = 39 ஓம்ஸ்

கூறுகள்

இந்த திட்டத்திற்கு பின்வரும் கூறுகள் தேவை.

1. ARDUINO
2. எம்.சி .41010 ஐ.சி.
3. 220 OHM RESISTOR
4. எல்.ஈ.டி.
5. வயர்களை இணைத்தல்

அத்தி காட்டப்பட்டுள்ளபடி இணைப்புகளை உருவாக்கவும்.

1. சிஎஸ் முள் டிஜிட்டல் முள் 10 உடன் இணைக்கவும்.
2. எஸ்.சி.கே முள் டிஜிட்டல் முள் 13 உடன் இணைக்கவும்.
3. SDI / SDO முள் டிஜிட்டல் முள் 11 உடன் இணைக்கவும்.
4. வி.எஸ்.எஸ் முதல் அர்டுயினோவின் தரை முள்
5. PA0 முதல் 5v முள் arduino
6. P00 to arduino தரையில்
7. PWO to அனலாக் முள் A0 arduino.
8. வி.சி.சி முதல் 5 வி வரை ஆர்டுயினோ.

புரோகிராம் குறியீடு 1

இந்த குறியீடு வைப்பர் முனையம் மற்றும் தரையில் மின்னழுத்த மாற்றத்தை Arduino IDE இன் சீரியல் மானிட்டரில் அச்சிடுகிறது.

#include
int CS = 10 // initialising variable CS pin as pin 10 of arduino
int x // initialising variable x
float Voltage // initialising variable voltage
int I // this is the variable which changes in steps and hence changes resistance accordingly.
void setup()
{
pinMode (CS , OUTPUT) // initialising 10 pin as output pin
pinMode (A0, INPUT) // initialising pin A0 as input pin
SPI.begin() // this begins Serial peripheral interfece
Serial.begin(9600) // this begins serial communications between arduino and ic.
}
void loop()
{
for (int i = 0 i <= 255 i++)// this run loops from 0 to 255 step with 10 ms delay between each step
{
digitalPotWrite(i) // this writes level i to ic which determines resistance of ic
delay(10)
x = analogRead(A0) // read analog values from pin A0
Voltage = (x * 5.0 )/ 1024.0// this converts the analog value to corresponding voltage level
Serial.print('Level i = ' ) // these serial commands print value of i or level and voltage across wiper
Serial.print(i) // and gnd on Serial monitor of arduino IDE
Serial.print(' Voltage = ')
Serial.println(Voltage,3)
}
delay(500)
for (int i = 255 i >= 0 i--) // this run loops from 255 to 0 step with 10 ms delay between each step
{
digitalPotWrite(i)
delay(10)
x = analogRead(A0)
Voltage = (x * 5.0 )/ 1024.0 // this converts the analog value to corresponding voltage level
Serial.print('Level i = ' ) // these serial commands print value of i or level and voltage across wiper
Serial.print(i) // and gnd on Serial monitor of arduino IDE
Serial.print(' Voltage = ')
Serial.println(Voltage,3)
}
}
int digitalPotWrite(int value) // this block is explained in coding section
{
digitalWrite(CS, LOW)
SPI.transfer(B00010001)
SPI.transfer(value)
digitalWrite(CS, HIGH)

குறியீடு 1 ஐ விளக்குகிறது:

Arduino உடன் டிஜிட்டல் பொட்டென்டோமீட்டரைப் பயன்படுத்த நீங்கள் முதலில் SPI நூலகத்தை சேர்க்க வேண்டும், இது arduino IDE இல் வழங்கப்படுகிறது. இந்த கட்டளையுடன் நூலகத்தை அழைக்கவும்:
#சேர்க்கிறது

வெற்றிட அமைப்பில், ஊசிகளை வெளியீடு அல்லது உள்ளீடாக ஒதுக்கலாம். எஸ்பிஐ தொடங்குவதற்கான கட்டளைகள் மற்றும் அர்டுயினோ மற்றும் ஐசிக்கு இடையிலான தொடர் தகவல்தொடர்புகளும் வழங்கப்படுகின்றன:

#include
int CS = 10
int x
float Voltage
int i
void setup()
{
pinMode (CS , OUTPUT)
pinMode (A0, INPUT)
SPI.begin()// this begins Serial peripheral interfece
}
void loop()
{
for (int i = 0 i <= 255 i++)// this run loops from 0 to 255 step with 10 ms delay between each step
{
digitalPotWrite(i)// this writes level i to ic which determines resistance of ic
delay(10)
}
delay(500)
for (int i = 255 i >= 0 i--)// this run loops from 255 to 0 step with 10 ms delay between each step
{
digitalPotWrite(i)
delay(10)
}
}
int digitalPotWrite(int value)// this block is explained in coding section
{
digitalWrite(CS, LOW)
SPI.transfer(B00010001)
SPI.transfer(value)
digitalWrite(CS, HIGH)
}

வெற்றிட சுழற்சியில், மொத்த 256 படிகளில் டிஜிட்டல் பானையின் எதிர்ப்பை மாற்ற லூப் பயன்படுத்தப்படுகிறது. முதலில் 0 முதல் 255 வரை, பின்னர் ஒவ்வொரு அடியிலும் 10 மில்லி விநாடிகள் தாமதத்துடன் மீண்டும் 0 க்கு:

SPI.begin() and Serial.begin(9600)

டிஜிட்டல் போட்ரைட் (i) செயல்பாடு ஐசியின் குறிப்பிட்ட முகவரியில் எதிர்ப்பை மாற்ற தீஸ் மதிப்பை எழுதுகிறது.

வைப்பர் மற்றும் எண்ட் டெர்மினலுக்கு இடையிலான எதிர்ப்பை இந்த சூத்திரங்களைப் பயன்படுத்தி கணக்கிடலாம்:

R1 = 10k * (256-நிலை) / 256 + Rw
மற்றும்
R2 = 10k * நிலை / 256 + Rw

இங்கே R1 = வைப்பருக்கும் ஒரு முனையத்திற்கும் இடையிலான எதிர்ப்பு
R2 = வைப்பருக்கும் பிற முனையத்திற்கும் இடையிலான எதிர்ப்பு
நிலை = ஒரு குறிப்பிட்ட தருணத்தில் படி (மாறி “நான்” வளையத்திற்கு பயன்படுத்தப்படுகிறது)
வைப்பர் முனையத்தின் Rw = எதிர்ப்பு (ஐசியின் தரவுத்தாள் காணலாம்)
டிஜிட்டல் போட்ரைட் () செயல்பாட்டைப் பயன்படுத்தி சிஎஸ் முள் குறைந்த மின்னழுத்தத்தை ஒதுக்குவதன் மூலம் டிஜிட்டல் பொட்டென்டோமீட்டர் சிப் தேர்ந்தெடுக்கப்படுகிறது. இப்போது ஐசி தேர்ந்தெடுக்கப்பட்டால், எந்த தரவு எழுதப்படும் என்று ஒரு முகவரி அழைக்கப்பட வேண்டும். குறியீட்டின் கடைசி பகுதியில்:

SPI.transfer (B00010001)

தரவு எழுதப்படும் ஐசியின் வைப்பர் முனையத்தைத் தேர்ந்தெடுக்க B00010001 என்ற முகவரி அழைக்கப்படுகிறது. எனவே லூப்பின் மதிப்புக்கு அதாவது, எதிர்ப்பை மாற்றுவதற்காக எழுதப்பட்டிருக்கிறேன்.

சுற்றறிக்கை வேலை:

I இன் மதிப்பு, 0 மற்றும் 1023 க்கு இடையில் உள்ளீட்டை மாற்றிக் கொண்டே இருக்கும். வைப்பர் முனையம் நேரடியாக A0 முள் உடன் இணைக்கப்பட்டுள்ளதால் இது நிகழ்கிறது, மேலும் பொட்டென்டோமீட்டரின் பிற முனையங்கள் முறையே 5 வோல்ட் மற்றும் தரையில் இணைக்கப்பட்டுள்ளன. இப்போது எதிர்ப்பு மாறும்போது, ​​அதன் குறுக்கே மின்னழுத்தத்தை செய்யுங்கள், இது நேரடியாக arduino ஆல் உள்ளீடாக எடுக்கப்படுகிறது, இதனால் ஒரு குறிப்பிட்ட மதிப்பின் எதிர்ப்புக்கு சீரியல் மானிட்டரில் ஒரு மின்னழுத்த மதிப்பைப் பெறுகிறோம்.

உருவகப்படுத்துதல் 1:

I இன் பல்வேறு மதிப்புகளில் இந்த சுற்றுக்கான சில உருவகப்படுத்துதல் படங்கள் இவை:

இப்போது 220ohm மின்தடையுடன் ஒரு தொடரில் ஒரு ஐ.சி.யின் வைப்பர் முனையத்துடன் இணைக்கவும்.

குறியீடு 2:

for (int i = 0 i <= 255 i++) and for (int i = 255 i>= 0 i--)

குறியீடு 2 ஐ விளக்குகிறது:

இந்த குறியீடு குறியீடு 1 ஐ ஒத்திருக்கிறது, தவிர இந்த குறியீட்டில் தொடர் கட்டளைகள் இல்லை. எனவே சீரியல் மானிட்டரில் எந்த மதிப்புகளும் அச்சிடப்படாது.

வேலை விரிவாக்கம்

லிப்பர் வைப்பர் முனையத்திற்கும் தரையுக்கும் இடையில் எதிர்ப்பு மாற்றங்களாக இணைக்கப்பட்டுள்ளதால், லெட் முழுவதும் மின்னழுத்தம் செய்யுங்கள். எனவே, வழிநடத்தப்பட்ட எதிர்ப்பானது 0ohm இலிருந்து அதிகபட்சமாக உயர்கிறது, எனவே தலைமையின் பிரகாசம் செய்யுங்கள். அதிகபட்சம் முதல் 0 வி வரை எதிர்ப்பு குறைவதால் இது மீண்டும் மெதுவாக மங்கிவிடும்.

உருவகப்படுத்துதல் 2

உருவகப்படுத்துதல் 3




முந்தைய: ஜாய்ஸ்டிக் பயன்படுத்தி சர்வோ மோட்டாரை எவ்வாறு கட்டுப்படுத்துவது அடுத்து: Arduino ஐப் பயன்படுத்தி இந்த மேம்பட்ட டிஜிட்டல் அம்மீட்டரை உருவாக்கவும்