- Nepieciešamās sastāvdaļas un aparatūras iestatīšana
- Nuvoton N76E003 shēmas shēma analogā sprieguma nolasīšanai
- Informācija par GPIO un analogajām tapām N76E003
- Informācija par ADC Peripheral N76E003
- N76E003 programmēšana ADC
- Mirgo kods un izvade
Analogais uz ciparu pārveidotājs (ADC) ir mikrokontrollera visbiežāk izmantotā aparatūras funkcija. Tas uzņem analogo spriegumu un pārveido to par digitālo vērtību. Tā kā mikrokontrolleri ir digitālas ierīces un darbojas ar bināro ciparu 1 un 0, tas nevarēja tieši apstrādāt analogos datus. Tādējādi ADC tiek izmantots, lai uzņemtu analogo spriegumu un pārveidotu to par līdzvērtīgu digitālo vērtību, ko mikrokontrolleris var saprast. Ja vēlaties uzzināt vairāk par analogo ciparu pārveidotāju (ADC), varat pārbaudīt saistīto rakstu.
Elektronikā ir pieejami dažādi sensori, kas nodrošina analogo izvadi, piemēram, MQ gāzes sensori, ADXL335 akselerometra sensors utt. Tādējādi, izmantojot pārveidotāju Analog to Digital, šos sensorus var sasaistīt ar mikrokontrolleru bloku. Varat arī apskatīt citas tālāk uzskaitītās apmācības par ADC lietošanu kopā ar citiem mikrokontrolleriem.
- Kā lietot ADC Arduino Uno?
- Saskarne ADC0808 ar 8051 mikrokontrolleru
- Izmantojot PIC mikrokontrollera ADC moduli
- Aveņu Pi ADC apmācība
- Kā lietot ADC programmā MSP430G2 - analogā sprieguma mērīšana
- Kā lietot ADC programmā STM32F103C8
Šajā apmācībā mēs izmantosim N76E003 mikrokontrolleru bloka iebūvēto ADC perifēriju, tāpēc novērtēsim, kāda veida aparatūras iestatīšana ir nepieciešama šai lietojumprogrammai.
Nepieciešamās sastāvdaļas un aparatūras iestatīšana
Lai lietotu ADC ierīcē N76E003, mēs izmantosim sprieguma dalītāju, izmantojot potenciometru, un nolasīsim spriegumu no 0V līdz 5,0V. Spriegums tiks parādīts 16x2 rakstzīmju LCD ekrānā. Ja esat jauns LCD ekrāns un N76E003, varat pārbaudīt, kā LCD saskarni savienot ar Nuvoton N76E003. Tādējādi galvenā sastāvdaļa, kas nepieciešama šim projektam, ir 16x2 rakstzīmju LCD. Šajā projektā mēs izmantosim šādus komponentus:
- Rakstzīmju LCD 16x2
- 1k rezistors
- 50k potenciometrs vai apdares katls
- Maz Berga vadu
- Maz pievienošanas vadu
- Maizes dēlis
Nemaz nerunājot par to, ka, izņemot iepriekš minētos komponentus, mums ir nepieciešama N76E003 mikrokontrolleru bāzes padome, kā arī Nu-Link programmētājs. Nepieciešams arī papildu 5 V barošanas bloks, jo LCD uzņem pietiekamu strāvu, ko programmētājs nevarēja nodrošināt.
Nuvoton N76E003 shēmas shēma analogā sprieguma nolasīšanai
Kā redzams shēmā, pieslēgvietai P0 tiek izmantots ar LCD saistīts savienojums. Kreisajā malā tiek parādīts programmēšanas saskarnes savienojums. Potenciometrs darbojas kā sprieguma dalītājs, un to uztver analogā ieeja 0 (AN0).
Informācija par GPIO un analogajām tapām N76E003
Zemāk redzamais attēls ilustrē GPIO tapas, kas pieejamas N76E003AT20 mikrokontrolleru blokā. Tomēr no 20 tapām LCD savienojumam tiek izmantots ports P0 (P0.0, P0.1, P0.2, P0.4, P0.5, P0.6 un P0.7). Analogās tapas ir iezīmētas RED krāsās.
Kā redzam, Port P0 ir maksimāli analogie kontakti, bet tie tiek izmantoti ar LCD saistītajai saziņai. Tādējādi P3.0 un P1.7 ir pieejami kā analogās ievades tapas AIN1 un AIN0. Tā kā šim projektam ir nepieciešama tikai viena analogā tapa, šim projektam tiek izmantots P1.7, kas ir Analogais ievades kanāls 0.
Informācija par ADC Peripheral N76E003
N76E003 nodrošina 12 bitu SAR ADC. Tā ir ļoti laba N76E003 iezīme, ka tai ir ļoti laba ADC izšķirtspēja. ADC ir 8 kanālu ieejas viena gala režīmā. Saskarne ar ADC ir diezgan vienkārša un vienkārša.
Vispirms ir jāizvēlas ADC kanāla ieeja. N76E003 mikrokontrolleros ir pieejamas 8 kanālu ieejas. Pēc ADC ieeju vai I / O tapu izvēles visi tapas ir jāiestata koda virzienam. Visas tapas, kas tiek izmantotas analogajā ieejā, ir mikrokontrollera ieejas tapas, tāpēc visas tapas jāiestata kā tikai ieejas (augstas pretestības) režīmu. Tos var iestatīt, izmantojot PxM1 un PxM2 reģistru. Šie divi reģistri iestata I / O režīmus, kur x apzīmē porta numuru (Piemēram, P1.0 ports ir P1M1 un P1M2 reģistrs, P3.0 P3M1 un P3M2 utt.). Konfigurāciju var redzams zemāk esošajā attēlā-
ADC konfigurāciju veic divi reģistri ADCCON0 un ADCCON1. ADCCON0 reģistra apraksts ir parādīts zemāk.
Pirmie 4 reģistra biti no 0 līdz 3 bitam tiek izmantoti, lai iestatītu ADC kanāla izvēli. Tā kā mēs izmantojam kanālu AIN0, šiem četriem bitiem izvēle būs 0000.
Svarīgi ir 6. un 7. bits. ADCS ir jāiestata 1, lai sāktu ADC pārveidošanu, un ADCF sniegs informāciju par veiksmīgu ADC pārveidošanu. Lai sāktu ADC pārveidošanu, programmaparatūrai tas jāiestata 0. Nākamais reģistrs ir ADCCON1-
ADCCON1 reģistrs galvenokārt tiek izmantots ADC pārveidošanai, ko izraisa ārēji avoti. Tomēr normālām ar aptauju saistītām darbībām pirmā bita ADCEN ir jāiestata 1, lai ieslēgtu ADC shēmas.
Pēc tam ADC kanāla ieeja ir jākontrolē AINDIDS reģistrā, kur var atvienot digitālās ieejas.
N, apzīmē kanāla bitu (Piemēram, AIN0 kanāls būs kontrolēt, izmantojot pirmos bitu P17DIDS par AINDIDS reģistrā). Digitālā ievade ir jāiespējo, pretējā gadījumā tā rādīs kā 0. Tie visi ir ADC pamata iestatījumi. Tagad var sākt ADCF notīrīšanu un ADCS iestatīšanu, ADC pārveidošanu. Konvertētā vērtība būs pieejama zemāk esošajos reģistros -
Un
Abi reģistri ir 8 biti. Tā kā ADC nodrošina 12 bitu datus, ADCRH tiek izmantots kā pilns (8 biti) un ADCRL tiek izmantots kā puse (4 biti).
N76E003 programmēšana ADC
Katra konkrēta moduļa kodēšana ir drudžains darbs, tāpēc tiek nodrošināta vienkārša, tomēr jaudīga LCD bibliotēka, kas būs ļoti noderīga 16x2 rakstzīmju LCD saskarnei ar N76E003. 16x2 LCD bibliotēka ir pieejama mūsu Github repozitorijā, kuru var lejupielādēt no šīs saites.
Lejupielādējiet Nuvoton N76E003 16x2 LCD bibliotēku
Lūdzu, iegādājieties bibliotēku (klonējot vai lejupielādējot) un vienkārši iekļaujiet lcd.c un LCD.h failus savā Keil N76E003 projektā, lai ērti integrētu 16x2 LCD vajadzīgajā lietojumprogrammā vai projektā. Bibliotēka nodrošinās šādas noderīgas ar displeju saistītas funkcijas-
- Inicializējiet LCD.
- Nosūtīt komandu uz LCD.
- Rakstiet LCD.
- Ievietojiet virkni LCD ekrānā (16 rakstzīmes).
- Drukājiet rakstzīmi, nosūtot sešstūra vērtību.
- Ritiniet garus ziņojumus ar vairāk nekā 16 rakstzīmēm.
- Drukājiet veselus skaitļus tieši LCD.
ADC kodēšana ir vienkārša. Iestatīšanas funkcijā Enable_ADC_AIN0; tiek izmantots, lai izveidotu uz ADC uz AIN0 ievadi. Tas ir noteikts failā.
#define Enable_ADC_AIN0 ADCCON0 & = 0xF0; P17_Input_Mode; AINDIDS = 0x00; AINDIDS- = SET_BIT0; ADCCON1- = SET_BIT0 // P17
Tātad, iepriekšminētā līnija nosaka tapu kā ievadi un konfigurē arī ADCCON0, ADCCON1 reģistru, kā arī AINDIDS reģistru. Tālāk norādītā funkcija nolasīs ADC no ADCRH un ADCRL reģistra, bet ar 12 bitu izšķirtspēju.
neparakstīts int ADC_read (void) { reģistrēt neparakstītu int adc_value = 0x0000; clr_ADCF; set_ADCS; kamēr (ADCF == 0); adc_value = ADCRH; adc_value << = 4; adc_value - = ADCRL; atgriezt adc_value; }
Bitu 4 reizes pārvieto pa kreisi un pēc tam pievieno datu mainīgajam. Galvenajā funkcijā ADC nolasa datus un tiek drukāts tieši uz displeja. Tomēr spriegumu pārveido arī, izmantojot attiecību vai attiecību starp spriegumu, dalītu ar bitu vērtību.
12 bitu ADC nodrošinās 4095 bitu 5.0V ieejā. Tādējādi dalot 5,0 V / 4095 = 0,0012210012210012V
Tātad bitu izmaiņu 1 cipars būs vienāds ar izmaiņām 0,001 V (aptuveni). Tas tiek darīts galvenajā zemāk parādītajā funkcijā.
void main (void) { int adc_data; uzstādīt(); lcd_com (0x01); kamēr (1) { lcd_com (0x01); lcd_com (0x80); lcd_puts ("ADC dati:"); adc_data = ADC_read (); lcd_print_number (adc_data); spriegums = adc_data * bit_to_voltage_ratio; sprintf (str_voltage, "Volt:% 0.2fV", spriegums); lcd_com (0xC0); lcd_puts (str_spriegums); Taimeris0_Delay1ms (500); } }
Dati tiek pārveidoti no bitu vērtības uz spriegumu un, izmantojot sprintf funkciju, izeja tiek pārveidota par virkni un nosūtīta uz LCD.
Mirgo kods un izvade
Kods atgrieza 0 brīdinājumu un 0 kļūdas un tika mirgots, izmantojot Keil noklusējuma mirgojošo metodi, jūs varat redzēt mirgojošo ziņojumu zemāk. Ja esat jauns Keil vai Nuvoton lietotājs, iepazīstieties ar sākumu ar Nuvoton mikrokontrolleru, lai saprastu pamatus un koda augšupielādi.
Pārbūve sākās: Projekts: taimeris Pārveidojiet mērķi “Mērķis 1”, samontējot STARTUP.A51… kompilējot main.c… kompilējot lcd.c… kompilējot Delay.c… saistot… Programmas lielums: dati = 101.3 xdata = 0 kods = 4162 izveidot hex failu no ". \ Objects \ taimeris"… ". \ Objects \ taimeris" - 0 kļūda (-as), 0 brīdinājums (-i). Pagājušais būvēšanas laiks: 00:00:02 Ielādējiet "G: \\ n76E003 \\ Display \\ Objects \\ taimeris" Flash Dzēšana pabeigta. Flash Write Done: ieprogrammēts 4162 baiti. Flash Verify Done: pārbaudīti 4162 baiti. Zibspuldzes slodze pabeigta plkst. 11:56:04
Zemāk redzamajā attēlā redzama aparatūra, kas strāvas avotā ir pievienota, izmantojot līdzstrāvas adapteri, un displejā ir redzams sprieguma izeja, ko labajā pusē ir iestatījis potenciometrs.
Pagriežot potenciometru, mainīsies arī ADC tapai piešķirtais spriegums, un mēs varam pamanīt ADC vērtību un analogo spriegumu, kas tiek parādīts LCD. Lai pilnībā iepazītos ar šo apmācību, varat apskatīt zemāk redzamo videoklipu.
Ceru, ka jums patika raksts un uzzinājāt kaut ko noderīgu. Ja jums ir jautājumi, atstājiet tos komentāru sadaļā zemāk, vai arī varat izmantot mūsu forumus, lai izliktu citus tehniskus jautājumus.