- Potrebne komponente i postavljanje hardvera
- Kružni dijagram Nuvoton N76E003 za očitavanje analognog napona
- Informacije o GPIO i analognim pinovima u N76E003
- Informacije o ADC perifernoj jedinici u N76E003
- Programiranje N76E003 za ADC
- Treptanje koda i izlaza
Analogno-digitalni pretvarač (ADC) najčešće je korištena hardverska značajka na mikrokontroleru. Uzima analogni napon i pretvara ga u digitalnu vrijednost. Budući da su mikrokontroleri digitalni uređaji i rade s binarnom znamenkom 1 i 0, on ne može izravno obraditi analogne podatke. Dakle, ADC se koristi za primanje analognog napona i pretvaranje u njegovu ekvivalentnu digitalnu vrijednost koju mikrokontroler može razumjeti. Ako želite više o analogno-digitalnom pretvaraču (ADC), možete provjeriti povezani članak.
U elektronici su dostupni različiti senzori koji pružaju analogni izlaz, poput senzora za plin MQ, senzora ubrzanja ADXL335 itd. Dakle, pomoću analogno-digitalnog pretvarača, ti senzori mogu se povezati s jedinicom mikrokontrolera. Također možete pogledati i druge tutorijale navedene u nastavku za upotrebu ADC-a s drugim mikrokontrolerima.
- Kako koristiti ADC u Arduino Uno?
- Povezivanje ADC0808 s 8051 mikrokontrolerom
- Korištenje ADC modula PIC mikrokontrolera
- Vodič za ADC za Raspberry Pi
- Kako se koristi ADC u MSP430G2 - Mjerenje analognog napona
- Kako koristiti ADC u STM32F103C8
U ovom uputstvu koristit ćemo ugrađenu ADC perifernu jedinicu mikrokontrolera N76E003, pa neka je procjena vrste hardverske postavke koja nam je potrebna za ovu aplikaciju.
Potrebne komponente i postavljanje hardvera
Da bismo koristili ADC na N76E003, upotrijebit ćemo razdjelnik napona pomoću potenciometra i očitati napon u rasponu od 0V-5,0V. Napon će se prikazati na LCD-u sa znakovima 16x2, ako ste novi s LCD-om i N76E003, možete provjeriti kako povezati LCD s Nuvotonom N76E003. Stoga je glavna komponenta koja je potrebna za ovaj projekt LCD 16x2 karaktera. Za ovaj projekt koristit ćemo dolje navedene komponente -
- LCD s karakterom 16x2
- 1k otpornik
- 50k potenciometar ili trim lonac
- Malo Bergovih žica
- Malo priključnih žica
- Breadboard
Da ne spominjem, osim gore navedenih komponenata, potrebna nam je razvojna ploča zasnovana na mikrokontroleru N76E003, kao i Nu-Link programer. Dodatna jedinica napajanja od 5 V također je potrebna jer LCD crpi dovoljno struje koju programer nije mogao pružiti.
Kružni dijagram Nuvoton N76E003 za očitavanje analognog napona

Kao što možemo vidjeti na shemi, priključak P0 koristi se za vezu povezanu s LCD-om. Krajnje lijevo prikazana je veza programskog sučelja. Potenciometar djeluje kao razdjelnik napona i to se prepoznaje na analognom ulazu 0 (AN0).

Informacije o GPIO i analognim pinovima u N76E003
Slika dolje ilustrira GPIO pinove dostupne na jedinici mikrokontrolera N76E003AT20. Međutim, od 20 pinova, za vezu povezanu s LCD-om, koristi se priključak P0 (P0.0, P0.1, P0.2, P0.4, P0.5, P0.6 i P0.7). Analogne iglice istaknute su CRVENOM bojom.

Kao što vidimo, priključak P0 ima maksimalno analognih pinova, ali oni se koriste za LCD komunikaciju. Dakle, P3.0 i P1.7 su dostupni kao analogni ulazni pinovi AIN1 i AIN0. Kako ovaj projekt zahtijeva samo jedan analogni pin, za ovaj projekt koristi se P1.7 koji je analogni ulazni kanal 0.
Informacije o ADC perifernoj jedinici u N76E003
N76E003 nudi 12-bitni SAR ADC. Vrlo je dobra karakteristika N76E003 što ima vrlo dobru razlučivost ADC-a. ADC ima 8-kanalne ulaze u modu s jednim krajem. Povezivanje ADC-a prilično je jednostavno i jednostavno.
Prvi korak je odabir ulaza ADC kanala. U mikrokontroleru N76E003 dostupni su 8-kanalni ulazi. Nakon odabira ADC ulaza ili I / O pinova, svi pinovi trebaju biti postavljeni za smjer u kodu. Svi pinovi koji se koriste za analogni ulaz su ulazni pinovi mikrokontrolera, tako da sve pinove treba postaviti kao način rada samo s ulazom (visoka impedancija). Oni se mogu postaviti pomoću registra PxM1 i PxM2. Ova dva registra postavljaju I / O načine rada gdje x predstavlja broj porta (Na primjer, Port P1.0 registar će biti P1M1 i P1M2, za P3.0 to će biti P3M1 i P3M2, itd.) Konfiguracija može vidjeti na donjoj slici-

Konfiguraciju ADC-a vrše dva registra ADCCON0 i ADCCON1. Opis registra ADCCON0 prikazan je u nastavku.


Prva 4 bita registra od bita 0 do bita 3 koriste se za postavljanje odabira ADC kanala. Budući da koristimo kanal AIN0, odabir će biti 0000 za ova četiri bita.
Važni su 6. i 7. bit. ADCS je potreban da postavi 1 za pokretanje ADC pretvorbe, a ADCF će pružiti informacije o uspješnoj ADC pretvorbi. Za pokretanje ADC pretvorbe mora ga firmware postaviti 0. Sljedeći je registar ADCCON1-


Registar ADCCON1 uglavnom se koristi za ADC pretvorbu koju pokreću vanjski izvori. Međutim, za normalne operacije povezane s ispitivanjem, prvobitni ADCEN treba postaviti 1 za uključivanje ADC sklopa.
Dalje, ulazom ADC kanala treba upravljati u registru AINDIDS gdje se digitalni ulazi mogu odspojiti.

N označava bit kanala (na primjer, kanalom AIN0 morat će se upravljati pomoću prvog bita P17DIDS iz AINDIDS registra). Digitalni ulaz treba biti omogućen, inače će se čitati kao 0. Sve su to osnovna postavka ADC-a. Sada se može započeti brisanje ADCF-a i postavljanje ADCS-a, ADC pretvorbe. Pretvorena vrijednost bit će dostupna u donjim registrima-

I

Oba registra su 8-bitna. Kako ADC pruža 12-bitne podatke, ADCRH se koristi kao puni (8-bitni), a ADCRL kao polovica (4-bitni).
Programiranje N76E003 za ADC
Kodiranje određenog modula svaki je put užurban posao, stoga je osigurana jednostavna, ali moćna LCD biblioteka koja će biti vrlo korisna za LCD povezivanje 16x2 znaka s N76E003. LCD knjižnica 16x2 dostupna je u našem spremištu Github, koje možete preuzeti s donje poveznice.
Preuzmite LCD knjižnicu 16x2 za Nuvoton N76E003
Molimo knjižnicu (kloniranjem ili preuzimanjem) i samo uključite datoteke lcd.c i LCD.h u svoj projekt Keil N76E003 za jednostavnu integraciju LCD-a 16x2 u željenu aplikaciju ili projekt. Knjižnica će pružiti sljedeće korisne funkcije povezane s prikazom -
- Inicijalizirajte LCD.
- Pošaljite naredbu na LCD.
- Pišite na LCD.
- Stavite niz u LCD (16 znakova).
- Ispis znaka slanjem hex vrijednosti.
- Pomicanje dugih poruka s više od 16 znakova.
- Ispišite cijele brojeve izravno na LCD.
Kodiranje za ADC je jednostavno. U funkciji postavljanja Enable_ADC_AIN0; koristi se za postavljanje ADC-a za AIN0 ulaz. To je definirano u datoteci.
#define Enable_ADC_AIN0 ADCCON0 & = 0xF0; P17_Input_Mode; AINDIDS = 0x00; AINDIDS- = SET_BIT0; ADCCON1- = SET_BIT0 // P17
Dakle, gornji redak postavlja pin kao ulaz i konfigurira ADCCON0, ADCCON1 registar kao i AINDIDS registar. Sljedeća funkcija očitat će ADC iz registra ADCRH i ADCRL, ali s 12-bitnom razlučivosti.
unsigned int ADC_read (void) { register unsigned int adc_value = 0x0000; clr_ADCF; set_ADCS; dok je (ADCF == 0); adc_value = ADCRH; adc_value << = 4; adc_value - = ADCRL; vrati adc_value; }
Bit se pomiče ulijevo 4 puta i zatim dodaje u varijablu podataka. U glavnoj funkciji, ADC čita podatke i ispisuje se izravno na zaslonu. Međutim, napon se također pretvara pomoću omjera ili odnosa između napona podijeljenog s vrijednošću bita.
12-bitni ADC pružit će 4095 bit na 5,0 V ulazu. Tako se dijeli 5.0V / 4095 = 0.0012210012210012V
Dakle, 1 znamenka promjena bitova bit će jednaka promjenama u 0,001 V (približno). To se radi u glavnoj funkciji prikazanoj dolje.
void main (void) { int adc_data; postaviti(); lcd_com (0x01); while (1) { lcd_com (0x01); lcd_com (0x80); lcd_puts ("ADC podaci:"); adc_data = ADC_read (); lcd_print_number (adc_data); napon = adc_data * bit_to_voltage_ratio; sprintf (str_voltage, "Volt:% 0.2fV", napon); lcd_com (0xC0); lcd_puts (str_voltage); Timer0_Delay1ms (500); } }
Podaci se pretvaraju iz vrijednosti bita u napon i pomoću funkcije sprintf izlaz se pretvara u niz i šalje na LCD.
Treptanje koda i izlaza
Kôd je vratio 0 upozorenja i 0 pogrešaka i trepnuo je Keil pomoću zadane metode treptanja, donju trepćuću poruku možete vidjeti. Ako ste Keil ili Nuvoton tek upoznati, provjerite početak rada s mikrokontrolerom Nuvoton kako biste razumjeli osnove i način prijenosa koda.
Počela je obnova: Projekt: timer Obnova cilja 'Cilj 1' sastavljanje STARTUP.A51… kompajliranje main.c… kompajliranje lcd.c… sastavljanje Delay.c… povezivanje… Veličina programa: data = 101,3 xdata = 0 code = 4162 izrada hex datoteke iz ". \ Objects \ timer"… ". \ Objects \ timer" - 0 Pogreška, 0 upozorenje. Vrijeme izrade proteklo: 00:00:02 Učitajte "G: \\ n76E003 \\ Display \\ Objekti \\ timer" Flash Erase Gotovo. Flash pisanje gotovo: programirano 4162 bajta. Flash provjera gotova: provjereno 4162 bajta. Flash Load završeno u 11:56:04
Na slici dolje prikazan je hardver povezan u izvor napajanja pomoću istosmjernog adaptera, a zaslon prikazuje izlazni napon postavljen potenciometrom s desne strane.

Ako okrenemo potenciometar, napon dodan ADC pinu također će se promijeniti i možemo primijetiti ADC vrijednost i analogni napon prikazani na LCD-u. Možete pogledati video u nastavku za cjelovitu radnu demonstraciju ovog vodiča.
Nadam se da vam se svidio članak i naučili ste nešto korisno, ako imate pitanja, ostavite ih u odjeljku za komentare u nastavku ili možete koristiti naše forume za postavljanje drugih tehničkih pitanja.
