Tartalomjegyzék:
- 1. lépés: Mi az ADC?
- 2. lépés: Az ADC működése az AVR-mikrokontrollerben
- 3. lépés: ADC konverziós képlet
- 4. lépés: Hogyan konfigurálható az ADC az ATmega8 -ban?
- 5. lépés: ADLAR kiválasztás
- 6. lépés: ADCSRA kiválasztása
- 7. lépés: Ha ADC értéket szeretne felvenni, akkor az alább felsorolt munkákra van szüksége
- 8. lépés: Állítsa be az ADC értéket
- 9. lépés: A kimeneti LED tű konfigurálása
- 10. lépés: Konfigurálja az ADC hardvert
- 11. lépés: Engedélyezze az ADC -t
- 12. lépés: Indítsa el az analóg -digitális konverziókat
- 13. lépés: ÖRÖKRE
- 14. lépés: A végén a teljes kód
Videó: Az ADC bevezetése az AVR mikrokontrollerben - kezdőknek: 14 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ebben az oktatóanyagban mindent tudni fog az ADC -ről az avr mikrokontrollerben
1. lépés: Mi az ADC?
Az ADC vagy analóg -digitális átalakító lehetővé teszi az analóg feszültség átalakítását digitális értékre, amelyet a mikrokontroller használhat. Sok analóg jelforrás létezik, amelyeket érdemes mérni. Vannak analóg érzékelők, amelyek mérik a hőmérsékletet, a fényintenzitást, a távolságot, a pozíciót és az erőt, hogy csak néhányat említsünk.
2. lépés: Az ADC működése az AVR-mikrokontrollerben
Az AVR ADC lehetővé teszi az AVR mikrokontroller számára, hogy az analóg feszültségeket digitális értékekké alakítsa, kevés külső alkatrész nélkül. Az ATmega8 10 bites egymást követő közelítő ADC-t tartalmaz. Az ATmega8 7 csatornás ADC-vel rendelkezik a PortC-n. Az ADC külön analóg tápfeszültséggel rendelkezik, AVCC. Az AVCC nem térhet el ± 0,3 V -nál nagyobb mértékben a VCC -től. A feszültségreferencia kívülről leválasztható az AREF tüskénél. Az AVCC -t használják feszültség -referenciaként. Az ADC beállítható úgy is, hogy folyamatosan fusson (szabadon futó mód), vagy csak egy konverziót végezzen.
3. lépés: ADC konverziós képlet
Ahol Vin a kiválasztott bemeneti tüske feszültsége és Vref a kiválasztott feszültségreferencia
4. lépés: Hogyan konfigurálható az ADC az ATmega8 -ban?
A következő regisztereket használják az ADC megvalósításához az ATmega8 -ban
ADC multiplexer kiválasztása
5. lépés: ADLAR kiválasztás
ADC balra állítás eredménye Az ADLAR bit befolyásolja az ADC konverziós eredmény megjelenítését az ADC adatregiszterben. Írjon egyet az ADLAR balra az eredmény beállításához. Ellenkező esetben az eredmény helyesen van beállítva
Amikor az ADC konverzió befejeződött, az eredmény megtalálható az ADCH és az ADCL között. ADCL olvasásakor az ADC adatregiszter nem frissül, amíg az ADCH ki nem olvasásra kerül. Következésképpen, ha az eredményt módosítva hagyjuk, és legfeljebb 8 bites pontosságra van szükség, akkor elegendő az ADCH olvasása. Ellenkező esetben először az ADCL -t kell olvasni, majd az ADCH -t. Analóg csatorna kiválasztó bitek Ezeknek a biteknek az értéke határozza meg, hogy mely analóg bemenetek csatlakoznak az ADC -hez.
6. lépés: ADCSRA kiválasztása
• 7. bit - ADEN: ADC Engedélyezés Ennek a bitnek az egyikbe írása engedélyezi az ADC -t. Ha nullára írja, az ADC kikapcsol
• 6. bit - ADSC: ADC Konverzió indítása Egyszeri átváltás módban írja be ezt a bitet az egyikbe minden konverzió elindításához. Szabad futás módban írja be ezt a bitet az egyikbe az első konverzió elindításához.
• 5. bit - ADFR: ADC szabadonfutás kiválasztása Ha ez a bit van beállítva (egy), az ADC szabadonfutó üzemmódban működik. Ebben az üzemmódban az ADC folyamatosan mintát vesz és frissíti az adatregisztereket. Ennek a bitnek (nulla) törlése megszünteti az ingyenes futás módot.
• 4. bit - ADIF: ADC megszakítás jelző Ez a bit akkor állítható be, amikor az ADC konverzió befejeződik és az adatregiszterek frissülnek. Az ADC Conversion Complete Interrupt akkor kerül végrehajtásra, ha az ADIE bit és az I-bit az SREG-ben be van állítva. Az ADIF -et hardver törli a megfelelő megszakításkezelő vektor végrehajtásakor. Alternatív megoldásként az ADIF törlésre kerül, ha logikus logót ír a zászlóba.
• 3. bit-ADIE: ADC megszakítás engedélyezése Ha ezt a bitet az egyikbe írják, és az SREG I-bitje be van állítva, akkor az ADC konverzió teljes megszakítása aktiválódik.
• Bits 2: 0 - ADPS2: 0: ADC Prescaler Select Bits Az adatlap szerint ezt az előskálát úgy kell beállítani, hogy az ADC bemeneti frekvenciája 50 KHz és 200 KHz között legyen. Az ADC órajel a rendszerórából származik az ADPS2: 0 segítségével. Ezek a bitek határozzák meg az osztási tényezőt az XTAL frekvencia és az ADC bemeneti óra között.
7. lépés: Ha ADC értéket szeretne felvenni, akkor az alább felsorolt munkákra van szüksége
- Állítsa be az ADC értékét
- A kimeneti LED -tű konfigurálása
- Konfigurálja az ADC hardvert
- Engedélyezze az ADC -t
- Indítsa el az analóg -digitális konverziókat
- ÖRÖKRE
HA ADC érték magasabb, mint beállított érték, kapcsolja be a LED -et ELSE Kapcsolja ki a LED -et
8. lépés: Állítsa be az ADC értéket
Kód: uint8_t ADCValue = 128;
9. lépés: A kimeneti LED tű konfigurálása
Kód: DDRB | = (1 << PB1);
10. lépés: Konfigurálja az ADC hardvert
Konfigurálja az ADC hardvert
Ez az ADC vezérlőregisztereiben lévő bitek beállításával történik. Először állítsuk be az előskálát az ADC számára. Az adatlap szerint ezt az előskálát úgy kell beállítani, hogy az ADC bemeneti frekvenciája 50 KHz és 200 KHz között legyen. Az ADC óra a rendszerórából származik. 1MHz -es rendszerfrekvenciával a 8 -as előskálázó 125 Khz ADC frekvenciát eredményez. Az előskálázást az ADPS bitek adják meg az ADCSRA regiszterben. Az adatlap szerint mind a három ADPS2: 0 bitet 011 -re kell állítani, hogy megkapja a 8 előskálázót.
Kód: ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
Ezután állítsuk be az ADC referenciafeszültséget. Ezt az ADMUX regiszter REFS bitjei vezérlik. Az alábbiakban az AVCC referenciafeszültséget állítjuk be.
Kód: ADMUX | = (1 << REFS0);
A multiplexeren átvitt csatorna ADC -hez történő beállításához az ADMUX regiszterben található MUX biteket ennek megfelelően kell beállítani. Mivel itt az ADC5 -öt használjuk
Kód: ADMUX & = 0xF0; ADMUX | = 5;
Annak érdekében, hogy az ADC szabadon futó üzemmódba kerüljön, állítsa be a megfelelő nevű ADFR bitet az ADCSRA regiszterben:
Kód: ADCSRA | = (1 << ADFR);
Még egy utolsó beállítási változtatás történik, hogy egyszerűbb legyen az ADC -érték leolvasása. Bár az ADC felbontása 10 bit, ennyi információra gyakran nincs szükség. Ez a 10 bites érték két 8 bites regiszterre, ADCH és ADCL van felosztva. Alapértelmezés szerint az ADCL legalacsonyabb 8 bitje található az ADCL -ben, a felső kettő pedig az ADCH legalacsonyabb két bitje. Az ADLAR bit beállításával az ADMUX regiszterben balra igazíthatjuk az ADC értéket. Ez a mérés legmagasabb 8 bitjét az ADCH regiszterbe helyezi, a többit az ADCL regiszterbe. Ha ezután elolvassuk az ADCH regisztert, akkor egy 8 bites értéket kapunk, amely 0 és 5 voltos mérésünket 0 és 255 közötti számként képviseli. Alapvetően a 10 bites ADC mérésünket 8 bitesre változtatjuk. Íme a kód az ADLAR bit beállításához:
Kód:
ADMUX | = (1 << ADLAR); Ezzel befejeződik az ADC hardver beállítása ebben a példában. Még két bitet be kell állítani, mielőtt az ADC megkezdi a mérést.
11. lépés: Engedélyezze az ADC -t
Az ADC engedélyezéséhez állítsa be az ADEN bitet az ADCSRA -ban:
Kód: ADCSRA | = (1 << ADEN);
12. lépés: Indítsa el az analóg -digitális konverziókat
Az ADC mérések elindításához be kell állítani az ADCSRA ADSC bitjét:
Kód: ADCSRA | = (1 << ADSC);
Ezen a ponton az ADC folyamatosan elkezdi mintavételezni az ADC5 -n feltüntetett feszültséget. A kód eddig így nézne ki:
13. lépés: ÖRÖKRE
Már csak az ADC érték tesztelése és a LED -ek magas / alacsony jelzésének beállítása. Mivel az ADCH -ban az ADC -érték maximális értéke 255, a th tesztértékét választottuk annak megállapítására, hogy a feszültség magas vagy alacsony. Egy egyszerű IF/ELSE utasítás a FOR ciklusokban lehetővé teszi a megfelelő LED bekapcsolását:
Kód
if (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Kapcsolja be a LED -et
}
más
{
PORTB & = ~ (1 << PB0); // Kapcsolja ki a LED -et
}
14. lépés: A végén a teljes kód
Kód:
#befoglalni
int main (void)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // A LED1 beállítása kimenetnek
ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Állítsa az ADC előskálát 8 - 125KHz mintavételi frekvenciára 1 MHz -re
ADMUX | = (1 << REFS0); // Állítsa az ADC hivatkozást AVCC értékre
ADMUX | = (1 << ADLAR); // Az ADC bal oldali beállítása lehetővé teszi a könnyű 8 bites olvasást
ADMUX & = 0xF0;
ADMUX | = 5; // A MUX értékeket módosítani kellett az ADC0 használatához
ADCSRA | = (1 << ADFR); // Állítsa az ADC-t szabadon futó üzemmódba
ADCSRA | = (1 << ADEN); // ADC engedélyezése
ADCSRA | = (1 << ADSC); // Indítsa el az A2D konverziókat, miközben (1) // Loop Forever
{
if (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Kapcsolja be a LED1 -et
}
más
{
PORTE & = ~ (1 << PB1); // A LED1 kikapcsolása
}
}
visszatérés 0;
}
Először tegye közzé ezt az oktatóanyagot Kattintson ide
Ajánlott:
A GarageBand bevezetése: 9 lépés
Bevezetés a GarageBand -ba: A GarageBand egy olyan platform, amelyen zenélhet. Ezen a platformon nagyjából bármit megtehet, legyen az álomzenéje, vagy az Ön által kedvelt zenemű másolása. De így sem egyszerű. Ezért vagyok itt
Arduino ISP -ként -- Írja be a hexafájlt az AVR -ben -- Biztosíték az AVR -ben -- Arduino programozóként: 10 lépés
Arduino ISP -ként || Írja be a hexafájlt az AVR -ben || Biztosíték az AVR -ben || Arduino programozóként: ……………………… További videókért Iratkozzon fel YouTube -csatornámra …….. Ez a cikk az arduino -ról szól, mint isp. Ha hexadecimális fájlt szeretne feltölteni, vagy ha be szeretné állítani a biztosítékot az AVR -ben, akkor nem kell programozót vásárolnia, megteheti
Az ADC aktuális értelmezése: 5 lépés
Hogyan lehet érzékelni az ADC-t: Ebben az utasításban leírjuk, hogyan kell megvalósítani egy 8 bites analóg-digitális átalakítót (ADC) az SLG46855V-ben, amely érzékeli a terhelési áramot és az interfészt az MCU-val I2C-n keresztül. Ez a kialakítás különféle áramérzékelő alkalmazásokhoz használható, például
7 szegmens az ADC megjelenítéséhez #Arduino értékek, #Arduino: 4 lépés
7 szegmens az ADC megjelenítéséhez #Arduino Értékek, #Arduino: Ebben a cikkben olyan projektet készítek, amely még mindig az előző cikkhez kapcsolódik. Nevezetesen az ADC adatok feldolgozása. Így nincs szüksége soros monitorra az adc adatok értékének megtekintéséhez. ebben a cikkben egy ADC érték megjelenítő képernyőt készítek. szóval nem
A részecskefoton és az IoT bevezetése: 4 lépés
Intro to Particle Photon and IoT: A részecskefoton az egyik legújabb, és véleményem szerint a legmenőbb fejlesztőlap. WiFi integrációval és RESTful API -val rendelkezik, amely lehetővé teszi, hogy könnyedén lépjen kapcsolatba a táblával, és akár összekapcsolhatja azt az IFTTT -vel