- భాగాలు అవసరం
- MCP4725 DAC మాడ్యూల్ (డిజిటల్ నుండి అనలాగ్ కన్వర్టర్)
- రాస్ప్బెర్రీ పైలో I2C పిన్స్
- రాస్ప్బెర్రీ పైలోకి MCP4725 అడాఫ్రూట్ లైబ్రరీని ఇన్స్టాల్ చేస్తోంది
- అడాఫ్రూట్ ఎల్సిడి డిస్ప్లే లైబ్రరీని ఇన్స్టాల్ చేస్తోంది
- సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు
- ప్రోగ్రామింగ్ రాస్ప్బెర్రీ పై డిజిటల్ టు అనలాగ్ కన్వర్షన్
మైక్రోకంట్రోలర్లు డిజిటల్ విలువలతో మాత్రమే పనిచేస్తాయి కాని వాస్తవ ప్రపంచంలో మనం అనలాగ్ సిగ్నల్లతో వ్యవహరించాలి. అందుకే వాస్తవ ప్రపంచ అనలాగ్ విలువలను డిజిటల్ రూపంలోకి మార్చడానికి ADC (అనలాగ్ టు డిజిటల్ కన్వర్టర్స్) ఉంది, తద్వారా మైక్రోకంట్రోలర్లు సంకేతాలను ప్రాసెస్ చేయవచ్చు. మనకు డిజిటల్ విలువల నుండి అనలాగ్ సిగ్నల్స్ అవసరమైతే, ఇక్కడ DAC (డిజిటల్ నుండి అనలాగ్ కన్వర్టర్) వస్తుంది.
మోటారు నియంత్రణ, ఎల్ఈడీ లైట్ల కంట్రోల్ బ్రైట్నెస్, ఆడియో యాంప్లిఫైయర్, వీడియో ఎన్కోడర్లు, డేటా అక్విజిషన్ సిస్టమ్స్ వంటి అనేక అనువర్తనాల్లో డిఎసిని ఉపయోగించవచ్చు.
మేము ఇప్పటికే MCP4725 DAC మాడ్యూల్ను Arduino మరియు STM32 తో ఇంటర్ఫేస్ చేసాము. ఈ రోజు మనం రాస్ప్బెర్రీ పై ఉపయోగించి డిజిటల్ టు అనలాగ్ కన్వర్టర్ రూపకల్పన చేయడానికి అదే MCP4725 DAC IC ని ఉపయోగిస్తాము. మీరు ఇప్పటికే మీ రాస్ప్బెర్రీ PI లో సరికొత్త OS ని ఇన్స్టాల్ చేశారని మరియు SSH ద్వారా దీనికి ప్రాప్యత ఉందని భావించబడుతుంది. కాకపోతే, కొనసాగడానికి ముందు రాస్ప్బెర్రీ పై ట్యుటోరియల్తో ప్రారంభించడం అనుసరించండి. ఇక్కడ మేము రాస్ప్బెర్రీ పై 3 లో ఇన్స్టాల్ చేయబడిన రాస్బియన్ స్ట్రెచ్ని ఉపయోగిస్తున్నాము.
భాగాలు అవసరం
- రాస్ప్బెర్రీ పై 3 బి + (రాస్పియన్ ఓఎస్ ఇన్స్టాల్ చేయబడి)
- MCP4725 DAC IC
- 16x2 LCD డిస్ప్లే
- బ్రెడ్బోర్డ్
- వైర్లను కనెక్ట్ చేస్తోంది
MCP4725 DAC మాడ్యూల్ (డిజిటల్ నుండి అనలాగ్ కన్వర్టర్)
MCP4725 IC అనేది 12-బిట్ డిజిటల్ నుండి అనలాగ్ కన్వర్టర్ మాడ్యూల్, ఇది అవుట్పుట్ అనలాగ్ వోల్టేజ్లను (0 నుండి 5V వరకు) ఉత్పత్తి చేయడానికి ఉపయోగించబడుతుంది మరియు ఇది I2C కమ్యూనికేషన్ను ఉపయోగించడం ద్వారా నియంత్రించబడుతుంది. ఇది బోర్డు నాన్వోలేటైల్ మెమరీ EEPROM తో కూడా వస్తుంది.
ఈ ఐసికి 12-బిట్ రిజల్యూషన్ ఉంది. రిఫరెన్స్ వోల్టేజ్కు సంబంధించి వోల్టేజ్ అవుట్పుట్ను అందించడానికి మేము (0 నుండి 4096 వరకు) ఇన్పుట్గా ఉపయోగిస్తాము. గరిష్ట సూచన వోల్టేజ్ 5 వి.
అవుట్పుట్ వోల్టేజ్ను లెక్కించడానికి ఫార్ములా
O / P వోల్టేజ్ = (రిఫరెన్స్ వోల్టేజ్ / రిజల్యూషన్) x డిజిటల్ విలువ
ఉదాహరణ కోసం మేము 5V ను రిఫరెన్స్ వోల్టేజ్గా ఉపయోగిస్తే మరియు డిజిటల్ విలువ 2048 అని అనుకుందాం. కాబట్టి DAC అవుట్పుట్ను లెక్కించడానికి.
O / P వోల్టేజ్ = (5/4096) x 2048 = 2.5 వి
MCP4725 యొక్క పిన్అవుట్
పిన్ పేర్లను స్పష్టంగా సూచించే MCP4725 యొక్క చిత్రం క్రింద ఉంది.
MCP4725 యొక్క పిన్స్ |
వా డు |
అవుట్ |
అవుట్పుట్లు అనలాగ్ వోల్టేజ్ |
GND |
అవుట్పుట్ కోసం GND |
ఎస్సీఎల్ |
I2C సీరియల్ క్లాక్ లైన్ |
SDA |
I2C సీరియల్ డేటా లైన్ |
వీసీసీ |
ఇన్పుట్ రిఫరెన్స్ వోల్టేజ్ 5 వి లేదా 3.3 వి |
GND |
ఇన్పుట్ కోసం GND |
ఈ ఐసిని ఐ 2 సి కమ్యూనికేషన్ ఉపయోగించి నియంత్రించవచ్చు, దీనికి రెండు వైర్లు ఎస్సిఎల్ మరియు ఎస్డిఎ మాత్రమే అవసరం. అప్రమేయంగా, MCP4725 కోసం I2C చిరునామా 0x60. రాస్ప్బెర్రీ పైలో I2C కమ్యూనికేషన్ గురించి ఇప్పుడు మనకు తెలుసు.
రాస్ప్బెర్రీ పైలో I2C పిన్స్
రాస్ప్బెర్రీ పైతో MCP4725 ను ఉపయోగించడానికి, రాస్ప్బెర్రీ పై I2C పోర్ట్ పిన్నులను తెలుసుకోవడం మరియు రాస్ప్బెర్రీ పైలో I2C పోర్టును కాన్ఫిగర్ చేయడం.
రాస్ప్బెర్రీ పై 3 మోడల్ B + యొక్క పిన్ రేఖాచిత్రం క్రింద ఉంది, మరియు I2C పిన్స్ GPIO2 (SDA) మరియు GPIO3 (SCL) ఈ ట్యుటోరియల్లో ఉపయోగించబడతాయి.
రాస్ప్బెర్రీ పైలో I2C ను కాన్ఫిగర్ చేస్తోంది
అప్రమేయంగా, రాస్ప్బెర్రీ పైలో I2C నిలిపివేయబడింది. కాబట్టి మొదట దీన్ని ప్రారంభించాలి. రాస్ప్బెర్రీ పైలో I2C ని ప్రారంభించడానికి
1. టెర్మినల్కు వెళ్లి సుడో రాస్పి-కాన్ఫిగర్ టైప్ చేయండి .
2. ఇప్పుడు రాస్ప్బెర్రీ పై సాఫ్ట్వేర్ కాన్ఫిగరేషన్ సాధనం కనిపిస్తుంది.
3. ఇంటర్ఫేసింగ్ ఎంపికలను ఎంచుకుని, ఆపై I2C ని ప్రారంభించండి.
4. I2C రీబూట్ చేసిన తరువాత పై.
రాస్ప్బెర్రీ పై ఉపయోగించి MCP4725 యొక్క I2C చిరునామాను స్కాన్ చేస్తోంది
ఇప్పుడు MCP4725 IC తో కమ్యూనికేషన్ ప్రారంభించడానికి, రాస్ప్బెర్రీ పై దాని I2C చిరునామాను తెలుసుకోవాలి. చిరునామాను కనుగొనడానికి మొదట MCP4725 యొక్క SDA మరియు SCL పిన్లను SDA మరియు రాస్ప్బెర్రీ పై యొక్క SCL పిన్తో కనెక్ట్ చేయండి. + 5V మరియు GND పిన్లను కూడా కనెక్ట్ చేయండి.
కనెక్ట్ చేయబడిన I2C పరికరం యొక్క చిరునామాను తెలుసుకోవడానికి ఇప్పుడు టెర్మినల్ తెరిచి, కమాండ్ క్రింద టైప్ చేయండి, sudo i2cdetect –y 1 లేదా sudo i2cdetect –y 0
I2C చిరునామాను కనుగొన్న తరువాత , రాస్ప్బెర్రీ పైతో MCP4725 ను ఉపయోగించడానికి అవసరమైన లైబ్రరీలను వ్యవస్థాపించే సమయం వచ్చింది.
రాస్ప్బెర్రీ పైలోకి MCP4725 అడాఫ్రూట్ లైబ్రరీని ఇన్స్టాల్ చేస్తోంది
చేయడానికి రాస్ప్బెర్రీ Pi యొక్క I2C బస్సు MCP4725 DAC బోర్డు ఉపయోగించండి, ఒక Adafruit MCP4725 లైబ్రరీ ఉపయోగిస్తారు. లైబ్రరీని డౌన్లోడ్ చేసి, ఇన్స్టాల్ చేయడానికి ఈ దశలను అనుసరించండి:
1. రాస్ప్బెర్రీ పై క్రియాశీల ఇంటర్నెట్కు కనెక్ట్ అయ్యిందని నిర్ధారించుకోండి.
2. తరువాత టెర్మినల్ తెరిచి క్రింది పంక్తులను ఒక్కొక్కటిగా రన్ చేయండి.
sudo apt-get install git build-අත්යවශ්ය పైథాన్-దేవ్ గిట్ క్లోన్ https://github.com/adafruit/Adafruit_Python_MCP4725.git cd Adafruit_Python_MCP4725 sudo python setup.py install
3. విజయవంతమైన సంస్థాపన తరువాత ఇప్పుడు అడాఫ్రూట్ MCP4725 లైబ్రరీని లైన్ ఉపయోగించి ఏదైనా పైథాన్ లిపిలో దిగుమతి చేసుకోవచ్చు
Adafruit_MCP4725 ను దిగుమతి చేయండి
అడాఫ్రూట్ ఎల్సిడి డిస్ప్లే లైబ్రరీని ఇన్స్టాల్ చేస్తోంది
రాస్ప్బెర్రీ పైలోని ఎల్సిడి లైబ్రరీని డౌన్లోడ్ చేసి, ఇన్స్టాల్ చేయడానికి డిఎసి మరియు అనలాగ్ వోల్టేజ్ విలువలను ప్రదర్శించడానికి ఈ ప్రాజెక్టులో ఎల్సిడి ఉపయోగించబడుతుంది:
1. టెర్మినల్ విండోను తెరిచి, కింది పంక్తులను ఒక్కొక్కటిగా అమలు చేయండి.
apt-get install git git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd Adafruit_Python_CharLCD sudo python setup.py install
2. ఎల్సిడి లైబ్రరీని ఇన్స్టాల్ చేసిన తరువాత అడాఫ్రూట్_పైథాన్_చార్ఎల్సిడిని పైథాన్ స్క్రిప్ట్ నుండి ఈ క్రింది పంక్తిని ఉపయోగించి ఉపయోగించవచ్చు
Adafruit_CharLCD ని LCD గా దిగుమతి చేయండి
ఇప్పుడు రాస్ప్బెర్రీ పై డిజిటల్ టు అనలాగ్ కన్వర్టర్ కోసం కోడ్ చేయడానికి సిద్ధంగా ఉంది కాబట్టి ఈ క్రింది చిత్రంలో చూపిన విధంగా సర్క్యూట్ను కనెక్ట్ చేద్దాం.
సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు
రాస్ప్బెర్రీ పైతో DAC IC MCP4725 ను ఉపయోగించటానికి సర్క్యూట్ రేఖాచిత్రం క్రింద ఇవ్వబడింది:
(16x2) LCD & రాస్ప్బెర్రీ పై మధ్య సర్క్యూట్ కనెక్షన్లు
ఎల్సిడి |
రాస్ప్బెర్రీ పై 3 బి + |
వి.ఎస్.ఎస్ |
GND |
VDD |
+ 5 వి |
వి 0 |
కాంట్రాస్ట్ కంట్రోల్ కోసం పొటెన్టోమీటర్ నుండి |
ఆర్ఎస్ |
GPIO25 |
ఆర్డబ్ల్యూ |
GND |
ఇ |
GPIO24 |
డి 4 |
GPIO23 |
డి 5 |
GPIO17 |
డి 6 |
GPIO18 |
డి 7 |
GPIO22 |
జ |
+ 5 వి |
కె |
GND |
MCP4725 & రాస్ప్బెర్రీ పై మధ్య సర్క్యూట్ కనెక్షన్లు
MCP4725 |
రాస్ప్బెర్రీ పై 3 బి + |
మల్టిమీటర్ |
GND |
GND |
నెగటివ్ ప్రోబ్ |
వీసీసీ |
+ 5 వి |
- |
SDA |
GPIO2 (SDA) |
- |
ఎస్సీఎల్ |
GPIO3 (SCL) |
- |
అవుట్ |
- |
పాజిటివ్ ప్రోబ్ |
పూర్తి సెటప్ ఇలా ఉంటుంది:
ప్రోగ్రామింగ్ రాస్ప్బెర్రీ పై డిజిటల్ టు అనలాగ్ కన్వర్షన్
రాస్ప్బెర్రీ పై కోసం పూర్తి పైథాన్ కోడ్ ఈ ట్యుటోరియల్ చివరిలో ఇవ్వబడింది. పుట్టీ వంటి ఏదైనా SSH క్లయింట్ లేదా ఫైల్జిల్లా వంటి ఏదైనా FTP క్లయింట్ ఉపయోగించి దాన్ని కోరిందకాయ పైలోకి అప్లోడ్ చేయండి లేదా మీరు మానిటర్ను కనెక్ట్ చేయడం ద్వారా నేరుగా రాస్ప్బెర్రీ పైలోకి ప్రోగ్రామ్ను వ్రాయవచ్చు. ప్రోగ్రామింగ్ కోరిందకాయ పై గురించి ఇక్కడ మరింత తెలుసుకోండి.
ఈ కార్యక్రమంలో 0-4096 యొక్క డిజిటల్ విలువ రాస్ప్బెర్రీ పై నుండి I2C బస్సు ద్వారా MCP4725 కు 0 నుండి 5V యొక్క అనలాగ్ అవుట్పుట్ వోల్టేజ్ను ఉత్పత్తి చేయడానికి పంపబడుతుంది, దీనిని మల్టీమీటర్తో ధృవీకరించవచ్చు. డిజిటల్ మరియు అనలాగ్ విలువలు రెండూ 16x2 LCD లో ప్రదర్శించబడతాయి. మా కార్యక్రమంలో డిజిటల్ విలువ ఉపయోగించి 150 పెంపులో పంపబడుతుంది కోసం లూప్ (0,150,300,450… 4050). కార్యక్రమాన్ని వివరంగా చూద్దాం.
మొదట అవసరమైన అన్ని లైబ్రరీలను చేర్చండి. ఇక్కడ LCD, MCP4725 మరియు టైమ్ లైబ్రరీ ఉపయోగించబడతాయి.
Adafruit_CharLCD ని LCD దిగుమతిగా దిగుమతి చేయండి Adafruit_MCP4725 దిగుమతి సమయం
తరువాత ఎల్సిడి పిన్లను సంఖ్యతో పాటు నిర్వచించండి. వరుస మరియు నిలువు వరుసల. 16X2 LCD కి 2 వరుసలు మరియు 16 నిలువు వరుసలు ఉన్నాయని మాకు తెలుసు. రాస్ప్బెర్రీ పైతో ఎల్సిడిని ఇంటర్ఫేస్ చేయడం గురించి ఇక్కడ మరింత తెలుసుకోండి.
lcd_rs = 25 lcd_en = 24 lcd_d4 = 23 lcd_d5 = 17 lcd_d6 = 18 lcd_d7 = 22 lcd_backlight = 4 # 16x2 LCD కొరకు LCD కాలమ్ మరియు అడ్డు వరుస పరిమాణాన్ని నిర్వచించండి. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)
తరువాత ఐదు సెకన్ల పాటు ఎల్సిడిలో కొన్ని స్వాగత సందేశాన్ని ప్రదర్శించండి.
lcd.message ('సర్క్యూట్ డైజెస్ట్') time.sleep (2.0) lcd.message ('R nDAC ఉపయోగించి Rpi') time.sleep (5.0) lcd.clear ()
తరువాతి పంక్తిలో, MCP4725 DAC IC యొక్క I2C చిరునామాతో DAC ఉదాహరణ సృష్టించబడుతుంది. నా బోర్డు 0x60 చిరునామాను కలిగి ఉంది, మీ బోర్డు ప్రకారం మార్చండి.
dac = Adafruit_MCP4725.MCP4725 (చిరునామా = 0x60)
ఒక నెక్స్ట్ కోసం లూప్ లోపల ఉపయోగిస్తారు అయితే I2C బస్సు ద్వారా MCP4725 పంపబడిన డిజిటల్ విలువ x మార్చవచ్చు లూప్. కోసం లూప్ శ్రేణి (0,4095,150). X విలువలు 150 యొక్క పెంపుతో 0 నుండి 4050 వరకు ఉంటాయి.
ట్రూ అయితే: పరిధిలో x కోసం (0,4097,150):
కింది పంక్తిని ఉపయోగించి డిజిటల్ విలువ MCP4725 కు పంపబడుతుంది
dac.set_voltage (x)
డిజిటల్ విలువను బట్టి అనలాగ్ విలువ 5 రిఫరెన్స్ వోల్టేజ్ మరియు x డిజిటల్ విలువ అయిన సూత్రాన్ని ఉపయోగించి లెక్కించబడుతుంది.
వోల్టేజ్ = x / 4096.0 * 5.0
అప్పుడు డిజిటల్ విలువ & అనలాగ్ విలువ ఈ క్రింది పంక్తులను ఉపయోగించి 2 సెకన్ల ఆలస్యంతో LCD లో ప్రదర్శించబడుతుంది
lcd.cursor_pos = (0,0) lcd.message ("DAC విలువ:" + str (x)) lcd.message ("\ n అనలాగ్ వోల్ట్:%.2f"% వోల్టేజ్) time.sleep (2)
ఇక్కడ డిజిటల్ విలువ మొదటి వరుసలో మరియు అనలాగ్ విలువ రెండవ వరుస ఎల్సిడి డిస్ప్లేలో చూపబడుతుంది. అనలాగ్ వోల్టేజ్ను ధృవీకరించడానికి మల్టీమీటర్ MCP4725 అవుట్పుట్ పిన్లకు అనుసంధానించబడి ఉంది.
ప్రదర్శన వీడియోతో పూర్తి కోడ్ క్రింద ఇవ్వబడింది.