ዝርዝር ሁኔታ:
- ደረጃ 1 ADC ምንድን ነው?
- ደረጃ 2- በ AVR- ማይክሮ መቆጣጠሪያ ውስጥ ADC እንዴት እንደሚሰራ
- ደረጃ 3 የ ADC የመቀየሪያ ቀመር
- ደረጃ 4: በ ATmega8 ውስጥ ADC ን እንዴት ማዋቀር?
- ደረጃ 5: የ ADLAR ምርጫ
- ደረጃ 6 የ ADCSRA ምርጫ
- ደረጃ 7: የ ADC ዋጋን መውሰድ ከፈለጉ ከዚህ በታች የተዘረዘረውን የተወሰነ ሥራ ማከናወን አለብዎት
- ደረጃ 8 የ ADC እሴት ያዘጋጁ
- ደረጃ 9 የውጤት LED ፒን ያዋቅሩ
- ደረጃ 10 የ ADC ሃርድዌርን ያዋቅሩ
- ደረጃ 11 ADC ን ያንቁ
- ደረጃ 12 አናሎግን ወደ ዲጂታል ልወጣዎች ይጀምሩ
- ደረጃ 13: እስከ ዘላለም ድረስ
- ደረጃ 14: በመጨረሻው የተሟላ ኮድ ነው
ቪዲዮ: የኤ.ዲ.ሲ መግቢያ በ AVR ማይክሮ መቆጣጠሪያ - ለጀማሪዎች 14 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
በ thid አጋዥ ስልጠና ውስጥ ሁሉንም ነገር ኤዲሲን በአቫር ማይክሮ መቆጣጠሪያ ውስጥ ያውቃሉ
ደረጃ 1 ADC ምንድን ነው?
ኤዲሲ ፣ ወይም አናሎግ ወደ ዲጂታል መለወጫ ፣ አንድ የአናሎግ ቮልቴጅን በማይክሮ መቆጣጠሪያ ሊጠቀምበት ወደሚችል ዲጂታል እሴት እንዲቀይር ያስችለዋል። አንድ ሰው ለመለካት ሊወደው የሚችል ብዙ የአናሎግ ምልክቶች ምንጮች አሉ። ጥቂቶቹን ለመጥቀስ ያህል የሙቀት መጠንን ፣ የብርሃን ጥንካሬን ፣ ርቀትን ፣ ቦታን እና ኃይልን የሚለኩ የአናሎግ ዳሳሾች አሉ።
ደረጃ 2- በ AVR- ማይክሮ መቆጣጠሪያ ውስጥ ADC እንዴት እንደሚሰራ
የ AVR ADC የኤቪአር ማይክሮ መቆጣጠሪያ የአናሎግ ቮልቴጆችን ወደ ጥቂት ዲጂታል እሴቶች ለመለወጥ ያስችለዋል። ATmega8 ባለ 10 ቢት ተከታታይ ግምታዊ ADC አለው። Atmega8 በ PortC 7 ሰርጥ ኤዲሲ አለው። ኤዲሲው የተለየ የአናሎግ አቅርቦት ቮልቴጅ ፒን ፣ AVCC አለው። AVCC ከ VCC ከ ± 0.3V በላይ ሊለያይ አይገባም። የቮልቴጅ ማመሳከሪያው በ AREF ፒን ላይ በውጪ ሊፈታ ይችላል። AVCC እንደ ቮልቴጅ ማጣቀሻ ጥቅም ላይ ይውላል። ኤዲሲው ያለማቋረጥ እንዲሠራ (የነፃ አሂድ ሞድ) ወይም አንድ ልወጣ ብቻ ለማድረግ ሊቀናበር ይችላል።
ደረጃ 3 የ ADC የመቀየሪያ ቀመር
ቪን በተመረጠው የግብዓት ፒን ላይ ያለው ቮልቴጅ እና የተመረጠው የቮልቴጅ ማጣቀሻ Vref ነው
ደረጃ 4: በ ATmega8 ውስጥ ADC ን እንዴት ማዋቀር?
የሚከተሉት መመዝገቢያዎች በ ATmega8 ውስጥ ለ ADC ትግበራ ያገለግላሉ
የኤ.ዲ.ሲ ባለብዙ ባለሙያ ምርጫ
ደረጃ 5: የ ADLAR ምርጫ
የ ADC ግራ ውጤት ያስተካክሉ ADLAR ቢት በ ADC የውሂብ መዝገብ ውስጥ የ ADC ቅየራ ውጤትን አቀራረብ ላይ ተጽዕኖ ያሳድራል። ውጤቱን ለማስተካከል በግራ በኩል አንዱን ወደ ADLAR ይፃፉ። ያለበለዚያ ውጤቱ በትክክል ተስተካክሏል
የኤ.ዲ.ሲ ቅየራ ሲጠናቀቅ ውጤቱ በ ADCH እና ADCL ውስጥ ይገኛል ADCL ሲነበብ ፣ ADCH እስኪያነብ ድረስ የ ADC የውሂብ መመዝገቢያ አይዘምንም። በውጤቱም ፣ ውጤቱ ተስተካክሎ ከ 8 ቢት በላይ ትክክለኛነት የማይፈለግ ከሆነ ፣ ADCH ን ማንበብ በቂ ነው። አለበለዚያ ፣ ADCL መጀመሪያ መነበብ አለበት ፣ ከዚያ ADCH። የአናሎግ ሰርጥ ምርጫ ቢት የእነዚህ ቢት ዋጋ የትኞቹ የአናሎግ ግብዓቶች ከኤዲሲ ጋር እንደሚገናኙ ይመርጣል።
ደረጃ 6 የ ADCSRA ምርጫ
• ቢት 7 - አዴን - ኤዲሲ ይህንን ቢት ለአንዱ መፃፍ ኤዲሲን ያስችላል። ወደ ዜሮ በመጻፍ ፣ ኤዲሲው ጠፍቷል
• ቢት 6 - ኤ.ዲ.ኤስ.ሲ. - ADC ን መለወጥ በአንዲት የልወጣ ሁኔታ ውስጥ ፣ እያንዳንዱን ልወጣ ለመጀመር ይህንን ትንሽ ወደ አንዱ ይፃፉ። በነጻ አሂድ ሁኔታ ውስጥ የመጀመሪያውን ልወጣ ለመጀመር ይህንን ትንሽ ወደ አንዱ ይፃፉ።
• ቢት 5 - ADFR: ADC ነፃ ሩጫ ይምረጡ ይህ ቢት ሲዋቀር (አንድ) ኤዲሲው በነጻ የማስኬድ ሁኔታ ውስጥ ይሠራል። በዚህ ሁኔታ ፣ የኤ.ዲ.ሲ ናሙናዎች እና የመረጃ መዝገቦችን ያለማቋረጥ ያዘምናል። ይህን ትንሽ (ዜሮ) ማጽዳት የነፃ ሩጫ ሁነታን ያበቃል።
• ቢት 4 - ኤዲኤፍ ፦ ኤዲሲ ማቋረጫ ሰንደቅ ይህ ቢት የሚዘጋጀው የኤዲሲ ልወጣ ሲጠናቀቅ እና የውሂብ መመዝገቢያዎቹ ሲዘመኑ ነው። ADIE ቢት እና በ SREG ውስጥ I-bit ከተዋቀሩ የ ADC ልወጣ የተሟላ መቋረጥ ይፈጸማል። ተጓዳኝ ማቋረጫ አያያዝ ቬክተርን ሲፈጽም ኤዲኤፍ በሃርድዌር ይጸዳል። በአማራጭ ፣ ኤዲኤፍ ለሠንደቅ ዓላማው አመክንዮአዊ በመጻፍ ይጸዳል።
• ቢት 3-ADIE: ADC ማቋረጥ ያንቁ ይህ ቢት ለአንድ ሲፃፍ እና በ SREG ውስጥ ያለው I-bit ሲዋቀር ፣ የ ADC ልወጣ የተሟላ ማቋረጫ ገቢር ይሆናል።
• ቢት 2: 0 - ADPS2: 0: ADC Prescaler Select Bits በውሂብ ሉህ መሠረት ፣ የኤዲሲ የግብዓት ድግግሞሽ ከ 50 ኪኸ እስከ 200 ኪኸዝ እንዲሆን ይህ ቅድመ -ተቆጣጣሪ መዘጋጀት አለበት። የኤ.ዲ.ሲ ሰዓት በ ADPS2: 0 እነዚህ ቢት በ XTAL ድግግሞሽ እና በ ADC የግብዓት ሰዓት መካከል ያለውን የመከፋፈል ሁኔታ ይወስናሉ።
ደረጃ 7: የ ADC ዋጋን መውሰድ ከፈለጉ ከዚህ በታች የተዘረዘረውን የተወሰነ ሥራ ማከናወን አለብዎት
- የ ADC እሴት ያዘጋጁ
- የ LED ፒን ውፅዓት ያዋቅሩ
- የ ADC ሃርድዌር ያዋቅሩ
- ADC ን አንቃ
- አናሎግ ወደ ዲጂታል ልወጣዎች ይጀምሩ
- ለዘለዓለም
የኤ.ዲ.ሲ እሴት ከፍ ካለ ከዚያ እሴትን ያዘጋጁ ፣ ኤልኢዲ ኤልኢስን ያብሩ
ደረጃ 8 የ ADC እሴት ያዘጋጁ
ኮድ: uint8_t ADCValue = 128;
ደረጃ 9 የውጤት LED ፒን ያዋቅሩ
ኮድ: DDRB | = (1 << PB1);
ደረጃ 10 የ ADC ሃርድዌርን ያዋቅሩ
የ ADC ሃርድዌር ያዋቅሩ
ይህ የሚከናወነው ለኤ.ዲ.ሲ በመቆጣጠሪያ መመዝገቢያዎች ውስጥ ቢት በማቀናበር ነው። በመጀመሪያ ፣ ለኤ.ዲ.ሲ ቅድመ -ተቆጣጣሪ እናስቀምጥ። በውሂብ ሉህ መሠረት ፣ የኤዲሲ የግብዓት ድግግሞሽ ከ 50 ኪኸ እስከ 200 ኪኸዝ እንዲደርስ ይህ ቅድመ -ተቆጣጣሪ መዘጋጀት አለበት። የኤ.ዲ.ሲ ሰዓት ከስርዓት ሰዓት የተገኘ ነው። በ 1 ሜኸር የስርዓት ድግግሞሽ ፣ የ 8 ቅድመ -ተቆጣጣሪ የኤዲሲ ድግግሞሽ 125 ኪኸስ ያስከትላል። ቅድመ -ውሳኔው በ ADCSRA መዝገብ ውስጥ በ ADPS ቢት ተዘጋጅቷል። በውሂብ ሉህ መሠረት ፣ ሦስቱ ADPS2: 0 ቢት 8 ቅድመ -ተቆጣጣሪ ለማግኘት 011 መዘጋጀት አለባቸው።
ኮድ ፦ ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
በመቀጠል የኤዲሲን የማጣቀሻ ቮልቴጅን እናስቀምጥ። ይህ በ ADMUX መዝገብ ውስጥ በ REFS ቢት ቁጥጥር ይደረግበታል። የሚከተለው የማጣቀሻ ቮልቴጅን ወደ AVCC ያዘጋጃል።
ኮድ ፦ ADMUX | = (1 << REFS0);
ሰርጥውን በብዜት (multixer) በኩል ወደ ኤዲሲ ለማቀናበር ፣ በ ADMUX መዝገብ ውስጥ ያለው የ MUX ቢት በዚህ መሠረት መዘጋጀት አለበት። ADC5 ን እዚህ እየተጠቀምን ስለሆነ
ኮድ: ADMUX & = 0xF0; ADMUX | = 5;
ኤ.ዲ.ሲን ወደ ነፃ አሂድ ሁኔታ ለማስገባት ፣ በ ADCSRA መዝገብ ውስጥ በትክክል የተሰየመውን ADFR ቢት ያዘጋጁ-
ኮድ ፦ ADCSRA | = (1 << ADFR);
የኤዲሲ እሴትን ማንበብ ቀለል ለማድረግ አንድ የመጨረሻ ቅንብሮች ለውጥ ይደረጋል። ምንም እንኳን ኤዲሲው 10 ቢት ጥራት ቢኖረውም ፣ ይህ ብዙ መረጃ ብዙውን ጊዜ አስፈላጊ አይደለም። ይህ 10 ቢት እሴት በሁለት 8 ቢት መመዝገቢያዎች ፣ ADCH እና ADCL ላይ ተከፍሏል። በነባሪ ፣ የ ADC እሴት ዝቅተኛው 8 ቢት በ ADCL ውስጥ ይገኛል ፣ የላይኛው ሁለቱ የ ADCH ዝቅተኛ ሁለት ቢት ናቸው። በኤዲኤምኤክስ መመዝገቢያ ውስጥ የ ADLAR ቢት በማቀናበር ፣ የ ADC እሴቱን አሰላለፍ መተው እንችላለን። ይህ በ ADCH መዝገብ ውስጥ ከፍተኛውን 8 ቢት ልኬቶችን ያስቀምጣል ፣ ቀሪው በ ADCL መዝገብ ውስጥ። ከዚያ የ ADCH መዝገቡን ካነበብን ፣ ከ 0 እስከ 255 ያለውን የ 0 እስከ 5 ቮልት ልኬታችንን የሚወክል 8 ቢት እሴት እናገኛለን። በመሠረቱ የእኛን 10 ቢት የኤዲሲ መለኪያ ወደ 8 ቢት እየቀየርን ነው። የ ADLAR ቢት ለማዘጋጀት ኮድ እዚህ አለ
ኮድ ፦
ADMUX | = (1 << ADLAR); ያ ለዚህ ምሳሌ የኤዲሲ ሃርድዌር ማዋቀሩን ያጠናቅቃል። ኤዲሲ መለኪያዎች መውሰድ ከመጀመሩ በፊት ሁለት ተጨማሪ ቢቶች ማዘጋጀት ያስፈልጋል።
ደረጃ 11 ADC ን ያንቁ
ADC ን ለማንቃት ፣ ADCSRA ውስጥ ADEN ቢት ያዘጋጁ -
ኮድ ፦ ADCSRA | = (1 << አዴን);
ደረጃ 12 አናሎግን ወደ ዲጂታል ልወጣዎች ይጀምሩ
የ ADC ልኬቶችን ለመጀመር ፣ በ ADCSRA ውስጥ ያለው የ ADSC ቢት መዘጋጀት አለበት።
ኮድ ፦ ADCSRA | = (1 << ADSC);
በዚህ ጊዜ ፣ ኤዲሲው በ ADC5 ላይ የቀረውን voltage ልቴጅ ያለማቋረጥ ናሙና ይጀምራል። እስከዚህ ነጥብ ድረስ ያለው ኮድ እንደዚህ ይመስላል
ደረጃ 13: እስከ ዘላለም ድረስ
ማድረግ ያለብዎት ብቸኛው ነገር የኤዲሲ እሴቱን መሞከር እና ከፍተኛ / ዝቅተኛ አመላካች ለማሳየት የኤልዲዎቹን ማዘጋጀት ነው። በ ADCH ውስጥ ያለው የኤ.ዲ.ሲ ንባብ ከፍተኛው 255 እሴት ስላለው ፣ ቮልቴጁ ከፍ ያለ ወይም ዝቅተኛ መሆኑን ለማወቅ የ th የሙከራ እሴት ተመርጧል። በ FOR loops ውስጥ ቀለል ያለ የ IF/ELSE መግለጫ ትክክለኛውን LED ለማብራት ያስችለናል-
ኮድ
ከሆነ (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // LED ን ያብሩ
}
ሌላ
{
PORTB & = ~ (1 << PB0); // LED ን ያጥፉ
}
ደረጃ 14: በመጨረሻው የተሟላ ኮድ ነው
ኮድ ፦
#ያካትቱ
int main (ባዶ)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // LED1 ን እንደ ውጤት ያዘጋጁ
ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // የ ADC ቅድመ -ቅምሻውን ወደ 8 - // 125 ኪኸ ናሙና ናሙና 1 ሜኸዝ ያዘጋጁ
ADMUX | = (1 << REFS0); // የኤ.ዲ.ሲ ማጣቀሻ ወደ AVCC ያዘጋጁ
ADMUX | = (1 << ADLAR); // የ 8 ቢት ንባብን በቀላሉ ለመፍቀድ የ ADC ውጤትን በግራ በኩል ያስተካክሉ
ADMUX & = 0xF0;
ADMUX | = 5; // MUX እሴቶች ADC0 ን ለመጠቀም መለወጥ ያስፈልጋል
ADCSRA | = (1 << ADFR); // ኤዲሲን ወደ ነፃ-አሂድ ሁኔታ ያቀናብሩ
ADCSRA | = (1 << አዴን); // ኤዲሲን ያንቁ
ADCSRA | = (1 << ADSC); // (2) // Loop ለዘላለም
{
ከሆነ (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // LED1 ን ያብሩ
}
ሌላ
{
PORTE & = ~ (1 << PB1); // LED1 ን ያጥፉ
}
}
መመለስ 0;
}
በመጀመሪያ ይህንን አጋዥ ስልጠና ያትሙ እዚህ ጠቅ ያድርጉ
የሚመከር:
ማይክሮ: ቢት ኒዮፒክስል መግቢያ 6 ደረጃዎች
ማይክሮ -ቢት ኒኦፒክስል መግቢያ - ይህ አስተማሪ ስለ ኒዮፒክስሎች አንዳንድ መሠረታዊ ነገሮችን ያስተምራል እና የኒዮፒክስል ቤተ -መጽሐፍት እንዴት እንደሚጠቀሙ ያሳያል። Neopixels ርካሽ ፣ ለመጠቀም ቀላል እና ማይክሮ -ቢት በተመሳሳይ ጊዜ ብዙዎቹን መቆጣጠር ስለሚችል ለፕሮጀክቶችዎ ብርሃንን ለማምጣት ጥሩ መንገድ ናቸው
AVR ማይክሮ መቆጣጠሪያ። ለአልትራሳውንድ የርቀት ዳሳሽ። HC-SR04 በ LCD ኖኪያ 5110: 4 ደረጃዎች
AVR ማይክሮ መቆጣጠሪያ። ለአልትራሳውንድ የርቀት ዳሳሽ። HC-SR04 በ LCD ኖኪያ 5110 ላይ-ጤና ይስጥልኝ! በዚህ ክፍል ውስጥ ርቀቱን ለመለየት ቀላል የኤሌክትሮኒክ መሣሪያ እሠራለሁ እና እነዚህ መለኪያዎች በ LCD ኖኪያ 5110 ላይ ይታያሉ። መለኪያዎች እንደ ንድፍ እና ቁጥሮች ይታያሉ። መሣሪያው በማይክሮ መቆጣጠሪያ AVR ATMEG ላይ የተመሠረተ ነው
AVR ማይክሮ መቆጣጠሪያ። የግፊት አዝራር መቀየሪያን በመጠቀም የ LED ን ይቀያይሩ። የግፋ አዝራር Debouncing .: 4 ደረጃዎች
AVR ማይክሮ መቆጣጠሪያ። የግፊት አዝራር መቀየሪያን በመጠቀም የ LED ን ይቀያይሩ። የግፋ አዝራር ማወዛወዝ። - በዚህ ክፍል ውስጥ ከአዝራር መቀየሪያ ግብዓት መሠረት የሦስቱ ኤልኢዲዎችን ሁኔታ ለመቀየር ለኤቲኤምኤምኤ 328PU የፕሮግራም ሲ ኮድ እንዴት እንደሚሠራ እንማራለን። እንዲሁም ፣ ለ ‹ችግሩ መቀያየር መቀያየር› ለችግሩ መፍትሄዎችን መርምረናል። እንደተለመደው እኛ
AVR ማይክሮ መቆጣጠሪያ። Pulse Width Modulation. የዲሲ ሞተር እና የ LED ብርሃን ጥንካሬ С ተቆጣጣሪ ።: 6 ደረጃዎች
AVR ማይክሮ መቆጣጠሪያ። Pulse Width Modulation. የዲሲ ሞተር እና የ LED ብርሃን ጥንካሬ С ተቆጣጣሪ። ሰላም ለሁሉም! Pulse Width Modulation (PWM) በቴሌኮሙኒኬሽን እና በሃይል ቁጥጥር ውስጥ በጣም የተለመደ ቴክኒክ ነው። እሱ ለኤሌክትሪክ መሣሪያ የተሰጠውን ኃይል ለመቆጣጠር በተለምዶ ጥቅም ላይ ይውላል ፣ ሞተር ፣ ኤልኢዲ ፣ ድምጽ ማጉያዎች ፣ ወዘተ. በመሠረቱ እሱ ሞዱ ነው
AVR ማይክሮ መቆጣጠሪያ Fuse ቢት ውቅር። በማይክሮ መቆጣጠሪያ መቆጣጠሪያ ፍላሽ ማህደረ ትውስታ ውስጥ የ LED ብልጭ ድርግምተኛ መርሃ ግብር መፍጠር እና መስቀል። 5 ደረጃዎች
AVR ማይክሮ መቆጣጠሪያ Fuse ቢት ውቅር። በማይክሮ መቆጣጠሪያ ተቆጣጣሪው ፍላሽ ማህደረ ትውስታ ውስጥ የ LED ብልጭ ድርግምተኛ መርሃ ግብር መፍጠር እና መስቀል የ Atmel ስቱዲዮን እንደ የተቀናጀ የልማት መድረክ በመጠቀም የራሳችንን ፕሮግራም እንጽፋለን እና የሄክሱን ፋይል እናጠናቅቃለን። እኛ ፊውዝ bi ን እናዋቅራለን