I denne opplæringen introduserer vi konseptet ADC (Analog til Digital Conversion) i ARDUINO UNO. Arduino-kortet har seks ADC-kanaler, som vist i figuren nedenfor. Blant disse kan en eller alle av dem brukes som innganger for analog spenning. Den Arduino Uno ADC er på 10 bits oppløsning (slik de heltallige verdier fra (0- (2 ^ 10) 1 023)). Dette betyr at den vil kartlegge inngangsspenninger mellom 0 og 5 volt til heltall mellom 0 og 1023. Så for hver (5/1024 = 4,9mV) per enhet.
I alt dette skal vi koble et potensiometer eller potten til 'A0' -kanalen, og vi skal vise ADC-resultatet på en enkel skjerm. De enkle skjermene er 16x1 og 16x2 skjermenheter. 16x1 displayenheten vil ha 16 tegn og er i en linje. Den 16x2 vil ha 32 tegn totalt 16in 1 st linjen og en annen 16 i 2 nd linje. Her må man forstå at i hvert tegn er det 5x10 = 50 piksler, så for å vise ett tegn må alle 50 piksler fungere sammen, men det trenger vi ikke å bekymre oss for fordi det er en annen kontroller (HD44780) i skjermenheten som gjør jobb med å kontrollere pikslene (du kan se det på LCD-enheten, det er det svarte øyet på baksiden).
Komponenter kreves
Maskinvare: ARDUINO UNO, strømforsyning (5v), JHD_162ALCD (16x2LCD), 100uF kondensator, 100KΩ pot eller potensiometer, 100nF kondensator.
Programvare: arduino IDE (Arduino nattlig)
Kretsdiagram og forklaring
I 16x2 LCD er det 16 pinner overalt hvis det er baklys, hvis det ikke er noe bakgrunnslys, vil det være 14 pinner. Man kan drive eller la baklyspinnene ligge. Nå i de 14 pinnene er det 8 datapinner (7-14 eller D0-D7), 2 strømforsyningspinner (1 & 2 eller VSS & VDD eller GND & + 5v), 3. pinne for kontrastkontroll (VEE-kontrollerer hvor tykke tegnene skal være vist), og 3 kontrollpinner (RS & RW & E).
I kretsen kan du se at jeg bare har tatt to kontrollpinner, kontrastbiten og LES / SKRIV brukes ikke ofte, slik at de kan kortsluttes til bakken. Dette setter LCD i høyest kontrast og lesemodus. Vi trenger bare å kontrollere ENABLE- og RS-pinner for å sende tegn og data tilsvarende.
Tilkoblingene som gjøres for LCD er gitt nedenfor:
PIN1 eller VSS til bakken
PIN2 eller VDD eller VCC til + 5v strøm
PIN3 eller VEE til jord (gir maksimal kontrast best for en nybegynner)
PIN4 eller RS (Registrer valg) til PIN8 for ARDUINO UNO
PIN5 eller RW (lese / skrive) til bakken (setter LCD i lesemodus letter kommunikasjonen for brukeren)
PIN6 eller E (Aktiver) til PIN9 for ARDUINO UNO
PIN11 eller D4 til PIN10 for ARDUINO UNO
PIN12 eller D5 til PIN11 for ARDUINO UNO
PIN13 eller D6 til PIN12 for ARDUINO UNO
PIN14 eller D7 til PIN13 for ARDUINO UNO
ARDUINO IDE lar brukeren bruke LCD i 4-biters modus. Denne typen kommunikasjon gjør det mulig for brukeren å redusere pin-bruken på ARDUINO, i motsetning til andre, trenger ARDUINO ikke å bli programmert separat for å bruke den i 4 it-modus, fordi ARDUINO som standard er konfigurert til å kommunisere i 4-bits modus. I kretsen kan du se at vi brukte 4-bits kommunikasjon (D4-D7).
Så fra bare observasjon fra tabellen ovenfor kobler vi 6 pinner på LCD til kontrolleren der 4 pinner er datapinner og 2 pinner for kontroll.
Ovennevnte figur viser kretsskjemaet for ADC av ARDUINO UNO.
Jobber
For å koble en LCD-skjerm til ARDUINO UNO, trenger vi å vite noen få ting.
|
Først og fremst har UNO ADC-kanalene en standard referanseverdi på 5V. Dette betyr at vi kan gi en maksimal inngangsspenning på 5V for ADC-konvertering på hvilken som helst inngangskanal. Siden noen sensorer gir spenninger fra 0-2,5V, med en 5V referanse får vi mindre nøyaktighet, så vi har en instruksjon som gjør det mulig for oss å endre denne referanseverdien. Så for å endre referanseverdien vi har (“analogReference ();”)
Som standard får vi den maksimale ADC-oppløsningen på kortet som er 10 bit, denne oppløsningen kan endres ved å bruke instruksjoner (“analogReadResolution (bits);”). Denne oppløsningsendringen kan være nyttig i noen tilfeller.
Nå hvis de ovennevnte forholdene er satt til standard, kan vi lese verdien fra ADC av kanalen '0' ved direkte å kalle funksjonen "analogRead (pin);", her representerer "pin" pin der vi koblet til analogt signal, i dette tilfellet ville det være “A0”. Verdien fra ADC kan tas inn i et helt tall som “int ADCVALUE = analogRead (A0); ”, Ved denne instruksjonen blir verdien etter ADC lagret i heltallet“ ADCVALUE ”.
La oss nå snakke litt om 16x2 LCD. Først må vi aktivere toppfilen ('#include
For det andre må vi fortelle tavlen hvilken type LCD vi bruker her. Siden vi har så mange forskjellige typer LCD (som 20x4, 16x2, 16x1 osv.). Her inne skal vi grensesnitt en 16x2 LCD til UNO så vi får 'lcd.begin (16, 2);'. For 16x1 får vi 'lcd.begin (16, 1);'.
I denne instruksjonen skal vi fortelle tavlen hvor vi koblet pinnene, Pinnene som er koblet til skal vises i rekkefølge som “RS, En, D4, D5, D6, D7”. Disse pinnene skal vises riktig. Siden vi koblet RS til PIN0 og så videre, som vist i kretsskjemaet, representerer vi pin-nummeret til kortet som “LiquidCrystal lcd (0, 1, 8, 9, 10, 11);”.
Etter det som er igjen er det bare å sende data, dataene som må vises i LCD skal skrives som "cd.print (" hallo, verden! ");". Med denne kommandoen viser LCD-skjermen 'hallo, verden!'.
Som du kan se trenger vi ikke bekymre oss for noe annet, vi må bare initialisere, og UNO vil være klar til å vise data. Vi trenger ikke å skrive en programsløyfe for å sende data BYTE av BYTE her.
Bruk av ADC av Arduino Uno forklares trinn for trinn i C-programmet gitt nedenfor.