- MCP4725 DAC தொகுதி (டிஜிட்டல் முதல் அனலாக் மாற்றி)
- MCP4725 DAC இல் I2C தொடர்பு
- கூறுகள் தேவை
- சுற்று வரைபடம்
- DAC Arduino புரோகிராமிங்
- MCP4725 மற்றும் Arduino ஐப் பயன்படுத்தி டிஜிட்டல் முதல் அனலாக் மாற்றம்
மைக்ரோகண்ட்ரோலர்கள் டிஜிட்டல் மதிப்புகளுடன் மட்டுமே செயல்படுகின்றன என்பதை நாம் அனைவரும் அறிவோம், ஆனால் உண்மையான உலகில் நாம் அனலாக் சிக்னல்களைக் கையாள வேண்டும். அதனால்தான் நிஜ உலக அனலாக் மதிப்புகளை டிஜிட்டல் வடிவமாக மாற்ற ஏடிசி (அனலாக் டு டிஜிட்டல் மாற்றிகள்) உள்ளது, இதனால் மைக்ரோகண்ட்ரோலர்கள் சிக்னல்களை செயலாக்க முடியும். ஆனால் டிஜிட்டல் மதிப்புகளிலிருந்து அனலாக் சிக்னல்கள் நமக்குத் தேவைப்பட்டால், இங்கே டிஏசி (டிஜிட்டல் முதல் அனலாக் மாற்றி) வருகிறது.
டிஜிட்டல் முதல் அனலாக் மாற்றிக்கு ஒரு எளிய எடுத்துக்காட்டு ஸ்டுடியோவில் ஒரு பாடலைப் பதிவுசெய்கிறது, அங்கு ஒரு கலைஞர் பாடகர் மைக்ரோஃபோனைப் பயன்படுத்தி ஒரு பாடலைப் பாடுகிறார். இந்த அனலாக் ஒலி அலைகள் டிஜிட்டல் வடிவமாக மாற்றப்பட்டு பின்னர் டிஜிட்டல் வடிவ கோப்பில் சேமிக்கப்படும் மற்றும் சேமிக்கப்பட்ட டிஜிட்டல் கோப்பைப் பயன்படுத்தி பாடல் இசைக்கப்படும் போது அந்த டிஜிட்டல் மதிப்புகள் ஸ்பீக்கர் வெளியீட்டிற்கான அனலாக் சிக்னல்களாக மாற்றப்படுகின்றன. எனவே இந்த அமைப்பில் டிஏசி பயன்படுத்தப்படுகிறது.
மோட்டார் கட்டுப்பாடு, எல்.ஈ.டி விளக்குகளின் கட்டுப்பாட்டு பிரகாசம், ஆடியோ பெருக்கி, வீடியோ குறியாக்கிகள், தரவு கையகப்படுத்தல் அமைப்புகள் போன்ற பல பயன்பாடுகளில் டிஏசி பயன்படுத்தப்படலாம்.
பல மைக்ரோகண்ட்ரோலர்களில் அனலாக் வெளியீட்டை உருவாக்க ஒரு உள் டிஏசி உள்ளது. ஆனால் ATmega328 / ATmega168 போன்ற Arduino செயலிகளில் DAC உள்ளடிக்கியிருக்கவில்லை. Arduino க்கு ADC அம்சம் உள்ளது (அனலாக் டு டிஜிட்டல் மாற்றி) ஆனால் அதற்கு DAC இல்லை (டிஜிட்டல் முதல் அனலாக் மாற்றி). இது உள் ஏடிசியில் 10-பிட் டிஏசி உள்ளது, ஆனால் இந்த டிஏசி தனித்தனியாக பயன்படுத்த முடியாது. எனவே இங்கே இந்த Arduino DAC டுடோரியலில், Arduino உடன் MCP4725 DAC Module எனப்படும் கூடுதல் பலகையைப் பயன்படுத்துகிறோம் .
MCP4725 DAC தொகுதி (டிஜிட்டல் முதல் அனலாக் மாற்றி)
MCP4725 ஐசி என்பது 12-பிட் டிஜிட்டல் முதல் அனலாக் மாற்றி தொகுதி ஆகும், இது வெளியீட்டு அனலாக் மின்னழுத்தங்களை (0 முதல் 5 வி வரை) உருவாக்க பயன்படுகிறது, மேலும் இது I2C தகவல்தொடர்புகளைப் பயன்படுத்துவதன் மூலம் கட்டுப்படுத்தப்படுகிறது. இது போர்டு nonvolatile memory EEPROM உடன் வருகிறது.
இந்த ஐசி 12-பிட் தீர்மானம் கொண்டது. குறிப்பு மின்னழுத்தத்தைப் பொறுத்து மின்னழுத்த வெளியீட்டை வழங்க (0 முதல் 4096 வரை) உள்ளீடாகப் பயன்படுத்துகிறோம் என்பதாகும். அதிகபட்ச குறிப்பு மின்னழுத்தம் 5 வி ஆகும்.
வெளியீட்டு மின்னழுத்தத்தைக் கணக்கிட சூத்திரம்
O / P மின்னழுத்தம் = (குறிப்பு மின்னழுத்தம் / தீர்மானம்) x டிஜிட்டல் மதிப்பு
எடுத்துக்காட்டுக்கு நாம் 5V ஐ குறிப்பு மின்னழுத்தமாகப் பயன்படுத்தினால், டிஜிட்டல் மதிப்பு 2048 என்று வைத்துக் கொள்வோம். எனவே DAC வெளியீட்டைக் கணக்கிட.
O / P மின்னழுத்தம் = (5/4096) x 2048 = 2.5 வி
MCP4725 இன் பின்அவுட்
முள் பெயர்களை தெளிவாகக் குறிக்கும் MCP4725 இன் படம் கீழே உள்ளது.

|
MCP4725 இன் ஊசிகளும் |
பயன்படுத்தவும் |
|
வெளியே |
வெளியீடுகள் அனலாக் மின்னழுத்தம் |
|
ஜி.என்.டி. |
வெளியீட்டிற்கான ஜி.என்.டி. |
|
எஸ்.சி.எல் |
I2C சீரியல் கடிகார வரி |
|
எஸ்.டி.ஏ. |
I2C சீரியல் தரவு வரி |
|
வி.சி.சி. |
உள்ளீட்டு குறிப்பு மின்னழுத்தம் 5 வி அல்லது 3.3 வி |
|
ஜி.என்.டி. |
உள்ளீட்டுக்கான ஜி.என்.டி. |
MCP4725 DAC இல் I2C தொடர்பு
இந்த டிஏசி ஐசி ஐ 2 சி தகவல்தொடர்புகளைப் பயன்படுத்தி எந்த மைக்ரோகண்ட்ரோலருடன் இணைக்க முடியும். I2C தகவல்தொடர்புக்கு இரண்டு கம்பிகள் SCL மற்றும் SDA மட்டுமே தேவை. இயல்பாக, MCP4725 க்கான I2C முகவரி 0x60 அல்லது 0x61 அல்லது 0x62 ஆகும். எனக்கு அதன் 0x61. I2C பஸ்ஸைப் பயன்படுத்தி பல MCP4725 DAC IC ஐ இணைக்க முடியும். ஐசியின் I2C முகவரியை மாற்ற வேண்டியது ஒன்றுதான். Arduino இல் I2C தொடர்பு ஏற்கனவே முந்தைய டுடோரியலில் விரிவாக விளக்கப்பட்டுள்ளது.

இந்த டுடோரியலில் நாம் ஒரு MCP4725 DAC IC ஐ Arduino Uno உடன் இணைப்போம் மற்றும் ஒரு பொட்டென்டோமீட்டரைப் பயன்படுத்தி Arduino pin A0 க்கு அனலாக் உள்ளீட்டு மதிப்பை வழங்குவோம். அனலாக் மதிப்பை டிஜிட்டல் வடிவமாக மாற்ற ADC பயன்படுத்தப்படும். அதன்பிறகு அந்த டிஜிட்டல் மதிப்புகள் DAC MCP4725 IC ஐப் பயன்படுத்தி அனலாக் சிக்னல்களாக மாற்ற I2C பஸ் வழியாக MCP4725 க்கு அனுப்பப்படுகின்றன. முள் OUT இலிருந்து MCP4725 இன் அனலாக் வெளியீட்டைச் சரிபார்க்க Arduino pin A1 பயன்படுத்தப்படுகிறது, மேலும் இறுதியாக 16x2 LCD காட்சியில் ADC & DAC மதிப்புகள் மற்றும் மின்னழுத்தங்கள் இரண்டையும் காண்பிக்கும்.
கூறுகள் தேவை
- Arduino நானோ / Arduino Uno
- 16x2 எல்சிடி காட்சி தொகுதி
- MCP4725 DAC IC
- 10 கே பொட்டென்டோமீட்டர்
- ப்ரெட்போர்டு
- ஜம்பர் கம்பிகள்
சுற்று வரைபடம்

கீழே உள்ள அட்டவணை MCP4725 DAC IC, Arduino நானோ மற்றும் மல்டி மீட்டருக்கு இடையிலான தொடர்பைக் காட்டுகிறது
|
MCP4725 |
அர்டுடினோ நானோ |
மல்டிமீட்டர் |
|
எஸ்.டி.ஏ. |
அ 4 |
என்.சி. |
|
எஸ்.சி.எல் |
அ 5 |
என்.சி. |
|
A0 அல்லது OUT |
எ 1 |
+ ve முனையம் |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
-ve முனையம் |
|
வி.சி.சி. |
5 வி |
என்.சி. |
16x2 எல்சிடி மற்றும் அர்டுயினோ நானோ இடையே இணைப்பு
|
எல்சிடி 16 எக்ஸ் 2 |
அர்டுடினோ நானோ |
|
வி.எஸ்.எஸ் |
ஜி.என்.டி. |
|
வி.டி.டி. |
+ 5 வி |
|
வி 0 |
எல்சிடியின் மாறுபாட்டை சரிசெய்ய பொட்டென்டோமீட்டர் சென்டர் முள் இருந்து |
|
ஆர்.எஸ் |
டி 2 |
|
ஆர்.டபிள்யூ |
ஜி.என்.டி. |
|
இ |
டி 3 |
|
டி 4 |
டி 4 |
|
டி 5 |
டி 5 |
|
டி 6 |
டி 6 |
|
டி 7 |
டி 7 |
|
அ |
+ 5 வி |
|
கே |
ஜி.என்.டி. |
ஒரு potentiometer, Arduino நானோ, இடது முள் நிலத்திற்கு இடையேயான இணைக்கப்பட்ட மற்றும் Arduino என்ற 5V இணைக்கப்பட்டுள்ளது வலது மிகவும் முனையின் A0 அனலாக் உள்ளீடு இணைக்கப்பட்டுள்ளது சென்டர் முள் பயன்படுத்தப்படுகிறது.

DAC Arduino புரோகிராமிங்
டிஏசி டுடோரியலுக்கான முழுமையான அர்டுயினோ குறியீடு ஒரு ஆர்ப்பாட்ட வீடியோவுடன் இறுதியில் கொடுக்கப்பட்டுள்ளது. இங்கே நாம் குறியீடு வரியை வரி மூலம் விளக்கியுள்ளோம்.
முதலாவதாக, I2C மற்றும் எல்சிடி பயன்படுத்தி நூலகம் அடங்கும் wire.h மற்றும் liquidcrystal.h நூலகம்.
#சேர்க்கிறது
அடுத்து எல்.சி.டி ஊசிகளை ஆர்டுயினோ நானோவுடன் இணைத்துள்ள ஊசிகளின் படி வரையறுத்து துவக்கவும்
லிக்விட் கிரிஸ்டல் எல்சிடி (2,3,4,5,6,7); // எல்சிடி டிஸ்ப்ளே ஊசிகளை வரையறுக்கவும் ஆர்எஸ், ஈ, டி 4, டி 5, டி 6, டி 7
அடுத்து MCP4725 DAC IC இன் I2C முகவரியை வரையறுக்கவும்
# MCP4725 0x61 ஐ வரையறுக்கவும்
வெற்றிட அமைப்பில் ()
முதலில் I2C தகவல்தொடர்புகளை Arduino நானோவின் A4 (SDA) மற்றும் A5 (SCL) ஊசிகளில் தொடங்கவும்
வயர்.பெஜின் (); // I2C தகவல்தொடர்பு தொடங்குகிறது
அடுத்து எல்சிடி டிஸ்ப்ளேவை 16x2 பயன்முறையில் அமைத்து வரவேற்பு செய்தியைக் காண்பி.
lcd.begin (16,2); // எல்சிடியை 16 எக்ஸ் 2 பயன்முறையில் அமைக்கிறது lcd.print ("CIRCUIT DIGEST"); தாமதம் (1000); lcd.clear (); lcd.setCursor (0,0); lcd.print ("Arduino"); lcd.setCursor (0,1); lcd.print ("MCP4725 உடன் DAC"); தாமதம் (2000); lcd.clear ();
வெற்றிட சுழற்சியில் ()
1. இடையகத்தில் முதலில் கட்டுப்பாட்டு பைட் மதிப்பை (0b01000000) வைக்கவும்
(010-எழுதும் பயன்முறையில் MCP4725 ஐ அமைக்கிறது)
இடையக = 0b01000000;
2. பின்வரும் அறிக்கை பின் A0 இலிருந்து அனலாக் மதிப்பைப் படித்து டிஜிட்டல் மதிப்புகளாக மாற்றுகிறது (0-1023). Arduino ADC என்பது 10-பிட் தெளிவுத்திறன், எனவே 4 கொடுப்பனவுகளுடன் பெருக்கவும்: 0-4096, ஏனெனில் DAC 12-பிட் தீர்மானம்.
adc = அனலாக் ரீட் (A0) * 4;
3. இந்த அறிக்கை ADC உள்ளீட்டு மதிப்பிலிருந்து (0 முதல் 4096 வரை) மின்னழுத்தத்தையும் குறிப்பு மின்னழுத்தத்தை 5V ஆகக் கண்டுபிடிப்பதாகும்
float ipvolt = (5.0 / 4096.0) * adc;
4. முதல் வரியின் கீழே ஏடிசி மாறியில் 4 பிட்களை வலப்புறமாக மாற்றுவதன் மூலம் மிக முக்கியமான பிட் மதிப்புகளை இடையகத்தில் வைக்கிறது, மேலும் இரண்டாவது வரி ஏடிசி மாறியில் 4 பிட்களை இடப்பக்கமாக மாற்றுவதன் மூலம் இடையகத்தில் குறைந்த குறிப்பிடத்தக்க பிட் மதிப்புகளை வைக்கிறது.
buffer = adc >> 4; இடையக = adc << 4;
5. பின்வரும் அறிக்கை A1 இலிருந்து அனலாக் மின்னழுத்தத்தைப் படிக்கிறது, இது DAC வெளியீடு (MCP4725 DAC IC இன் OUTPUT பின்). வெளியீட்டு மின்னழுத்தத்தை சரிபார்க்க இந்த முள் மல்டிமீட்டருடன் இணைக்கப்படலாம். மல்டிமீட்டரை எவ்வாறு பயன்படுத்துவது என்பதை இங்கே அறிக.
கையொப்பமிடாத எண்ணாக அனலாக்ரெட் = அனலாக் ரீட் (ஏ 1) * 4;
6. மேலும் மாறி அனலாக்ரெடில் இருந்து மின்னழுத்த மதிப்பு கீழே உள்ள சூத்திரத்தைப் பயன்படுத்தி கணக்கிடப்படுகிறது
float opvolt = (5.0 / 4096.0) * அனலாக்ரெட்;
7. MCP4725 உடன் பரிமாற்றத்தைத் தொடங்க பின்வரும் அறிக்கை பயன்படுத்தப்படுகிறது
Wire.beginTransmission (MCP4725);
கட்டுப்பாட்டு பைட்டை I2C க்கு அனுப்புகிறது
வயர்.ரைட் (இடையக);
MSB ஐ I2C க்கு அனுப்புகிறது
வயர்.ரைட் (இடையக);
LSB ஐ I2C க்கு அனுப்புகிறது
வயர்.ரைட் (இடையக);
பரிமாற்றம் முடிகிறது
வயர்.இன்ட் டிரான்ஸ்மிஷன் ();
இப்போது இறுதியாக அந்த முடிவுகளை எல்சிடி 16 எக்ஸ் 2 டிஸ்ப்ளேயில் எல்சிடி பிரிண்ட் () ஐப் பயன்படுத்தி காண்பி
lcd.setCursor (0,0); lcd.print ("ஒரு ஐபி:"); lcd.print (adc); lcd.setCursor (10,0); lcd.print ("வி:"); lcd.print (ipvolt); lcd.setCursor (0,1); lcd.print ("D OP:"); lcd.print (அனலாக்ரெட்); lcd.setCursor (10,1); lcd.print ("வி:"); lcd.print (opvolt); தாமதம் (500); lcd.clear ();
MCP4725 மற்றும் Arduino ஐப் பயன்படுத்தி டிஜிட்டல் முதல் அனலாக் மாற்றம்
அனைத்து சுற்று இணைப்புகளையும் முடித்து, குறியீட்டை Arduino இல் பதிவேற்றிய பின், பொட்டென்டோமீட்டரை மாற்றி, எல்சிடியில் வெளியீட்டைப் பார்க்கவும் . எல்சிடியின் முதல் வரி உள்ளீட்டு ஏடிசி மதிப்பு மற்றும் மின்னழுத்தத்தைக் காண்பிக்கும், இரண்டாவது வரி வெளியீடு டிஏசி மதிப்பு மற்றும் மின்னழுத்தத்தைக் காண்பிக்கும்.

MCP4725 இன் OUT மற்றும் GND முள் ஒரு மல்டிமீட்டரை இணைப்பதன் மூலம் வெளியீட்டு மின்னழுத்தத்தையும் நீங்கள் சரிபார்க்கலாம்.

இந்த நாங்கள் எப்படி உள்ளது Arduino உடன் டிஏசியைக் தொகுதி MCP4725 இடைமுகப்படுத்துவதற்கான மூலம் அனலாக் டிஜிட்டல் மதிப்புகள் மாற்ற.
