Სარჩევი:
- ნაბიჯი 1: რა არის ADC?
- ნაბიჯი 2: როგორ მუშაობს ADC AVR- მიკროკონტროლერში
- ნაბიჯი 3: ADC კონვერტაციის ფორმულა
- ნაბიჯი 4: როგორ დავაკონფიგურიროთ ADC ATmega8– ში?
- ნაბიჯი 5: ADLAR შერჩევა
- ნაბიჯი 6: ADCSRA შერჩევა
- ნაბიჯი 7: თუ გსურთ მიიღოთ ADC მნიშვნელობა, თქვენ გჭირდებათ სამუშაო, რომელიც შესრულებულია ქვემოთ
- ნაბიჯი 8: დააყენეთ ADC მნიშვნელობა
- ნაბიჯი 9: გამომავალი LED პინის კონფიგურაცია
- ნაბიჯი 10: ADC აპარატურის კონფიგურაცია
- ნაბიჯი 11: ჩართეთ ADC
- ნაბიჯი 12: დაიწყეთ ციფრული კონვერტაციის ანალოგი
- ნაბიჯი 13: სანამ სამუდამოდ
- ნაბიჯი 14: ბოლოს სრული კოდი არის
ვიდეო: ADC შესავალი AVR მიკროკონტროლერში - დამწყებთათვის: 14 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ამ გაკვეთილში თქვენ იცით ყველაფერი ADC avr მიკროკონტროლერში
ნაბიჯი 1: რა არის ADC?
ADC, ან ანალოგი ციფრული კონვერტორი, საშუალებას აძლევს ადამიანს გარდაქმნას ანალოგური ძაბვა ციფრულ მნიშვნელობად, რომელიც შეიძლება გამოყენებულ იქნას მიკროკონტროლერის მიერ. არსებობს მრავალი ანალოგური სიგნალის წყარო, რომლის გაზომვაც შეიძლება. არსებობს ანალოგური სენსორები, რომლებიც ზომავს ტემპერატურას, სინათლის ინტენსივობას, მანძილს, პოზიციას და ძალას, მხოლოდ რამდენიმე მათგანის დასახელებისთვის.
ნაბიჯი 2: როგორ მუშაობს ADC AVR- მიკროკონტროლერში
AVR ADC საშუალებას აძლევს AVR მიკროკონტროლერს გადააკეთოს ანალოგური ძაბვები ციფრულ მნიშვნელობებზე, გარედან რამდენიმე ნაწილის გარეშე. ATmega8– ს აქვს 10 – ბიტიანი თანმიმდევრული მიახლოება ADC. ATmega8– ს აქვს 7 არხიანი ADC PortC– ში. ADC– ს აქვს ცალკეული ანალოგური მიწოდების ძაბვის პინი, AVCC. AVCC არ უნდა განსხვავდებოდეს CC 0.3V ზე მეტი VCC– სგან. AVCC გამოიყენება როგორც ძაბვის მითითება. ADC ასევე შეიძლება დაყენებული იყოს უწყვეტად მუშაობისთვის (თავისუფალი მუშაობის რეჟიმი) ან მხოლოდ ერთი კონვერტაციის გასაკეთებლად.
ნაბიჯი 3: ADC კონვერტაციის ფორმულა
სადაც Vin არის ძაბვა არჩეულ შეყვანის პინზე და Vref არჩეული ძაბვის მითითება
ნაბიჯი 4: როგორ დავაკონფიგურიროთ ADC ATmega8– ში?
შემდეგი რეგისტრები გამოიყენება ATmega8– ში ADC– ის განსახორციელებლად
ADC მულტიპლექსერის შერჩევა
ნაბიჯი 5: ADLAR შერჩევა
ADC მარცხენა კორექტირების შედეგი ADLAR ბიტი გავლენას ახდენს ADC კონვერტაციის შედეგის პრეზენტაციაზე ADC მონაცემთა რეესტრში. ჩაწერეთ ერთი ADLAR– ზე, მარცხნივ შეცვალეთ შედეგი. წინააღმდეგ შემთხვევაში, შედეგი სწორად არის მორგებული
როდესაც ADC კონვერტაცია დასრულებულია, შედეგი ნაპოვნია ADCH და ADCL როდესაც ADCL იკითხება, ADC მონაცემთა რეესტრი არ განახლდება სანამ ADCH არ იკითხება. შესაბამისად, თუ შედეგი დარჩა მორგებული და საჭიროა არაუმეტეს 8 ბიტიანი სიზუსტის, საკმარისია ADCH– ის წაკითხვა. წინააღმდეგ შემთხვევაში, ჯერ უნდა წაიკითხოთ ADCL, შემდეგ ADCH. ანალოგური არხის შერჩევის ბიტები ამ ბიტების მნიშვნელობა ირჩევს რომელი ანალოგური შეყვანაა დაკავშირებული ADC– სთან.
ნაბიჯი 6: ADCSRA შერჩევა
• ბიტი 7 - ADEN: ADC ჩართეთ ჩაწერეთ ეს ბიტი ერთზე, ჩართეთ ADC. ნულზე ჩაწერისას ADC გამორთულია
• ბიტი 6 - ADSC: ADC კონვერტაციის დაწყება ერთჯერადი კონვერტაციის რეჟიმში, ჩაწერეთ ეს ბიტი ერთზე თითოეული კონვერტაციის დასაწყებად. უფასო გაშვების რეჟიმში ჩაწერეთ ეს ბიტი ერთზე პირველი კონვერტაციის დასაწყებად.
• ბიტი 5 - ADFR: ADC უფასო გაშვება აირჩიეთ როდესაც ეს ბიტი დაყენებულია (ერთი) ADC მუშაობს უფასო გაშვების რეჟიმში. ამ რეჟიმში, ADC სინჯავს და განაახლებს მონაცემთა რეგისტრატორებს განუწყვეტლივ. ამ ბიტის (ნულის) გასუფთავება შეწყვეტს უფასო გაშვების რეჟიმს.
• ბიტი 4 - ADIF: ADC შეწყვეტის დროშა ეს ბიტი დაყენებულია, როდესაც ADC კონვერტაცია სრულდება და მონაცემთა რეგისტრები განახლდება. ADC კონვერტაციის სრული შეწყვეტა შესრულებულია, თუ დაყენებულია ADIE ბიტი და I-bit SREG– ში. ADIF გაწმენდილია ტექნიკით შესაბამისი შეფერხების მართვის ვექტორის შესრულებისას. ალტერნატიულად, ADIF გაწმენდილია დროშის ლოგიკური ჩაწერით.
• ბიტი 3-ADIE: ADC შეწყვეტის ჩართვა როდესაც ეს ბიტი იწერება ერთზე და SREG- ში I ბიტი დაყენებულია, ADC კონვერტაციის სრული შეწყვეტა გააქტიურებულია.
• ბიტი 2: 0 - ADPS2: 0: ADC Prescaler Select Bits მონაცემთა ცხრილის მიხედვით, ეს prescalar უნდა იყოს დაყენებული ისე, რომ ADC შეყვანის სიხშირე იყოს 50 KHz– დან 200 KHz– მდე. ADC საათი გამომდინარეობს სისტემის საათიდან ADPS2– ის დახმარებით: 0 ეს ბიტები განსაზღვრავენ გაყოფის ფაქტორს XTAL სიხშირესა და ADC– ს შესასვლელ საათს შორის.
ნაბიჯი 7: თუ გსურთ მიიღოთ ADC მნიშვნელობა, თქვენ გჭირდებათ სამუშაო, რომელიც შესრულებულია ქვემოთ
- დააყენეთ ADC მნიშვნელობა
- დააკონფიგურიროთ გამომავალი LED პინი
- ADC აპარატურის კონფიგურაცია
- ADC- ის ჩართვა
- დაიწყეთ ციფრული კონვერტაციის ანალოგი
- სანამ სამუდამოდ
თუ ADC მნიშვნელობა უფრო მაღალია, შემდეგ დააყენეთ მნიშვნელობა, ჩართეთ LED ELSE გამორთეთ LED
ნაბიჯი 8: დააყენეთ ADC მნიშვნელობა
კოდი: uint8_t ADCValue = 128;
ნაბიჯი 9: გამომავალი LED პინის კონფიგურაცია
კოდი: DDRB | = (1 << PB1);
ნაბიჯი 10: ADC აპარატურის კონფიგურაცია
ADC აპარატურის კონფიგურაცია
ეს ხდება ADC– ის საკონტროლო რეგისტრებში ბიტების დაყენების გზით. პირველი, მოდით დააყენოთ prescalar ADC– სთვის. მონაცემთა ფურცლის თანახმად, ეს prescalar უნდა იყოს დაყენებული ისე, რომ ADC შეყვანის სიხშირე იყოს 50 KHz– დან 200 KHz– მდე. ADC საათი მომდინარეობს სისტემის საათიდან. სისტემური სიხშირით 1 MHz, წინასწარი გამრიცხველიანება 8 იქნება ADC სიხშირით 125 Khz. პრესკალირება დადგენილია ADPS ბიტებით ADCSRA რეგისტრში. მონაცემთა ცხრილის თანახმად, სამივე ADPS2: 0 ბიტი უნდა იყოს დაყენებული 011 -ზე, რომ მიიღოთ 8 წინასწარი შემფასებელი.
კოდი: ADCSRA | = (0 << ADPS2) | (1 << ADPS1] | (1 << ADPS0];
შემდეგი, მოდით დავაყენოთ ADC საცნობარო ძაბვა. ეს კონტროლდება REFS ბიტებით ADMUX რეგისტრში. ქვემოთ მითითებულია საცნობარო ძაბვა AVCC- ზე.
კოდი: ADMUX | = (1 << REFS0];
მულტიპლექსერზე ADC– ზე გადასული არხის დასაყენებლად ADMUX რეგისტრში MUX ბიტები შესაბამისად უნდა იყოს დადგენილი. ვინაიდან ჩვენ აქ ვიყენებთ ADC5- ს
კოდი: ADMUX & = 0xF0; ADMUX | = 5;
იმისათვის, რომ ADC ჩართოთ თავისუფალ რეჟიმში, დააყენეთ შესაბამისი სახელი ADFR ბიტი ADCSRA რეგისტრში:
კოდი: ADCSRA | = (1 << ADFR);
ერთი ბოლო პარამეტრი შეიცვლება, რათა ADC მნიშვნელობის კითხვა გაადვილდეს. მიუხედავად იმისა, რომ ADC– ს აქვს 10 ბიტიანი გარჩევადობა, ამდენი ინფორმაცია ხშირად არ არის საჭირო. ეს 10 ბიტიანი ღირებულება იყოფა ორ 8 ბიტიან რეგისტრზე, ADCH და ADCL. სტანდარტულად, ADC მნიშვნელობის ყველაზე დაბალი 8 ბიტი გვხვდება ADCL– ში, ზედა ორი არის ADCH– ის ყველაზე დაბალი ორი ბიტი. ADLAR ბიტის დაყენებით ADMUX რეესტრში, ჩვენ შეგვიძლია მარცხნივ გავათანაბროთ ADC მნიშვნელობა. ეს ათავსებს გაზომვის ყველაზე მაღალ 8 ბიტს ADCH რეგისტრში, დანარჩენს ADCL რეესტრში. თუ ჩვენ ვკითხულობთ ADCH რეგისტრს, ჩვენ ვიღებთ 8 ბიტიან მნიშვნელობას, რომელიც წარმოადგენს ჩვენს 0 -დან 5 ვოლტ გაზომვას, როგორც რიცხვს 0 -დან 255 -მდე. ჩვენ, ძირითადად, 10 ბიტიან ADC გაზომვას ვაქცევთ 8 ბიტიანად. აქ არის კოდი ADLAR ბიტის დასაყენებლად:
კოდი:
ADMUX | = (1 << ADLAR]; ეს ასრულებს ამ მაგალითისთვის ADC აპარატურის დაყენებას. კიდევ ორი ბიტი უნდა იყოს დაყენებული სანამ ADC დაიწყებს გაზომვების მიღებას.
ნაბიჯი 11: ჩართეთ ADC
ADC- ის გასააქტიურებლად, დააყენეთ ADEN ბიტი ADCSRA- ში:
კოდი: ADCSRA | = (1 << ADEN];
ნაბიჯი 12: დაიწყეთ ციფრული კონვერტაციის ანალოგი
ADC გაზომვების დასაწყებად, ADCSRA– ში ADSC ბიტი უნდა იყოს მითითებული:
კოდი: ADCSRA | = (1 << ADSC];
ამ დროს, ADC დაიწყებს ADC5- ზე წარმოდგენილი ძაბვის უწყვეტი შერჩევას. ამ წერტილის კოდი ასე გამოიყურება:
ნაბიჯი 13: სანამ სამუდამოდ
ერთადერთი რაც რჩება არის ADC მნიშვნელობის შემოწმება და LED- ების დაყენება მაღალი / დაბალი მაჩვენებლის ჩვენებისათვის. ვინაიდან ADCH– ის კითხვა ADCH– ში აქვს მაქსიმალური მნიშვნელობა 255, ტესტის მნიშვნელობა შეირჩა იმის დასადგენად, იყო ძაბვა მაღალი თუ დაბალი. FOR მარყუჟებში მარტივი IF/ELSE განცხადება საშუალებას მოგვცემს ჩართოთ სწორი LED:
კოდი
თუ (ADCH> ADCValue)
{
პორტი | = (1 << PB0]; // ჩართეთ LED
}
სხვა
{
PORTB & = ~ (1 << PB0); // გამორთეთ LED
}
ნაბიჯი 14: ბოლოს სრული კოდი არის
კოდი:
#ჩართეთ
მთავარი (ბათილია)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0]; // გამოუშვით LED1
ADCSRA | = (0 << ADPS2) | (1 << ADPS1] | (1 << ADPS0]; // დააყენეთ ADC prescalar 8 - // 125KHz ნიმუშის სიხშირე 1MHz
ADMUX | = (1 << REFS0]; // დააყენეთ ADC მითითება AVCC– ზე
ADMUX | = (1 << ADLAR]; // მარცხნივ დაარეგულირეთ ADC შედეგი, რისი საშუალებითაც ადვილია 8 ბიტიანი კითხვა
ADMUX & = 0xF0;
ADMUX | = 5; // MUX მნიშვნელობები უნდა შეიცვალოს ADC0– ის გამოსაყენებლად
ADCSRA | = (1 << ADFR); // დააყენეთ ADC თავისუფალი გაშვების რეჟიმში
ADCSRA | = (1 << ADEN]; // ADC- ის ჩართვა
ADCSRA | = (1 << ADSC]; // დაიწყეთ A2D კონვერსიები სანამ (1) // მარყუჟი სამუდამოდ
{
თუ (ADCH> ADCValue)
{
პორტი | = (1 << PB0]; // ჩართეთ LED1
}
სხვა
{
პორტი & = ~ (1 << PB1); // გამორთეთ LED1
}
}
დაბრუნება 0;
}
პირველად გამოაქვეყნეთ ეს სამეურვეო დააწკაპუნეთ აქ
გირჩევთ:
Covid უსაფრთხოების ჩაფხუტი ნაწილი 1: შესავალი Tinkercad სქემებში!: 20 ნაბიჯი (სურათებით)
Covid უსაფრთხოების ჩაფხუტი ნაწილი 1: შესავალი Tinkercad სქემებში!: გამარჯობა მეგობარო! ამ ორ ნაწილის სერიაში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ Tinkercad– ის სქემები - სახალისო, მძლავრი და საგანმანათლებლო ინსტრუმენტი სქემების მუშაობის შესასწავლად! სწავლის ერთ -ერთი საუკეთესო საშუალებაა ამის გაკეთება. ამრიგად, ჩვენ ჯერ შევქმნით ჩვენს საკუთარ პროექტს:
შესავალი IR სქემებში: 8 ნაბიჯი (სურათებით)
შესავალი IR სქემებში: IR არის ტექნოლოგიის რთული ნაწილი, მაგრამ მასთან მუშაობა ძალიან მარტივია. LED- ებისა და ლაზერებისაგან განსხვავებით, ინფრაწითელი არ ჩანს ადამიანის თვალით. ამ ინსტრუქციებში მე ვაჩვენებ ინფრაწითელი სისტემის გამოყენებას 3 სხვადასხვა სქემით. სქემები არ იქნება თქვენ
თამაშები !!! - შესავალი: 5 ნაბიჯი
თამაშები !!! - შესავალი: გამარჯობა! მე გასწავლით თუ როგორ უნდა შექმნათ სამი განსხვავებული თამაში code.org– ზე. თითოეული თამაშის გაკვეთილის ქვეშ, მე გამოვაქვეყნებ შაბლონს, რომლის რემიქსიც შეგიძლიათ და გამოიყენოთ ჩემი ვიდეოს ყურებისას. ვიმედოვნებ, გაერთეთ სასიამოვნო დროს !! თუ თქვენ გინდათ ჩემი თამაშების ნახვა
პითონის შესავალი - კაწუხიკო მაცუდა და ედვინ ციხო - საფუძვლები: 7 ნაბიჯი
პითონის შესავალი - კაწუხიკო მაცუდა და ედვინ ციხო - საფუძვლები: გამარჯობა, ჩვენ 2 სტუდენტი ვართ MYP 2. ჩვენ გვინდა გასწავლოთ პითონის კოდირების საფუძვლები. ის შეიქმნა 1980 -იანი წლების ბოლოს გუიდო ვან როსუმის მიერ ნიდერლანდებში. იგი შეიქმნა როგორც ABC ენის მემკვიდრე. მისი სახელია " პითონი " რადგან როცა
შესავალი არდუინოში: 18 ნაბიჯი
შესავალი Arduino– სთვის: გიფიქრიათ ოდესმე საკუთარი მოწყობილობების დამზადებაზე, როგორიცაა ამინდის სადგური, მანქანის დაფა საწვავის მონიტორინგისთვის, სიჩქარისა და ადგილმდებარეობის თვალყურის დევნისთვის ან სმარტფონებით კონტროლირებადი თქვენი საყოფაცხოვრებო ტექნიკის გასაკეთებლად, ან გიფიქრიათ ოდესმე დახვეწილი ტექნიკის დამზადებაზე