I denne vejledning introducerer vi konceptet med ADC (Analog til digital konvertering) i ARDUINO UNO. Arduino-kortet har seks ADC-kanaler, som vist i figuren nedenfor. Blandt disse kan en eller alle af dem bruges som indgange til analog spænding. Den Arduino Uno ADC er på 10 bit opløsning (så de heltalsværdier fra (0- (2 ^ 10) 1023)). Det betyder, at det vil kortlægge indgangsspændinger mellem 0 og 5 volt i heltalsværdier mellem 0 og 1023. Så for hver (5/1024 = 4,9 mV) pr. Enhed.
I alt dette skal vi forbinde et potentiometer eller en potte til 'A0' kanalen, og vi vil vise ADC-resultatet på et simpelt display. De enkle skærme er 16x1 og 16x2 displayenheder. 16x1 displayenheden har 16 tegn og er i en linje. Den 16x2 vil have 32 tegn i alt 16in 1 st linje og en anden 16 i 2 nd linje. Her skal man forstå, at der i hvert tegn er 5x10 = 50 pixels, så for at få vist et tegn skal alle 50 pixels arbejde sammen, men vi behøver ikke bekymre os om det, fordi der er en anden controller (HD44780) i displayenheden, som gør job med at kontrollere pixels (du kan se det i LCD-enheden, det er det sorte øje på bagsiden).
Komponenter, der kræves
Hardware: ARDUINO UNO, strømforsyning (5v), JHD_162ALCD (16x2LCD), 100uF kondensator, 100KΩ pot eller potentiometer, 100nF kondensator.
Software: arduino IDE (Arduino nightly)
Kredsløbsdiagram og forklaring
I 16x2 LCD er der overalt 16 ben, hvis der er baggrundslys, hvis der ikke er baggrundslys, vil der være 14 ben. Man kan tænde eller lade bagbelysningsstifterne stå. Nu i de 14 stifter er der 8 data stifter (7-14 eller D0-D7), 2 Strømforsyning stifter (1 & 2 eller VSS & VDD eller GND & + 5V), 3 rd pin for kontraststyring (VEE-styringer, hvor tyk tegnene bør være vist) og 3 kontrolben (RS & RW & E).
I kredsløbet kan du observere, at jeg kun har taget to kontrolben, kontrastbit og LÆS / SKRIV bruges ikke ofte, så de kan kortsluttes til jorden. Dette sætter LCD i højeste kontrast og læsetilstand. Vi skal bare kontrollere ENABLE og RS-ben for at sende tegn og data i overensstemmelse hermed.
Forbindelserne, der foretages for LCD, er angivet nedenfor:
PIN1 eller VSS til jord
PIN2 eller VDD eller VCC til + 5v strøm
PIN3 eller VEE til jorden (giver maksimal kontrast bedst for en nybegynder)
PIN4 eller RS (Registrer valg) til PIN8 for ARDUINO UNO
PIN5 eller RW (læse / skrive) til jorden (sætter LCD i læsefunktion letter kommunikationen for brugeren)
PIN6 eller E (Aktiver) til PIN9 for ARDUINO UNO
PIN11 eller D4 til PIN10 for ARDUINO UNO
PIN12 eller D5 til PIN11 i ARDUINO UNO
PIN13 eller D6 til PIN12 for ARDUINO UNO
PIN14 eller D7 til PIN13 for ARDUINO UNO
ARDUINO IDE giver brugeren mulighed for at bruge LCD i 4 bit-tilstand. Denne type kommunikation gør det muligt for brugeren at mindske pin-brugen på ARDUINO, i modsætning til andre behøver ARDUINO ikke at blive programmeret separat for at bruge den i 4 it-tilstand, fordi ARDUINO som standard er indstillet til at kommunikere i 4-bit-tilstand. I kredsløbet kan du se, at vi brugte 4bit kommunikation (D4-D7).
Så fra blot observation fra ovenstående tabel forbinder vi 6 ben på LCD til controller, hvor 4 ben er datapinde og 2 ben til kontrol.
Ovenstående figur viser kredsløbsdiagrammet for ADC af ARDUINO UNO.
Arbejder
For at grænsefladen mellem en LCD og ARDUINO UNO skal vi kende et par ting.
|
Først og fremmest har UNO ADC-kanalerne en standardreferenceværdi på 5V. Dette betyder, at vi kan give en maksimal indgangsspænding på 5V til ADC-konvertering på enhver indgangskanal. Da nogle sensorer leverer spændinger fra 0-2,5V, med en 5V-reference får vi mindre nøjagtighed, så vi har en instruktion, der gør det muligt for os at ændre denne referenceværdi. Så for at ændre den referenceværdi, vi har ("analogReference ();")
Som standard får vi den maksimale ADC-opløsning på kortet, der er 10 bit, denne opløsning kan ændres ved hjælp af instruktion (“analogReadResolution (bits);”). Denne opløsningsændring kan komme til nytte i nogle tilfælde.
Hvis ovenstående betingelser nu er indstillet til standard, kan vi læse værdien fra ADC for kanal '0' ved direkte at kalde funktionen "analogRead (pin);", her "pin" repræsenterer pin, hvor vi forbandt analogt signal, i dette tilfælde ville det være “A0”. Værdien fra ADC kan tages i et heltal som “int ADCVALUE = analogRead (A0); ”, Ved denne instruktion bliver værdien efter ADC gemt i heltalet“ ADCVALUE ”.
Lad os nu tale lidt om 16x2 LCD. Først skal vi aktivere headerfilen ('#include
For det andet skal vi fortælle tavlen, hvilken type LCD vi bruger her. Da vi har så mange forskellige typer LCD (som 20x4, 16x2, 16x1 osv.). Herinde skal vi interface en 16x2 LCD til UNO, så vi får 'lcd.begin (16, 2);'. For 16x1 får vi 'lcd.begin (16, 1);'.
I denne instruktion vil vi fortælle tavlen, hvor vi forbandt stifterne. De stifter, der er forbundet, skal vises i rækkefølge som “RS, En, D4, D5, D6, D7”. Disse ben skal vises korrekt. Da vi tilsluttede RS til PIN0 og så videre som vist i kredsløbsdiagrammet, repræsenterer vi pin-nummeret til kortet som “LiquidCrystal lcd (0, 1, 8, 9, 10, 11);”.
Efter først og fremmest er der kun tilbage at sende data, de data, der skal vises i LCD, skal skrives som “cd.print (" hej verden! ");”. Med denne kommando viser LCD'et 'hej verden!'.
Som du kan se, behøver vi ikke bekymre os om dette andet, vi skal bare initialisere, og UNO vil være klar til at vise data. Vi behøver ikke at skrive en programsløjfe for at sende data BYTE af BYTE her.
Brug af ADC fra Arduino Uno forklares trin for trin i C-programmet nedenfor.