I denna handledning introducerar vi konceptet ADC (Analog till Digital Conversion) i ARDUINO UNO. Arduino-kortet har sex ADC-kanaler, som visas i figuren nedan. Bland dessa kan någon eller alla användas som ingångar för analog spänning. Den Arduino Uno ADC är av 10 bitars upplösning (så heltalsvärdena från (0- (2 ^ 10) 1023)). Detta betyder att den kommer att mappa ingångsspänningar mellan 0 och 5 volt i helvärden mellan 0 och 1023. Så för varje (5/1024 = 4,9 mV) per enhet.
I allt detta ska vi ansluta en potentiometer eller potten till 'A0' -kanalen, och vi kommer att visa ADC-resultatet på en enkel display. De enkla skärmarna är 16x1 och 16x2 displayenheter. Displayenheten 16x1 kommer att ha 16 tecken och är i en rad. 16x2 kommer att innehålla 32 tecken totalt 16 i 1: a raden och ytterligare 16 i 2: a raden. Här måste man förstå att det i varje tecken finns 5x10 = 50 pixlar så för att visa ett tecken måste alla 50 pixlar fungera tillsammans, men det behöver vi inte oroa oss för eftersom det finns en annan styrenhet (HD44780) i displayenheten som gör jobb med att styra pixlarna (du kan se den på LCD-enheten, det är det svarta ögat på baksidan).
Komponenter krävs
Hårdvara: ARDUINO UNO, strömförsörjning (5v), JHD_162ALCD (16x2LCD), 100uF kondensator, 100KΩ pott eller potentiometer, 100nF kondensator.
Programvara: arduino IDE (Arduino nightly)
Kretsschema och förklaring
I 16x2 LCD finns det 16 stift överallt om det finns en bakgrundsbelysning, om det inte finns något bakgrundsbelysning kommer det att finnas 14 stift. Man kan driva eller lämna bakljuset. Nu i de 14 stiften finns 8 datastift (7-14 eller D0-D7), 2 effektmatningsstiften (1 & 2 eller VSS & VDD eller GND & + 5v), 3 : e stift för kontrastreglering (VEE-styr hur tjock tecknen bör vara visas) och 3 kontrollstift (RS & RW & E).
I kretsen kan du observera att jag bara har tagit två kontrollstift, kontrastbiten och LÄS / SKRIV inte ofta så att de kan kortslutas till marken. Detta sätter LCD i högsta kontrast och läsläge. Vi behöver bara kontrollera ENABLE- och RS-stift för att skicka tecken och data i enlighet därmed.
De anslutningar som görs för LCD ges nedan:
PIN1 eller VSS till jord
PIN2 eller VDD eller VCC till + 5v ström
PIN3 eller VEE till marken (ger maximal kontrast bäst för en nybörjare)
PIN4 eller RS (Registrera val) till PIN8 för ARDUINO UNO
PIN5 eller RW (läs / skriv) till marken (sätter LCD i läsläge underlättar kommunikationen för användaren)
PIN6 eller E (Aktivera) till PIN9 för ARDUINO UNO
PIN11 eller D4 till PIN10 för ARDUINO UNO
PIN12 eller D5 till PIN11 för ARDUINO UNO
PIN13 eller D6 till PIN12 för ARDUINO UNO
PIN14 eller D7 till PIN13 för ARDUINO UNO
ARDUINO IDE tillåter användaren att använda LCD i 4-bitars läge. Denna typ av kommunikation gör det möjligt för användaren att minska stiftanvändningen på ARDUINO, till skillnad från andra behöver ARDUINO inte programmeras separat för att använda den i 4 it-läge eftersom ARDUINO som standard är inställt för att kommunicera i 4-bitarsläge. I kretsen kan du se att vi använde 4-bitars kommunikation (D4-D7).
Så från enbart observation från ovanstående tabell ansluter vi 6 stift LCD till styrenhet där 4 stift är datapinnar och 2 stift för kontroll.
Ovanstående figur visar kretsschemat för ADC för ARDUINO UNO.
Arbetssätt
För att kunna ansluta en LCD-skärm till ARDUINO UNO behöver vi veta några saker.
|
Först och främst har UNO ADC-kanalerna ett standardreferensvärde på 5V. Det betyder att vi kan ge en maximal ingångsspänning på 5V för ADC-omvandling vid vilken ingångskanal som helst. Eftersom vissa sensorer ger spänningar från 0-2,5V, med en 5V-referens får vi mindre noggrannhet, så vi har en instruktion som gör att vi kan ändra detta referensvärde. Så för att ändra det referensvärde vi har (“analogReference ();”)
Som standard får vi den maximala ADC-upplösningen som är 10 bitar, denna upplösning kan ändras med instruktioner (“analogReadResolution (bits);”). Denna upplösningsändring kan komma till nytta i vissa fall.
Nu om ovanstående villkor är inställda som standard kan vi läsa värdet från ADC för kanal '0' genom att direkt kalla funktionen "analogRead (pin);", här "pin" representerar stift där vi kopplade analog signal, i det här fallet skulle det vara “A0”. Värdet från ADC kan tas in i ett heltal som “int ADCVALUE = analogRead (A0); ”, Genom denna instruktion värdet efter ADC lagras i heltalet“ ADCVALUE ”.
Låt oss nu prata lite om 16x2 LCD. Först måste vi aktivera rubrikfilen ('#include
För det andra måste vi berätta för tavlan vilken typ av LCD vi använder här. Eftersom vi har så många olika typer av LCD-skärmar (som 20x4, 16x2, 16x1 etc.). Här kommer vi att ansluta en 16x2 LCD-skärm till UNO så att vi får 'lcd.begin (16, 2);'. För 16x1 får vi 'lcd.begin (16, 1);'.
I den här instruktionen ska vi berätta för kortet var vi kopplade stiften, Stiften som är anslutna ska representeras i ordning som ”RS, En, D4, D5, D6, D7”. Dessa stift ska representeras korrekt. Eftersom vi anslöt RS till PIN0 och så vidare, som visas i kretsschemat, representerar vi stiftnumret för kort som “LiquidCrystal lcd (0, 1, 8, 9, 10, 11);”.
Efter att ovanstående allt finns kvar är att skicka data, de data som måste visas i LCD bör skrivas som “cd.print (” hej, världen! ”);”. Med detta kommando visar LCD-skärmen 'hej, värld!'.
Som du kan se behöver vi inte oroa oss för detta, vi måste bara initiera och UNO är redo att visa data. Vi behöver inte skriva en programslinga för att skicka data BYTE av BYTE här.
Användning av ADC av Arduino Uno förklaras steg för steg i C-programmet nedan.