Arduino షీల్డ్స్ - arduino కోసం విస్తరణ బోర్డులు. Arduino Arduino లో అనలాగ్ ఇన్‌పుట్‌ల విస్తరణ ఇన్‌పుట్ అవుట్‌పుట్ పోర్ట్‌ల విస్తరణ

  • 10.02.2022

కొత్త వ్యాసాలు

● 5.4. MCP23017 చిప్ ఉపయోగించి NodeMCU ESP8266 కోసం డిజిటల్ పోర్ట్‌ల విస్తరణ

Nodemcu మాడ్యూల్‌ను స్మార్ట్ హోమ్ కంట్రోలర్‌గా ఉపయోగిస్తున్నప్పుడు మేము LED సూచన మరియు సౌండ్ అలారంను పరిచయం చేస్తాము. Nodemcu మాడ్యూల్‌లోని పిన్‌ల సంఖ్య Arduino Mega కంటే చాలా తక్కువగా ఉంది, కాబట్టి మనకు MCP23017 ఇన్‌పుట్ ఎక్స్‌పాండర్ IC అవసరం. MCP23017 చిప్ ఇన్‌పుట్ మరియు అవుట్‌పుట్ రెండింటికీ కాన్ఫిగర్ చేయగల 16 పోర్ట్‌లను జోడిస్తుంది (మూర్తి 5.7). చిప్ ప్రసిద్ధ టూ-వైర్ I2C బస్సును ఉపయోగిస్తుంది.

అన్నం. 5.7 MCP23017 పిన్‌అవుట్‌లు

I2C ప్రోటోకాల్ కోసం MCP23017 చిప్ యొక్క చిరునామాను డిజిటల్ ఇన్‌పుట్‌లు A0 - A2 (Fig. 5.8)పై సిగ్నల్‌ల కలయిక ద్వారా సెట్ చేయవచ్చు, ఇది 8 MCP23017 చిప్‌లను మైక్రోకంట్రోలర్‌కు ఒకే సమయంలో కనెక్ట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, వరుసగా 16* 8=128 పిన్స్.

అన్నం. 5.8 MCP23017 చిప్ చిరునామాను సెట్ చేస్తోంది

చిప్‌లో 2 పోర్ట్‌లు A (GPA0-GPA7) మరియు B (GPB0-GPAB) ఉన్నాయి, వీటిలో ప్రతి ఒక్కటి ఇన్‌పుట్ లేదా అవుట్‌పుట్ కోసం కాన్ఫిగర్ చేయబడతాయి.
జాబితా 5.3. A మరియు B అవుట్‌పుట్ బ్యాంక్‌లను ఏర్పాటు చేయడానికి ఒక ఉదాహరణను చూపుతుంది.

జాబితా 5.3

// Wire.h లైబ్రరీని కనెక్ట్ చేస్తోంది #చేర్చండి బైట్ ఇన్‌పుట్=0 ; శూన్యమైన సెటప్()(Serial.begin(9600); Wire.begin(0 ,2); // ప్రారంభం I2C Wire.beginTransmission(0x20); // i2c - చిరునామా (A0-0,A1-0,A2-0) Wire.write(0x00); // IODIRA రిజిస్టర్ Wire.write(0x00 ); // PORT Aని అవుట్‌పుట్‌గా సెట్ చేయండి Wire.endTransmission(); ) శూన్య లూప్(){ // PORT B ​​నుండి డేటాను చదవండి Wire.beginTransmission(0x20 ); Wire.write(0x13 ); Wire.endTransmission(); Wire.requestFrom(0x20 , 1 ); input=Wire.read(); // అందుకున్న డేటాను PORT Aకి వ్రాయండి Wire.beginTransmission(0x20 ); Wire.write(0x12 ); // చిరునామా PORT A Wire.write(ఇన్‌పుట్); // పోర్ట్ A Wire.endTransmission(); ఆలస్యం (100); // విరామం)

MCP23017 చిప్ యొక్క ఉపయోగం Nodemcu మాడ్యూల్ యొక్క డిజిటల్ పరిచయాల సంఖ్యను 16కి విస్తరిస్తుంది మరియు LED సూచన మరియు క్లిష్టమైన సెన్సార్ పారామితుల యొక్క వినగల సిగ్నలింగ్‌ని నిర్వహించడానికి అనుమతిస్తుంది.

ప్రతి ఒక్కరూ చవకైన Arduino బోర్డులను ఇష్టపడతారు, కానీ తరచుగా ఒక ప్రాజెక్ట్ అక్షరాలా ఒకటి లేదా రెండు ఉచిత పోర్ట్‌లను కోల్పోతుంది! మరియు కొన్నిసార్లు తగినంత పోర్టులు ఉన్నాయి, కానీ మీరు నిర్మాణం యొక్క మరొక భాగానికి వైర్ల కట్టను లాగకూడదు. మీరు పరికరం యొక్క ముందు ప్యానెల్లో అనేక బటన్లు మరియు LED లను ఉంచాలని అనుకుందాం. కేబుల్ లేదా జీనుతో కాకుండా కేవలం రెండు డేటా బస్ వైర్‌లతో వాటిని ప్రధాన బోర్డుకి కనెక్ట్ చేయడం మరింత నమ్మదగినది మరియు సులభం, సరియైనదా?

అటువంటి పరిస్థితుల కోసం, Arduino పోర్ట్‌ల యొక్క వివిధ ఎక్స్‌పాండర్‌లు (ఎక్స్‌పాండర్లు) రూపొందించబడ్డాయి.

సాధారణంగా, మైక్రోకంట్రోలర్ పిన్స్ అనేక విభిన్న విధులను అమలు చేస్తాయి, కాబట్టి ఎక్స్పాండర్లు భిన్నంగా ఉంటాయి:

  1. ప్రామాణిక GPIO పోర్ట్ ఎక్స్‌పాండర్
  2. PWM అవుట్‌పుట్ ఎక్స్‌పాండర్
  3. అనలాగ్ ఇన్‌పుట్ ఎక్స్‌పాండర్‌లు - మల్టీప్లెక్సర్‌లు మరియు బాహ్య ADCలు

ప్రత్యేకంగా, డిజిటల్-టు-అనలాగ్ కన్వర్టర్లు (DACలు) మరియు I2C బస్ అడ్రస్ స్పేస్ ఎక్స్‌పాండర్‌లను పేర్కొనడం విలువ. ఈ పరికరాలు నేరుగా పోర్ట్‌ల ఫంక్షన్‌లను నకిలీ చేయవు, కానీ మైక్రోకంట్రోలర్‌ల సామర్థ్యాలను విస్తరిస్తాయి.

సిరీస్ యొక్క మొదటి కథనంలో, డిజిటల్ I / O పోర్ట్‌లుగా పనిచేసే సరళమైన మరియు అత్యంత ఉపయోగకరమైన ఎక్స్‌పాండర్‌ల గురించి మేము మాట్లాడుతాము. ఇవి మైక్రో సర్క్యూట్లు మరియు. అవి అమర్చబడి మరియు పూర్తిగా ఒకేలా పని చేస్తాయి మరియు పోర్ట్‌ల సంఖ్యలో మాత్రమే విభిన్నంగా ఉంటాయి.

Arduino కోసం ఎక్స్‌పాండర్ మాడ్యూల్‌ను ఎంచుకోవడం

అత్యంత ప్రజాదరణ పొందిన మరియు చవకైన మాడ్యూల్ PCF8574 చిప్‌లో తయారు చేయబడింది (Fig. 1)

అన్నం. 1. జనాదరణ పొందిన PCF8574 పోర్ట్ ఎక్స్‌పాండర్ మాడ్యూల్

ప్రయోజనాలు:
  • తక్కువ ధర.
  • ఒక మాడ్యూల్ యొక్క ప్లగ్‌లను మునుపటి సాకెట్‌లలోకి చొప్పించడం ద్వారా మాడ్యూల్‌లను గొలుసులో కనెక్ట్ చేయవచ్చు. వివిధ మాడ్యూల్ చిరునామాలకు జంపర్‌లను సెట్ చేయడం మర్చిపోవద్దు!
లోపాలు:
  • నేరుగా బ్రెడ్‌బోర్డ్‌లోకి చొప్పించడం సాధ్యం కాదు (పోర్ట్ కనెక్టర్‌ను వెనుక వైపుకు టంకం వేయమని నేను సిఫార్సు చేస్తున్నాను).
  • ఒక మాడ్యూల్‌లో మొత్తం ఎనిమిది పోర్ట్‌లు.

మీరు మరింత తీవ్రమైన ప్రాజెక్ట్‌ల కోసం మూడ్‌లో ఉన్నట్లయితే, Aliexpressలో PCF8575 కోసం 16-బిట్ మాడ్యూల్‌ని ఆర్డర్ చేయండి. అంజీర్‌లో చూపిన మాడ్యూల్‌ను నేను గట్టిగా సిఫార్సు చేస్తున్నాను. 2.

అన్నం. 2. PCF8575 పోర్ట్ ఎక్స్పాండర్ మాడ్యూల్

ప్రయోజనాలు:
  • రెండు రెట్లు ఎక్కువ పోర్టులు.
  • అంతర్నిర్మిత 3.3V విద్యుత్ సరఫరా, మీరు ఇతర మాడ్యూళ్ళకు శక్తినివ్వవచ్చు.
  • వివిధ సరఫరా వోల్టేజీల వద్ద I2C బస్సు కోసం అంతర్నిర్మిత లాజిక్ స్థాయి సరిపోలిక.
  • బ్రెడ్‌బోర్డ్ కోసం అనుకూలమైన ఫార్మాట్.
లోపాలు:
  • ధర పైన.

PCF8574/PCF8575 GPIO పోర్ట్ ఎక్స్‌పాండర్ ఎలా పనిచేస్తుంది

I2C బస్సు ద్వారా డేటా మార్పిడి జరుగుతుంది. శక్తితో సహా Arduino బోర్డుకి కనెక్ట్ చేయడానికి కేవలం నాలుగు వైర్లు మాత్రమే అవసరం. ఎక్స్‌పాండర్ చిరునామా A0...A2 ఇన్‌పుట్‌లపై ముగ్గురు జంపర్‌లచే సెట్ చేయబడింది, కాబట్టి ఒకే సమయంలో ఎనిమిది ఒకేలాంటి చిప్‌లను బస్సుకు కనెక్ట్ చేయవచ్చు మరియు PCF8574తో గరిష్టంగా 8*8=64 అదనపు పోర్ట్‌లను లేదా PCF8575తో 8*16=128ని పొందవచ్చు. చిప్.

పోర్ట్‌కు డేటాను అవుట్‌పుట్ చేయడానికి, I2C బస్‌లోని మాడ్యూల్ చిరునామాకు డేటా బైట్‌ను వ్రాయండి. పోర్ట్ నుండి డేటాను చదవడానికి, అదే చిరునామాలో బైట్‌ను చదవండి. ఒక బైట్ ఎల్లప్పుడూ వ్రాయబడుతుంది మరియు మొత్తంగా చదవబడుతుంది, వ్యక్తిగత అంకెలతో పని ప్రోగ్రామ్ ప్రకారం జరుగుతుంది.

మైక్రోసర్క్యూట్ యొక్క అవుట్‌పుట్‌లు ఏకకాలంలో ఇన్‌పుట్‌లు మరియు అవుట్‌పుట్ యొక్క ప్రయోజనాన్ని నిర్ణయించే సేవా రిజిస్టర్ లేదు. అవుట్‌పుట్ బైట్ వ్రాయబడిన ఒక గొళ్ళెం మాత్రమే ఉంది.ఇది ఎలా సాధ్యం?

పోర్ట్‌లు ఓపెన్-కలెక్టర్ పద్ధతిలో పనిచేస్తాయి మరియు అంతర్గత పుల్-అప్ రెసిస్టర్‌లను కలిగి ఉంటాయి. అవుట్‌పుట్‌కు తార్కిక సున్నా వ్రాయబడితే, అవుట్‌పుట్ ట్రాన్సిస్టర్ తెరుచుకుంటుంది, ఇది అవుట్‌పుట్‌ను బలవంతంగా "భూమికి" లాగుతుంది. అటువంటి పోర్ట్ నుండి చదవడం ఎల్లప్పుడూ సున్నాని అందిస్తుంది.

తక్కువ స్థాయి ఉన్న పిన్‌కు డైరెక్ట్ సప్లై వోల్టేజీని వర్తింపజేసేటప్పుడు లేదా కరెంట్ మించిపోయినప్పుడు జాగ్రత్తగా ఉండండి 50 mAమీరు చిప్‌ను నాశనం చేస్తారు!

పోర్ట్‌ను ఇన్‌పుట్‌గా ఉపయోగించడానికి, దానికి ఒకదాన్ని వ్రాయండి. ఈ సందర్భంలో, అంతర్గత ట్రాన్సిస్టర్ మూసివేయబడుతుంది మరియు రీడ్ యొక్క ఫలితం పిన్‌కు వర్తించే బాహ్య లాజిక్ స్థాయి ద్వారా నిర్ణయించబడుతుంది. అంతర్నిర్మిత నిరోధకం ద్వారా ఉచిత అవుట్‌పుట్ శక్తికి లాగబడుతుంది.

కొన్ని పోర్ట్‌లను ఏకకాలంలో ఇన్‌పుట్‌లుగా మరియు కొన్ని అవుట్‌పుట్‌లుగా ఉపయోగించడానికి, ప్రతి డేటా బైట్‌ను ఎక్స్‌పాండర్‌కు వ్రాయడానికి ముందు, “లాజికల్ OR” ఆపరేషన్‌ని ఉపయోగించి ఇన్‌పుట్‌లకు అనుగుణంగా ఉండే బిట్‌లకు యూనిట్ల మాస్క్‌ని వర్తింపజేయడం అవసరం. . అంతే)))

తరం అంతరాయం

PCF857* పోర్ట్ ఎక్స్‌పాండర్‌లు అంతరాయ పల్స్‌ను ఉత్పత్తి చేస్తాయి కింది స్థాయిమైక్రో సర్క్యూట్ యొక్క ఏదైనా ఇన్‌పుట్ వద్ద ఇన్‌పుట్ సిగ్నల్‌లో ఏదైనా మార్పుతో INT అవుట్‌పుట్ వద్ద. ఎక్స్‌పాండర్ కీప్యాడ్‌ను అందిస్తే ఇది సౌకర్యవంతంగా ఉంటుంది. కానీ మీరు ఇంటర్‌ప్ట్ హ్యాండ్లర్‌లో ఏ బటన్‌ను నొక్కారో లేదా విడుదల చేయబడ్డారో నిర్ణయించాలి. అంతరాయ జనరేటర్‌లో చాటర్ సప్రెషన్ ఫిల్టర్ అమర్చబడి ఉంటుంది.

ఉదాహరణ 1: PCF8574 మాడ్యూల్ ఉపయోగించడం

నాలుగు LEDలు, PCF8574 మాడ్యూల్ మరియు Arduino బోర్డు (Fig. 3 మరియు 4) యొక్క సాధారణ సర్క్యూట్‌ను సమీకరించండి. ఈ స్విచ్చింగ్ స్కీమ్‌తో, LED ల కోసం క్వెన్చింగ్ రెసిస్టర్‌లు కూడా మాకు అవసరం లేదు. విద్యుత్తు రైలుకు కనెక్ట్ చేయబడిన LED మరియు అంతర్నిర్మిత నిరోధకం ద్వారా కరెంట్ ప్రవహిస్తుంది.

అన్నం. 3. PCF8574 మాడ్యూల్ యొక్క వైరింగ్ రేఖాచిత్రం

అన్నం. 4. PCF8574 మాడ్యూల్‌తో సర్క్యూట్ లేఅవుట్

Arduino బోర్డులో స్కెచ్ 1ని కాపీ చేసి అతికించండి:

// బస్సులో మాడ్యూల్ చిరునామా (A0, A1, A2 = 0) int చిరునామా = 0x38; // మాడ్యూల్ uint8_t డేటా రిసీవ్ నుండి చదవబడిన డేటా; // మాడ్యూల్‌కు వ్రాయవలసిన డేటా uint8_t dataSend; శూన్యమైన సెటప్() (Wire.begin(); Serial.begin(9600); // అన్ని PCF8574 పోర్ట్‌లకు అధికం (); // బైనరీ ఫార్మాట్‌లో మానిటర్‌కు అవుట్‌పుట్ Serial.println(డేటా రిసీవ్, BIN); // నిబ్బల్ డేటా ద్వారా మిగిలిపోయిన బిట్‌లను మార్చండిSend = డేటా రిసీవ్ చేయండి<< 4; // Накладываем битовую маску dataSend |= B00001111; // Записываем байт в модуль pcf8574_write(dataSend); delay(500); } // Процедура записи байта в модуль void pcf8574_write(uint8_t dt) { Wire.beginTransmission(address); Wire.write(dt); Wire.endTransmission(); } // Процедура чтения байта из модуля int8_t pcf8574_read() { Wire.beginTransmission(address); Wire.endTransmission(); Wire.requestFrom(address, 1); return (Wire.read()); }

మైక్రో సర్క్యూట్ యొక్క అన్ని పోర్ట్‌లకు అధిక స్థాయి మొదట వ్రాయబడుతుంది, కాబట్టి పోర్ట్‌లు P0 ... P3 ఇన్‌పుట్‌లుగా పని చేయగలవు.

పోర్ట్ పిన్స్‌లోని స్థాయిలు ప్రతి 500 msకి చదవబడతాయి మరియు రీడింగ్ ఫలితం మానిటర్‌లో ప్రదర్శించబడుతుంది. మీరు P0...P3 ఇన్‌పుట్‌లలో ఒకదానిని సాధారణ వైర్‌కి కనెక్ట్ చేస్తే, దాని బిట్‌లో సున్నా కనిపిస్తుంది. అప్పుడు చదివే విలువ నాలుగు బిట్‌ల ద్వారా ఎడమ వైపుకు మార్చబడుతుంది, ఫలితంగా పోర్ట్‌కు అవుట్‌పుట్ అవుతుంది మరియు LED లలో ఒకటి బయటకు వెళ్తుంది. ఉదాహరణకు, పిన్ P0 వద్ద సున్నా చదివితే, పిన్ P4కి కనెక్ట్ చేయబడిన LED ఆఫ్ అవుతుంది.

ఎక్స్‌పాండర్‌కి ప్రతి వ్రాయడానికి ముందు, ఇన్‌పుట్‌లుగా ఉండే అన్ని బిట్‌లకు మనం తప్పనిసరిగా బిట్‌మాస్క్‌ని వర్తింపజేయాలని గుర్తుంచుకోండి: డేటాసెండ్ |= B00001111;

I2C బస్‌తో పని చేయడానికి సబ్‌ట్రౌటిన్‌లు చాలా సరళీకృతం చేయబడ్డాయి, లోపాలు ఏవీ ప్రాసెస్ చేయబడవు.

సలహా: I2C బస్సులో మాడ్యూల్ చిరునామాను కనుగొని తనిఖీ చేయడానికి, మీరు ఉపయోగించవచ్చు. ఇది బస్ అభ్యర్థనకు ప్రతిస్పందించే అన్ని పరికరాల చిరునామాలను టెర్మినల్‌కు అవుట్‌పుట్ చేస్తుంది.

ఉదాహరణ 2: PCF8575 మాడ్యూల్ ఉపయోగించడం

PCF8575 మాడ్యూల్ యొక్క ప్రత్యేకత ఏమిటంటే ఇది 16 పోర్ట్‌లను కలిగి ఉంది, కాబట్టి ఇది ఎల్లప్పుడూ రెండు బైట్లు వ్రాయండి మరియు రెండు బైట్లు చదవండి. రెండవ బైట్ అవసరం లేకపోయినా ఈ నియమాన్ని పాటించాలి.

స్కీమాను కొంచెం మారుద్దాం. మేము పోర్ట్సు P10 ... P13 కు LED లను కనెక్ట్ చేస్తాము మరియు మేము పోర్ట్సు P00 ... P03 ను సాధారణ వైర్కు జంపర్తో కలుపుతాము (Fig. 5 మరియు 6).

అన్నం. 5. PCF8575 మాడ్యూల్ యొక్క వైరింగ్ రేఖాచిత్రం

అన్నం. 6. PCF8575 మాడ్యూల్‌తో సర్క్యూట్ లేఅవుట్

స్కెచ్ 2 మొదట అన్ని పోర్ట్‌లకు వాటిని వ్రాస్తుంది, ఆపై ప్రతి 500 ఎంఎస్‌లకు వాటి స్థితిని చదువుతుంది. రీడ్ విధానం బైట్‌లుగా విభజించబడిన 16-బిట్ పదాన్ని అందిస్తుంది. తక్కువ బైట్ (పిన్స్ P00...P07) యొక్క కంటెంట్ అధిక బైట్‌కి కాపీ చేయబడింది మరియు తిరిగి మాడ్యూల్‌కి అప్‌లోడ్ చేయబడింది. P00...P03 అవుట్‌పుట్‌లలో ఒకటి సాధారణ వైర్‌కి కనెక్ట్ చేయబడితే, P10...P13కి కనెక్ట్ చేయబడిన LEDలలో ఒకటి బయటకు వెళ్లిపోతుంది.

// I2Cతో పని చేయడానికి లైబ్రరీ # చేర్చండి // డిఫాల్ట్‌గా బస్సులో మాడ్యూల్ చిరునామా పూర్ణాంక చిరునామా = 0x20; // మాడ్యూల్ uint8_t నుండి డేటా చదవబడింది హాయ్, ఇక్కడ; uint16_t డేటా రిసీవ్; uint8_tdataHighByte; // హై బైట్ (P10...P17) uint8_t డేటాలోబైట్; // తక్కువ బైట్ (P00...P07) శూన్యమైన సెటప్() ( Wire.begin(); Serial.begin(9600); // అన్ని PCF8575 పోర్ట్‌లకు అధిక స్థాయి డేటాహైబైట్ = B11111111; dataLowByte = B11111111; pcf8575_write data ); dataLowByte = lowByte(dataReceive ); // తక్కువ బైట్‌ని అధిక బైట్‌కి కాపీ చేయండి dataHighByte = dataLowByte; // తక్కువ బైట్ డేటాలో మాస్క్ చేయండి ఆలస్యం (500); ) / / మాడ్యూల్ శూన్యం pcf8575_write (uint8_t dtl, int8_t dth)కి బైట్ వ్రాయడానికి విధానం ( Wire.beginTransmission(చిరునామా); Wire.write(dtl); // తక్కువ బైట్ వ్రాయండి (P00... P07) Wire.write(dth); / / అధిక బైట్‌ను వ్రాయండి (P10...P17) Wire.endTransmission(); ) // మాడ్యూల్ నుండి బైట్‌ను చదవడానికి విధానం int16_t pcf8575_read( ) ( Wire.beginTransmission(చిరునామా); Wire.endTransmission(); Wire.requestFrom(చిరునామా, 2); lo = Wire.read(); // తక్కువ బైట్ చదవండి (P00...P07) hi = Wire.read(); // అధిక బైట్ చదవండి (P10...P17) రిటర్న్ (పదం(హాయ్, లో)); // దీర్ఘ పదాన్ని తిరిగి ఇవ్వండి)

PCF8574/PCF8575 కోసం Arduino లైబ్రరీ

లైబ్రరీని GitHub నుండి డౌన్‌లోడ్ చేసుకోవచ్చు. కానీ, మీరు చూడగలిగినట్లుగా, పోర్ట్ ఎక్స్‌టెండర్‌లతో పనిచేయడం చాలా సులభం మరియు మీరు ప్రత్యేక లైబ్రరీ లేకుండా సులభంగా చేయవచ్చు.

Arduino ప్లాట్‌ఫారమ్ యొక్క ముఖ్య ప్రయోజనాల్లో ఒకటి దాని ప్రజాదరణ. ప్రముఖ ప్లాట్ఫారమ్ ఎలక్ట్రానిక్ పరికరాల తయారీదారులచే చురుకుగా మద్దతు ఇస్తుంది, నియంత్రిక యొక్క ప్రాథమిక కార్యాచరణను విస్తరించే వివిధ బోర్డుల ప్రత్యేక సంస్కరణలను విడుదల చేస్తుంది. ఇటువంటి బోర్డులు, చాలా తార్కికంగా విస్తరణ బోర్డులు (మరొక పేరు: arduino షీల్డ్, షీల్డ్) అని పిలుస్తారు, అనేక రకాల పనులను నిర్వహించడానికి ఉపయోగపడతాయి మరియు ఆర్డునియన్ జీవితాన్ని చాలా సులభతరం చేస్తాయి. ఈ ఆర్టికల్‌లో, Arduino విస్తరణ బోర్డు అంటే ఏమిటి మరియు వివిధ రకాల Arduino పరికరాలతో ఎలా పని చేయవచ్చో తెలుసుకుందాం: మోటార్లు (మోటార్ డ్రైవర్ షీల్డ్‌లు), LCD స్క్రీన్‌లు (LCD షీల్డ్‌లు), SD కార్డ్‌లు (డేటా లాగర్), సెన్సార్లు (సెన్సార్ షీల్డ్) మరియు అనేక ఇతరాలు.

ముందుగా నిబంధనలను అర్థం చేసుకుందాం. Arduino విస్తరణ బోర్డు అనేది నిర్దిష్ట విధులను నిర్వహించడానికి రూపొందించబడిన పూర్తి పరికరం మరియు ప్రామాణిక కనెక్టర్లను ఉపయోగించి ప్రధాన కంట్రోలర్‌కు కనెక్ట్ చేయబడింది. విస్తరణ బోర్డు కోసం మరొక ప్రసిద్ధ పేరు ఆంగ్ల భాషలో Arduino షీల్డ్ లేదా కేవలం షీల్డ్. అవసరమైన అన్ని ఎలక్ట్రానిక్ భాగాలు విస్తరణ బోర్డులో వ్యవస్థాపించబడ్డాయి మరియు మైక్రోకంట్రోలర్ మరియు ప్రధాన బోర్డు యొక్క ఇతర అంశాలతో పరస్పర చర్య ప్రామాణిక ఆర్డునో పిన్స్ ద్వారా జరుగుతుంది. చాలా తరచుగా, షీల్డ్ ప్రధాన ఆర్డునో బోర్డు నుండి కూడా శక్తిని పొందుతుంది, అయినప్పటికీ అనేక సందర్భాల్లో ఇతర వనరుల నుండి శక్తిని పొందడం సాధ్యమవుతుంది. ఏదైనా షీల్డ్‌లో, ఏవైనా ఇతర భాగాలను కనెక్ట్ చేయడం ద్వారా మీరు మీ అభీష్టానుసారం ఉపయోగించగల కొన్ని ఉచిత పిన్‌లు ఉన్నాయి.

షీల్డ్ అనే ఆంగ్ల పదాన్ని షీల్డ్, స్క్రీన్, స్క్రీన్ అని అనువదించారు. మా సందర్భంలో, ఇది కంట్రోలర్ బోర్డ్‌ను కప్పి ఉంచే విషయంగా అర్థం చేసుకోవాలి, ఇది పరికరం యొక్క అదనపు పొరను సృష్టిస్తుంది, దాని వెనుక వివిధ అంశాలు దాచబడతాయి.

ఆర్డునో షీల్డ్స్ ఎందుకు అవసరం?

ప్రతిదీ చాలా సులభం: 1) తద్వారా మేము సమయాన్ని ఆదా చేస్తాము మరియు 2) ఎవరైనా డబ్బు సంపాదించవచ్చు. మీరు ఇప్పటికే అసెంబుల్ చేసి, వెంటనే ఉపయోగించడం ప్రారంభించగలిగే వాటి రూపకల్పన, ఉంచడం, టంకం వేయడం మరియు డీబగ్గింగ్ చేయడంలో సమయాన్ని ఎందుకు వృథా చేయాలి? అధిక-నాణ్యత హార్డ్‌వేర్‌పై బాగా రూపొందించబడిన మరియు సమావేశమై, విస్తరణ బోర్డులు సాధారణంగా మరింత విశ్వసనీయంగా ఉంటాయి మరియు తుది పరికరంలో తక్కువ స్థలాన్ని తీసుకుంటాయి. మీరు స్వీయ-అసెంబ్లీని పూర్తిగా వదిలివేయాలని మరియు కొన్ని అంశాల ఆపరేషన్ సూత్రాన్ని అర్థం చేసుకోవలసిన అవసరం లేదని దీని అర్థం కాదు. అన్నింటికంటే, నిజమైన ఇంజనీర్ ఎల్లప్పుడూ అతను ఉపయోగించేది ఎలా పనిచేస్తుందో అర్థం చేసుకోవడానికి ప్రయత్నిస్తాడు. కానీ మనం ప్రతిసారీ చక్రాన్ని తిరిగి ఆవిష్కరించకపోతే మరింత సంక్లిష్టమైన పరికరాలను తయారు చేయగలుగుతాము, కానీ మన ముందు కొంతమంది వ్యక్తులు పరిష్కరించిన వాటిపై దృష్టి కేంద్రీకరించండి.

సహజంగా, మీరు అవకాశాల కోసం చెల్లించాలి. దాదాపు ఎల్లప్పుడూ, తుది షీల్డ్ యొక్క ధర వ్యక్తిగత భాగాల ధర కంటే ఎక్కువగా ఉంటుంది, మీరు ఎల్లప్పుడూ ఇదే ఎంపికను చౌకగా చేయవచ్చు. అయితే ఇక్కడ మీ కోసం వెచ్చించే సమయం లేదా డబ్బు ఎంత క్లిష్టమైనదో నిర్ణయించుకోవడం మీ ఇష్టం. చైనీస్ పరిశ్రమ నుండి సాధ్యమయ్యే అన్ని సహాయాన్ని పరిగణనలోకి తీసుకుంటే, బోర్డుల ధర నిరంతరం తగ్గుతోంది, కాబట్టి చాలా తరచుగా ఎంపిక సిద్ధంగా ఉన్న పరికరాలను ఉపయోగించటానికి అనుకూలంగా ఉంటుంది.

సెన్సార్లు, మోటార్లు, LCD స్క్రీన్‌లు, SD కార్డ్‌లు, నెట్‌వర్క్ మరియు GPS షీల్డ్‌లు, లోడ్‌కు కనెక్ట్ చేయడానికి అంతర్నిర్మిత రిలేలతో పనిచేసే షీల్డ్‌లతో పనిచేసే విస్తరణ బోర్డులు షీల్డ్‌ల యొక్క అత్యంత ప్రసిద్ధ ఉదాహరణలు.

Arduino షీల్డ్‌లను కనెక్ట్ చేస్తోంది

షీల్డ్ను కనెక్ట్ చేయడానికి, మీరు దానిని ప్రధాన బోర్డులో జాగ్రత్తగా "ఉంచాలి". సాధారణంగా, దువ్వెన-రకం షీల్డ్ (పురుషుడు) యొక్క పిన్స్ సులభంగా Arduino బోర్డు కనెక్టర్లలోకి చొప్పించబడతాయి. కొన్ని సందర్భాల్లో, బోర్డు కూడా చక్కగా కరిగించబడకపోతే పిన్‌లను జాగ్రత్తగా సర్దుబాటు చేయడం అవసరం. ఇక్కడ ప్రధాన విషయం ఏమిటంటే జాగ్రత్తగా పనిచేయడం మరియు అధిక శక్తిని ఉపయోగించకూడదు.

నియమం ప్రకారం, షీల్డ్ నియంత్రిక యొక్క నిర్దిష్ట సంస్కరణ కోసం రూపొందించబడింది, అయితే, ఉదాహరణకు, అనేక Arduino Uno షీల్డ్‌లు Arduino మెగా బోర్డులతో బాగా పని చేస్తాయి. మెగాలోని పిన్‌అవుట్ మొదటి 14 డిజిటల్ పరిచయాలు మరియు బోర్డుకి ఎదురుగా ఉన్న పరిచయాలు UNOలోని పరిచయాల స్థానంతో సమానంగా ఉండే విధంగా తయారు చేయబడింది, కాబట్టి ఆర్డునో నుండి షీల్డ్ సులభంగా మారుతుంది.

Arduino షీల్డ్ ప్రోగ్రామింగ్

విస్తరణ బోర్డ్‌తో సర్క్యూట్‌ను ప్రోగ్రామింగ్ చేయడం ఆర్డునో యొక్క సాధారణ ప్రోగ్రామింగ్‌కు భిన్నంగా లేదు, ఎందుకంటే కంట్రోలర్ యొక్క కోణం నుండి, మేము మా పరికరాలను దాని సాధారణ పిన్‌లకు కనెక్ట్ చేసాము. స్కెచ్‌లో, మీరు బోర్డులోని సంబంధిత పిన్‌లకు షీల్డ్‌లో కనెక్ట్ చేయబడిన పిన్‌లను పేర్కొనాలి. నియమం ప్రకారం, తయారీదారు షీల్డ్‌పై లేదా ప్రత్యేక కనెక్షన్ మాన్యువల్‌లో పిన్‌ల సుదూరతను సూచిస్తుంది. మీరు బోర్డు తయారీదారు సిఫార్సు చేసిన స్కెచ్‌లను డౌన్‌లోడ్ చేస్తే, మీరు అలా చేయవలసిన అవసరం లేదు.

షీల్డ్ సిగ్నల్‌లను చదవడం లేదా వ్రాయడం కూడా సాధారణ పద్ధతిలో జరుగుతుంది: ఫంక్షన్‌లను ఉపయోగించడం మరియు ఏదైనా ఆర్డునిస్ట్‌కు తెలిసిన ఇతర ఆదేశాలను ఉపయోగించడం. కొన్ని సందర్భాల్లో, మీరు ఈ కనెక్షన్ స్కీమ్‌కు ఉపయోగించినప్పుడు గుద్దుకోవడం సాధ్యమవుతుంది మరియు తయారీదారు వేరొకదాన్ని ఎంచుకున్నారు (ఉదాహరణకు, మీరు బటన్‌ను నేలకి లాగారు మరియు షీల్డ్‌పై - శక్తికి). ఇక్కడ మీరు కేవలం జాగ్రత్తగా ఉండాలి.

నియమం ప్రకారం, ఈ విస్తరణ బోర్డు ఆర్డునో కిట్‌లలో వస్తుంది మరియు అందువల్ల ఆర్డునో వ్యక్తులు చాలా తరచుగా కలుస్తారు. షీల్డ్ చాలా సులభం - Arduino బోర్డుకి కనెక్ట్ చేయడానికి మరింత అనుకూలమైన ఎంపికలను అందించడం దీని ప్రధాన పని. ఇది అదనపు శక్తి మరియు గ్రౌండ్ కనెక్టర్ల ద్వారా చేయబడుతుంది, ప్రతి అనలాగ్ మరియు డిజిటల్ పిన్‌లకు బోర్డుకి తీసుకురాబడుతుంది. అలాగే బోర్డులో మీరు బాహ్య పవర్ సోర్స్‌ను కనెక్ట్ చేయడానికి కనెక్టర్లను కనుగొనవచ్చు (మీరు మారడానికి జంపర్‌లను ఇన్‌స్టాల్ చేయాలి), LED మరియు రీస్టార్ట్ బటన్. షీల్డ్ ఎంపికలు మరియు వినియోగ ఉదాహరణలు దృష్టాంతాలలో చూడవచ్చు.




సెన్సార్ విస్తరణ బోర్డు యొక్క అనేక వెర్షన్లు ఉన్నాయి. అవన్నీ కనెక్టర్ల సంఖ్య మరియు రకంలో విభిన్నంగా ఉంటాయి. నేడు అత్యంత ప్రజాదరణ పొందిన సంస్కరణలు సెన్సార్ షీల్డ్ v4 మరియు v5.

రోబోటిక్స్ ప్రాజెక్ట్‌లలో ఈ ఆర్డునో షీల్డ్ చాలా ముఖ్యమైనది. ఆర్డునో బోర్డ్‌కు సాధారణ మరియు సర్వో మోటార్‌లను ఒకేసారి కనెక్ట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. షీల్డ్ యొక్క ప్రధాన పని ఏమిటంటే, సాధారణ ఆర్డునో బోర్డ్ కోసం తగినంత అధిక విద్యుత్తును వినియోగించే పరికరాల నియంత్రణను అందించడం. బోర్డు యొక్క అదనపు లక్షణాలు మోటారు శక్తిని నియంత్రించడం (PWM ఉపయోగించి) మరియు భ్రమణ దిశను మార్చడం. అనేక రకాల మోటారు షీల్డ్ బోర్డులు ఉన్నాయి. బాహ్య లోడ్ అనుసంధానించబడిన శక్తివంతమైన ట్రాన్సిస్టర్ సర్క్యూట్‌లో ఉండటం, హీట్ సింక్ ఎలిమెంట్స్ (సాధారణంగా రేడియేటర్), బాహ్య శక్తిని కనెక్ట్ చేయడానికి సర్క్యూట్‌లు, మోటారులను కనెక్ట్ చేయడానికి కనెక్టర్లు మరియు ఆర్డునోకి కనెక్ట్ చేయడానికి పిన్‌లు అన్నింటికీ సాధారణం.



నెట్‌వర్క్‌తో పని చేసే సంస్థ ఆధునిక ప్రాజెక్టులలో అత్యంత ముఖ్యమైన పనులలో ఒకటి. ఈథర్నెట్ ద్వారా లోకల్ ఏరియా నెట్‌వర్క్‌కి కనెక్ట్ చేయడానికి, సంబంధిత విస్తరణ బోర్డు ఉంది.




ప్రోటోటైపింగ్ విస్తరణ బోర్డులు

ఈ బోర్డులు చాలా సరళంగా ఉంటాయి - మౌంటు ఎలిమెంట్స్ కోసం అవి కాంటాక్ట్ ప్యాడ్‌లను కలిగి ఉంటాయి, రీసెట్ బటన్ ప్రదర్శించబడుతుంది మరియు బాహ్య శక్తిని కనెక్ట్ చేయడం సాధ్యపడుతుంది. ఈ షీల్డ్స్ యొక్క ఉద్దేశ్యం పరికరం యొక్క కాంపాక్ట్‌నెస్‌ను పెంచడం, అవసరమైన అన్ని భాగాలు వెంటనే ప్రధాన బోర్డు పైన ఉన్నప్పుడు.





Arduino LCD షీల్డ్ మరియు tft షీల్డ్

ఆర్డునోలో LCD స్క్రీన్‌లతో పని చేయడానికి ఈ రకమైన షీల్డ్ ఉపయోగించబడుతుంది. మీకు తెలిసినట్లుగా, సరళమైన 2-లైన్ టెక్స్ట్ స్క్రీన్‌ను కూడా కనెక్ట్ చేయడం చాలా చిన్న పనికి దూరంగా ఉంది: మీరు విద్యుత్ సరఫరాను లెక్కించకుండా ఒకేసారి 6 స్క్రీన్ పరిచయాలను సరిగ్గా కనెక్ట్ చేయాలి. రెడీమేడ్ మాడ్యూల్‌ను ఆర్డునో బోర్డ్‌లోకి చొప్పించడం మరియు తగిన స్కెచ్‌ను అప్‌లోడ్ చేయడం చాలా సులభం. ప్రసిద్ధ LCD కీప్యాడ్ షీల్డ్‌లో, 4 నుండి 8 బటన్లు వెంటనే బోర్డుకి కనెక్ట్ చేయబడతాయి, ఇది పరికరం యొక్క వినియోగదారు కోసం బాహ్య ఇంటర్‌ఫేస్‌ను వెంటనే నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది. TFT షీల్డ్ కూడా సహాయపడుతుంది



Arduino డేటా లాగర్ షీల్డ్

మీ ఉత్పత్తులలో మీ స్వంతంగా అమలు చేయడం చాలా కష్టమైన మరొక పని, సమయ సూచనతో సెన్సార్ల నుండి స్వీకరించబడిన డేటాను నిల్వ చేయడం. రెడీమేడ్ షీల్డ్ డేటాను సేవ్ చేయడానికి మరియు అంతర్నిర్మిత గడియారం నుండి సమయాన్ని స్వీకరించడానికి మాత్రమే కాకుండా, టంకం లేదా సర్క్యూట్ బోర్డ్‌లో అనుకూలమైన మార్గంలో సెన్సార్లను కనెక్ట్ చేయడానికి కూడా అనుమతిస్తుంది.




సంక్షిప్త సారాంశం

ఈ వ్యాసంలో, మేము ఆర్డునో యొక్క కార్యాచరణను విస్తరించే వివిధ పరికరాల యొక్క భారీ శ్రేణిలో ఒక చిన్న భాగాన్ని మాత్రమే పరిగణించాము. విస్తరణ బోర్డులు మీరు చాలా ముఖ్యమైన విషయంపై దృష్టి పెట్టడానికి అనుమతిస్తాయి - మీ ప్రోగ్రామ్ యొక్క తర్కం. సరైన మరియు విశ్వసనీయ సంస్థాపన, అవసరమైన విద్యుత్ సరఫరా కోసం అందించిన షీల్డ్స్ సృష్టికర్తలు. మీ కోసం మిగిలి ఉన్నది ప్రతిష్టాత్మకమైన ఆంగ్ల పదం షీల్డ్‌ని ఉపయోగించి మీకు అవసరమైన బోర్డ్‌ను కనుగొని, దానిని ఆర్డునోకు కనెక్ట్ చేసి, స్కెచ్‌ను అప్‌లోడ్ చేయండి. సాధారణంగా, షీల్డ్ యొక్క ఏదైనా ప్రోగ్రామింగ్ ఇప్పటికే పూర్తయిన ప్రోగ్రామ్ యొక్క అంతర్గత వేరియబుల్స్ పేరు మార్చడానికి సాధారణ చర్యలను కలిగి ఉంటుంది. ఫలితంగా, మేము ఉపయోగం మరియు కనెక్షన్ యొక్క సౌలభ్యాన్ని పొందుతాము, అలాగే పూర్తయిన పరికరాలు లేదా నమూనాల అసెంబ్లీ వేగం.

విస్తరణ బోర్డులను ఉపయోగించడం యొక్క ప్రతికూలత ఏమిటంటే, వాటి స్వభావంలో ఉండే షీల్డ్స్ యొక్క బహుముఖ ప్రజ్ఞ కారణంగా వాటి ధర మరియు సామర్థ్యాన్ని కోల్పోవడం. మీ నిర్దిష్ట అప్లికేషన్ లేదా ముగింపు పరికరం కోసం, షీల్డ్ యొక్క అన్ని ఫీచర్లు అవసరం ఉండకపోవచ్చు. ఈ సందర్భంలో, మీరు షీల్డ్‌ను ప్రోటోటైపింగ్ మరియు టెస్టింగ్ దశలో మాత్రమే ఉపయోగించాలి మరియు మీ పరికరం యొక్క తుది సంస్కరణను సృష్టించేటప్పుడు, దానిని మీ స్వంత స్కీమ్ మరియు లేఅవుట్ రకంతో డిజైన్‌తో భర్తీ చేయడం గురించి ఆలోచించండి. ఇది మీ ఇష్టం, సరైన ఎంపిక కోసం మీకు అన్ని అవకాశాలు ఉన్నాయి.

→ మీ ఆర్డునోలో అనలాగ్ ఇన్‌పుట్‌లు మరియు అవుట్‌పుట్‌ల సంఖ్యను ఎలా విస్తరించాలి?

మీ ఆర్డునోలో అనలాగ్ ఇన్‌పుట్‌లు మరియు అవుట్‌పుట్‌ల సంఖ్యను ఎలా విస్తరించాలి?

మల్టీప్లెక్సర్ లేదా డీమల్టిప్లెక్సర్ మీ ఆర్డునోలో ఇన్‌పుట్‌లు మరియు అవుట్‌పుట్‌ల సంఖ్యను విస్తరించడానికి మిమ్మల్ని అనుమతిస్తుంది.
4051 అనేది 8-ఛానల్ అనలాగ్ మల్టీప్లెక్సర్/డీమల్టిప్లెక్సర్, ఈ విధంగా:
* మీరు 4051ని మల్టీప్లెక్సర్‌గా ఉపయోగిస్తుంటే: మీరు 8 విభిన్న ఇన్‌పుట్‌లలో దేనినైనా ఎంచుకోవచ్చు మరియు దాని స్థితిని కంట్రోలర్‌కు చదవవచ్చు.
* మీరు 4051ని డీమల్టిప్లెక్సర్‌గా ఉపయోగిస్తుంటే, మీరు 8 విభిన్న అవుట్‌పుట్‌లలో దేనినైనా ఎంచుకోవచ్చు మరియు అక్కడ మీకు కావలసిన విలువను వ్రాయవచ్చు.

అలాగే, 4051 అనలాగ్ విలువలను నిర్వహించగలదు, మీ Arduinoలో, మీరు 0-5V అనలాగ్ సిగ్నల్‌లను ఉపయోగించవచ్చు మరియు Arduinoలోని అనలాగ్ ఇన్‌పుట్‌లకు ICని కనెక్ట్ చేయవచ్చు.

కావలసిన మైక్రో సర్క్యూట్ ఇన్‌పుట్‌ని అలాగే రీడ్ లేదా రైట్ ఆపరేషన్ మోడ్‌లను ఎంచుకోవడానికి, మేము తప్పనిసరిగా మూడు నియంత్రణ సంకేతాలను (S0, S1 మరియు S2) ఉపయోగించాలి. ఈ పిన్‌లలో ప్రతి ఒక్కటి తప్పనిసరిగా Arduino యొక్క డిజిటల్ అవుట్‌పుట్‌లలో ఒకదానికి కనెక్ట్ చేయబడాలి. ప్రతి అవుట్‌పుట్‌కు ఒక సంఖ్య ఉంటుంది (S0 = 1; S1 = 2; S2 = 4) మరియు ఈ అవుట్‌పుట్‌లలో ఒకటి అధిక లాజిక్ స్థాయికి సెట్ చేయబడితే, ప్రాతినిధ్యం వహించే పిన్‌ల సంఖ్య 4051 అవుతుంది.

ఉదాహరణకి:
* మీరు మైక్రో సర్క్యూట్ S0 మరియు S1 యొక్క ఇన్‌పుట్‌ల వద్ద లాగ్ “1”ని సెట్ చేసి, S2 వద్ద “0”ని లాగ్ చేస్తే, మైక్రో సర్క్యూట్ యొక్క ఇన్‌పుట్ y3 ఎంచుకోబడుతుంది, ఇది ఇలా కనిపిస్తుంది (1 +2 +0 = 3).
* మీరు మైక్రో సర్క్యూట్ S0 మరియు S2 యొక్క ఇన్‌పుట్‌ల వద్ద లాగ్ “1”ని సెట్ చేసి, S1 వద్ద “0”ని లాగ్ చేస్తే, మైక్రో సర్క్యూట్ యొక్క ఇన్‌పుట్ y5 ఎంచుకోబడుతుంది, ఇది ఇలా కనిపిస్తుంది (1 +0 +4 = 5).

ఒకేసారి ఒకటి కంటే ఎక్కువ 4051 పిన్‌లకు స్థితిని చదవడం లేదా వ్రాయడం సాధ్యం కాదు. కానీ మీరు చిప్ అవుట్‌పుట్ నుండి స్థితిని చాలా త్వరగా చదవవచ్చు మరియు వ్రాయవచ్చు. 4051 పిన్‌ల స్థితిని ఎంచుకోవడం, చదవడం లేదా వ్రాయడం మధ్య ఆలస్యం అవసరం లేదు.

* Z------ సాధారణ ఇన్‌పుట్ లేదా అవుట్‌పుట్ సిగ్నల్ (Arduino I/Oతో కనెక్ట్ చేయబడింది)
* E ----- ఇన్‌పుట్‌ని ప్రారంభించండి (యాక్టివ్ లాగ్ "0") (గ్రౌండ్‌కి కనెక్ట్ చేయబడింది (GND))
* వీ --- ప్రతికూల సరఫరా వోల్టేజ్ (భూమికి కనెక్ట్ చేయబడింది (GND))
* GND --- గ్రౌండ్ నెగటివ్ (0 V)
* S0-S2 - ఇన్‌పుట్‌లను ఎంచుకోండి (మూడు Arduino డిజిటల్ పిన్‌లకు కనెక్ట్ చేయబడింది)
* y0-Y7 - స్వతంత్ర ఇన్‌పుట్‌లు/అవుట్‌పుట్‌లు
* Vcc --- సానుకూల సరఫరా వోల్టేజ్ (5V)



ఒకే ఒక Arduino అనలాగ్ ఇన్‌పుట్‌తో 64 అనలాగ్ ఇన్‌పుట్‌లను చదవడానికి 9 మల్టీప్లెక్సర్‌ను ఎలా ఉపయోగించాలో ఎగువ ఎడమవైపు చిత్రం ఒక ఉదాహరణ.
Arduino (రెండవ సెటప్ నుండి) కేవలం ఒక డిజిటల్ ఇన్‌పుట్ నుండి 64 బటన్లు లేదా ఇతర డిజిటల్ ఇన్‌పుట్‌లను పరీక్షించడానికి 8x8 మ్యాట్రిక్స్‌లో రెండు 4051లను (ఒకటి డీమల్టిప్లెక్సర్‌గా మరియు మరొకటి మల్టీప్లెక్సర్‌గా కాన్ఫిగర్ చేయబడింది) ఎలా ఉపయోగించాలో ఎగువన ఉన్న సరైన చిత్రం ఒక ఉదాహరణ. మీరు ఒకేసారి రెండు బటన్‌లను కలిగి ఉండవచ్చు) అదే సమయంలో, లేకపోతే మీరు మొదటి (ఎడమ) సెట్టింగ్‌ని ఉపయోగించాలి).

కోడ్ ఉదాహరణ:

// 4051 అనలాగ్ మల్టీప్లెక్సర్/డెమల్టిప్లెక్సర్‌ని ఉపయోగించడం కోసం ఉదాహరణ
// డేవిడ్ సి.

int led = 13 ; // 13వ పాదంలో LEDని సెటప్ చేయండి
int r0 = 0 ; // విలువ అవుట్‌పుట్‌ని 4051 (S0)కి ఎంచుకోండి
int r1 = 0 ; // విలువ అవుట్‌పుట్‌ని 4051 (S1)కి ఎంచుకోండి
int r2 = 0 ; // విలువ అవుట్‌పుట్‌ని 4051 (S2)కి ఎంచుకోండి
పూర్ణాంక వరుస = 0 ; // బిన్ కోడ్‌ను నిల్వ చేయండి
Int కౌంట్ = 0 ; // బ్రష్
int bin = ( 000, 1, 10, 11, 100, 101, 110, 111 ) ; // 4051 చిప్ యొక్క ఎంచుకున్న ఇన్‌పుట్ / అవుట్‌పుట్ సంఖ్యను 1 నుండి 8 వరకు నిర్వచించే బైనరీ సంఖ్యల శ్రేణి.
శూన్యమైన సెటప్ () ( // ప్రారంభించండి
పిన్‌మోడ్ (2 , అవుట్‌పుట్) ; // s0 నిష్క్రమణ
పిన్‌మోడ్ (3 , అవుట్‌పుట్) ; // s1 నిష్క్రమణ
పిన్‌మోడ్ (4 , అవుట్‌పుట్) ; // s2 నిష్క్రమణ
డిజిటల్ రైట్ (లీడ్ , హై) ; // LED వెలిగించండి
ప్రారంభం సీరియల్(9600) ; // UART మార్పిడి రేటు
}

శూన్య లూప్()(
కోసం (కౌంట్ = 0 ; కౌంట్ ≤ 7 ; కౌంట్ ++) (// 1 నుండి 8 వరకు శ్రేణి మూలకాల ద్వారా చక్రం
వరుస = బిన్ [కౌంట్];
r0 = అడ్డు వరుస & 0x01 ;
r1 = (వరుస >> 1) & 0x01 ; //
r2 = (వరుస >> 2) & 0x01 ; //
డిజిటల్ రైట్(2, r0) ;
డిజిటల్ రైట్(3, r1) ;
డిజిటల్ రైట్(4, r2) ;
Serial.println(బిన్);
ఆలస్యం (1000);

SPI లేదా I2C ADC చిప్‌లు రిజల్యూషన్‌లు, నమూనా రేట్లు మరియు ఛానెల్‌ల సంఖ్యలో సులభంగా అందుబాటులో ఉంటాయి. వారు ఏదైనా Arduinoకి జోడించడం చాలా సులభం.

ఉదాహరణకు, MCP3208 ప్రతి SPIకి 12-బిట్ రిజల్యూషన్‌తో 8 ఛానెల్‌లను ఇస్తుంది, అంటే 3 పిన్స్ (MOSI/MISO/SCK) + 1 చిప్‌కి (SS). కాబట్టి 1 చిప్ 4 పిన్స్, 2 చిప్స్ 5 పిన్స్, 3 చిప్స్ 6 పిన్స్, మొదలైనవి.

SPI బస్‌కు చాలా ICలను జోడించడం వలన ఆ ఇన్‌పుట్‌ల కెపాసిటెన్స్ పెరగడం వల్ల దానికదే ఇబ్బందిగా ఉంటుంది, అంటే మీరు మెసేజింగ్ వేగాన్ని కొంచెం తగ్గించాలి లేదా బస్సును మరింత ఎక్కువగా నడపడానికి అదనపు బఫరింగ్‌ని జోడించాలి.

I2C బస్‌లో పరిమిత సంఖ్యలో చిరునామాలు మాత్రమే ఉన్నందున I2C చిప్‌లను కలిగి ఉండటం చాలా కష్టంగా ఉంటుంది - ఇంకా అనేక Arduinos I2Cలో మీరు త్యాగం చేయకూడదనుకునే రెండు అనలాగ్ పిన్‌లు కూడా ఉన్నాయి.

ప్రస్తుతం ఉన్న అనలాగ్ ఇన్‌పుట్‌లకు వివిధ మూలాలను మార్చడానికి అనలాగ్ మల్టీప్లెక్సర్‌లను (ఉదా 4051) ఉపయోగించడం రెండవ ఎంపిక.

మీరు బహుశా పరిగణించని మూడవ ఎంపిక ఏమిటంటే, బహుళ ఆర్డునోలు (లేదా ఇతర చవకైన మైక్రోకంట్రోలర్‌లు) ప్రతి ఒక్కటి కొంత పొందడం మరియు వాటి మధ్య (లేదా ఒకే మాస్టర్‌తో) కొన్ని కమ్యూనికేషన్ పద్ధతిని అమలు చేయడం. ఇది ఒకే సమయంలో బహుళ ఛానెల్‌లను నమూనా చేయగల అదనపు ప్రయోజనాన్ని కలిగి ఉంది (ఒక మైక్రోకంట్రోలర్‌కు ఒకటి), ఇది మీ పనిని కొంతవరకు వేగవంతం చేస్తుంది.

మాజెంకో సమాధానాన్ని విస్తరిస్తూ, మీరు ఒక అనలాగ్ పోర్ట్‌ను 8కి మార్చడానికి 74HC4051 వంటి అనలాగ్ మల్టీప్లెక్సర్‌ని ఉపయోగించవచ్చు.

దీని కజిన్, 74HC4067, 16 పోర్ట్‌లను మల్టీప్లెక్స్ చేస్తుంది. ఇప్పుడు Arduino Unoలో 6 అనలాగ్ ఇన్‌పుట్‌లతో మీరు 6 x 16 ఇన్‌పుట్‌లను = 96 కలిగి ఉండవచ్చు. A/B/C నియంత్రణ సంకేతాలు సమాంతరంగా ఉంటాయి.

ఇది 6 అదనపు చిప్‌లు మరియు చాలా సులభమైన కోడ్‌తో 96 ఇన్‌పుట్‌లను నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది. నా 74HC4051 mux/demux పేజీలో కోడ్ ఉదాహరణలు ఉన్నాయి.

8 ఇన్‌పుట్‌ల కోడ్ కోసం:

// 74HC4051 మల్టీప్లెక్సర్/డెమల్టిప్లెక్సర్‌ని ఉపయోగించడం యొక్క ఉదాహరణ // రచయిత: నిక్ గామన్ // తేదీ: 14 మార్చి 2013 కాన్స్ట్ బైట్ సెన్సార్ = A0; //మల్టీప్లెక్సర్ ఇన్/అవుట్ పోర్ట్ కనెక్ట్ చేయబడిన చోట // మల్టీప్లెక్సర్ అడ్రస్ సెలెక్ట్ లైన్స్ (A/B/C) const byte addressA = 6;//low-order bit const byte addressB = 5; const byte addressC = 4; //high-order bit void setup()( Serial.begin(115200); Serial.println("మల్టిప్లెక్సర్ పరీక్షను ప్రారంభిస్తోంది..."); pinMode(addressA, OUTPUT); pinMode(addressB, OUTPUT) ); పిన్‌మోడ్ (చిరునామా సి, అవుట్‌పుట్); ) //సెటప్ ఇంట్ రీడ్‌సెన్సర్ ముగింపు (కాన్స్ట్ బైట్ ఏది) ( //సరైన MUX ఛానెల్ డిజిటల్‌రైట్‌ని ఎంచుకోండి (చిరునామా, (ఏది & 1) ? హై: తక్కువ); //తక్కువ-ఆర్డర్ బిట్ డిజిటల్ రైట్ (అడ్రస్ బి, (ఏది & 2) ? హై: తక్కువ); డిజిటల్ రైట్ (అడ్రస్ సి, (ఏది & 4) /end of readSensor void loop () ( //(byte i = 0; i) కోసం మొత్తం 8 సెన్సార్ రీడింగ్‌లను చూపు< 7; i++) { Serial.print ("Sensor "); Serial.print (i); Serial.print (" reads: "); Serial.println (readSensor (i)); } delay (1000); } //end of loop

నేను సరిగ్గా అదే సమస్యతో పని చేసాను. నాకు 100 థర్మిస్టర్లు చదివే ప్రోగ్రామ్ కావాలి... ఎందుకు? బాగా, మీకు అవసరమైతే.

నేను ఇప్పటికే పూర్తి చేసాను.

నేను 74HC4051 మల్టీప్లెక్సర్/డీమల్టిప్లెక్సర్‌ని ప్రయత్నించాను. కానీ కొన్ని కారణాల వల్ల ఆశించిన ఫలితం రాలేదు.

మీరు కనుగొనే మొదటి విషయం... POWER, మీకు బాహ్య విద్యుత్ సరఫరా అవసరం, నా విషయంలో నేను వోల్టేజ్ డివైడర్‌ని తయారు చేసాను మరియు థర్మిస్టర్‌ను ఆ శక్తికి కనెక్ట్ చేసి, ఆపై చదవడానికి అనలాగ్ పోర్ట్‌ని ఉపయోగించండి...

నేను I2C ప్రోటోకాల్, 8 ఆర్డునో మెగా 7 స్లేవ్‌లు మరియు ఒక మాస్టర్‌ని ఉపయోగిస్తున్నాను. మరియు పంపిన తర్వాత పూర్ణాంకం పంపండి, ఫ్లోట్ మరియు బ్లా బ్లా నేను దీన్ని చేయడానికి పని చేయలేదు. ఇది I2C ద్వారా ఒక అనలాగ్ రీడ్‌ను పంపగలదు మరియు మాస్టర్ అవసరమైన అన్ని మార్పిడిని చేస్తుంది.

మీకు ఇంకా ఆసక్తి ఉంటే, నేను మీకు మాస్టర్ మరియు స్లేవ్‌ల సోర్స్ కోడ్‌ను పంపగలను. ఈ టెంప్లేట్‌తో, మీరు గరిష్టంగా 50 ఆర్డునోలను కనెక్ట్ చేయవచ్చు మరియు మాస్టర్ నెట్‌వర్క్‌లో కనెక్ట్ చేయబడిన ప్రతి ఆర్డునో కోసం చూస్తారు మరియు డేటాను అభ్యర్థిస్తారు.