En nybörjares guide till Arduino (11 / 15 steg)

Steg 11: Analoga ingångar och utgångar.



Några av de Arduino I/O pins kan också användas som digitala ingångar och utgångar, att mäta spänningar (ingång) eller dim lysdioder (utgång) till exempel.

Analoga ingångar

De flesta Arduinos har mellan 6 och 12 analog ingång stift. De kan mäta spänningar mellan 0v till ingående spänning (5v eller 3v3)
En stiga ombord, dessa stift är märkta A0-A5, och vid Leonardo, några av stiften på den digitala sidan kan också användas som analoga ingångar. De markeras med en punkt och namnet (A6-A11) är skrivet på baksidan.

Observera att läsa en analog ingång (relativt) långsam, jämfört med läsa digitala stift. Detta beror på Arduino mäter spänning använder en intern referens spänning generator (DAC, Digital-till-Analog Converter), och sedan jämföra spänningen till referensspänningen, sedan ändra referensspänningen, jämföra igen, ändra referensspänningen, jämföra... tills de två spänningarna är lika. http://apcmag.com/Arduino-analog-to-Digital-Conver...

En lösning av interna DAC är 10 bitar. Detta innebär att maximalt det kan läsa är 10 bitar lång, eller 210 = 1024, så ett tal från 0 (B0000000000) till 1023 (B1111111111). 1023 innebär indata är 5v (eller 3v3) och 0 betyder 0v.

Potentiometrar

En potentiometer, variabelt motstånd eller potten för kort, är bara en ratt med en torkare som glider över en rund remsa av resistiv material. Detta sätt, det varierar resistansen mellan torkar och slutpunkterna.

Vi ska koppla upp vår potentiometrar och reglar som enkel spänningsavdelare. Om inte du är bekant med denna princip kan du läsa mer på denna Wikipedia sida .

Om du tar en titt på schematiskt, kan du se 2 motstånd. R1 är motståndet mellan den högra pin av potentiometern och torkar (mittstiftet) och R2 motståndet mellan vänstra stiftet och torkar. Ta en titt på formeln. Eftersom våra potentiometern har en fast värde (50 kΩ, till exempel), R1 + R2 kommer alltid att vara 50 kΩ, medan R2 kan variera mellan 0Ω och 50 kΩ. (Om R2 = 50k då R1 = 0, och vice versa) Därför resulterar bråket alltid i ett tal mellan 0 och 1. Multiplicera detta förhållande med 5V (Vsubin/sub), och du får en spänning mellan 0V och 5V på din produktion. Denna spänning kan läsas av den Arduino ADC (analog till digital omvandlare) och representerar en position av potentiometer (eller fader). Så i princip du ansluter vänstra stiftet till marken, den rätta PIN-kod till 5V pin på Arduino och mittstift till en analog ingång. (bild 3)

Anslut en potentiometer till stift A0 och öppna exempel AnalogReadSerial (fil > exempel > 01.Basics).

Den enda nya funktionen är analogRead(pin). Det är ganska självförklarande, det ger du bara värdet 10 bitar, som representerar spänningen på angivna PIN-koden.
Programmet kommer att bara skriva ut dem över följetong, så öppna den seriella monitorn (CTRL + SKIFT + M) eller den seriella plottern (CTRL + SKIFT + L) och vrida potentiometern. Du bör se värde från 0 till 1023.
Ställa in fördröjningen på 10 eller mer, i stället för 1ms kan ge dig bättre resultat i den seriella plottern.

Du kan mappa värden från 0-1023 sortiment till alla andra sortiment, till exempel från 0 till 100. Detta kan göras med hjälp av funktionen karta. Ta en titt på exempel AnalogReadSerialMap. Syntaxen för funktionen karta är: karta (värde, lowerLimitInput, upperLimitInput, lowerLimitOutput, upperLimitOutput) värde är bara värdet till karta, i detta fall vår sensor läsning. Denna ingång är 0 till 1023, så dessa är vår ingång gränser. Vi vill att utdata till intervallet från 0 till 100, så dessa är vår utgång gränser. Detta innebär att om sensorn läser 1023, produktionsvärde 100.
Vi kunde ha uppnått samma resultat med hjälp av sensorValue * 100 / 1023.

För att konvertera det till ett förhållande, vi måste använda en datatyp än int: float (flyttal). Om vi delar vår sensor värde av 1023, får vi ett förhållande mellan noll och ett.
Vi kan antingen ändra datatypen för variabeln sensorValue till float eller konvertera värdet från en int till ett flyttal. Den första metoden används i AnalogReadSerialRatio-en, den senare en i AnalogReadSerialRatio-b.

Om vi inte först konvertera våra värde till en flottör, kommer resultatet att behandlas som ett heltal. Värdena efter decimalkommat kommer bara ignoreras, till exempel, 1/2 = 0, men 1.0/2 = 0,5. Normala siffror som '1' kommer att behandlas som ints, såvida du inte lägger till ett decimaltecken (1,0), då det kommer att behandlas som en flöte. Om en av faktorerna i en beräkning är en flottör, blir resultatet också en flottör.

För att konvertera från en int en flottör, kan du använda funktionen float(number) eller du kan använda c ++ Notationen för Type-Casting (konvertering från en datatyp till en annan) (float) nummer .
För att konvertera från en flottör till en int, du kan göra detta på samma sätt: int(number) eller (int) nummer, men observera att detta bara kommer att ta bort numret på decimalkommat, det bara kommer att ignorera de värden som kommer efter den decimala mark. Till exempel, int(1.1) = 1, men int(1.9) = 1 också, även int(1.99999) ger 1. För att runda nummer, använda funktionen round(number) , till exempel round(1.1) = 1 round(1.5) = 2, rund(1,99) = 2.

https://www.Arduino.cc/en/reference/Cast

https://www.Arduino.cc/en/reference/FloatCast

Mäta spänningar

Eftersom en analog värdet 1023 motsvarar 5v (eller 3.3V för 3.3V mikrokontroller), kan du enkelt konvertera detta till en spänning med hjälp av analogRead(A0) * 5,0 / 1023. Detta används i exemplet AnalogReadSerialVoltage.

Att läsa spänningar högre än 5v (3.3V), behöver du 2 motstånd, att skapa en spänningsavdelare. Vi kan omvandla formeln ovan för att få Vsubin/sub om vi vet Vsubout/sub. (se bild)
Anslut en resistor (R2) från marken till analoga ingången, sedan ansluta marken av spänning att mäta den Arduino marken, och sedan ansluta en annan resistor (R1) från spänningen till mäta analoga nålen. (se bild) Använd formeln ovan för att beräkna värdena som lämpligt motstånd. Alla värden mellan 10k och 100 k bör fungera bra. Om motståndet är för låg, det drar för mycket ström och påverka avläsningen mycket.

Också mäta 12v till exempel, jag använder R1 = 47k och R2 = 22k. Detta ger mig en maximal spänning av 15.87v, om jag skulle gå högre än denna spänning, jag skulle bryta min Arduino.

Obs: om R2 - oavsett anledning - bortkopplad eller avbruten, kommer den höga spänningen ansluts till Arduino direkt (genom R1) och förmodligen skada eller förstöra den. Så inte ändra motstånden om en hög spänning tillämpas.

Öppna exempel AnalogReadSerialHighVoltage.

Längst upp i filen finns det vissa konstant deklarationer. Som en variabel, konstanter kan lagra värden för alla möjliga, men till skillnad från variabler, konstanter inte kan ändras medan programmet körs. Detta innebär att de lagras i programmet lagringsutrymme, i stället för det dynamiska minnet (RAM), lämnar mer utrymme för variabler och matriser etc.

Ändra värdena på konstanterna enligt dina inställningar. Nyckeltalet beräknas automatiskt, så du behöver inte ändra den. Du kan använda färgkoder för ditt motstånd för att få ett teoretiskt värde, men du får en mycket bättre uppfattning om du mäta motstånd med hjälp av en multimeter. Detsamma gäller för driftspänningen.

Analoga utgångar

Arduinoen kan inte spara analoga spänningar, det kan bara utgång 5v eller 0v. För att mata spänningar i mellan, använder den en teknik som kallas PWM (Pulse bredd modulering).
Arduino skapar en fyrkantsvåg och sedan varierar på - och off-tiderna av vågen. Till exempel 2ms på, 2 MS. eller 1ms på 3ms off. Detta kallas den månadskapacitet på fyrkantsvåg. 2ms på 2ms off är en månadskapacitet på 50%. 1ms på 3ms off är en arbetscykel på 25%. (se bild)

Nu kan du beräkna den genomsnittliga spänning, som är arean under kurvan dividerat med antalet cykler. Låt oss ta en titt på 50% duty cycle exempel: området (utvärderas en cykel) är bara en rektangel med 5 av 0,5, så området är 2,5. Dividerat med antalet cykler fortfarande ger 2.5, så den genomsnittliga spänningen är 2.5V.
Med andra ord, kan den genomsnittliga spänningen skrivas som intermittensen multiplicerat med matningsspänningen. Till exempel, skulle en månadskapacitet på 25% vara 5v · 0,25 = 1.25v.
Dessa genomsnittliga spänningar har markerats med rött i bilderna.

Dina ögon är alldeles för långsam att se den underliggande fyrkantsvåg, så denna metod är helt bra för lysdioder.

Öppna exempel analogPotDimmer.

Ansluta en LED (+ resistor) till digitala stift 5 och en potentiometer till analoga stift A0. Vrida potentiometern tonas ned LED.

Den enda nya funktionen är analogWrite (pin, intermittens). Den sätter bara intermittensen av pwm vid en PIN-kod. Observera att intermittensen är ett värde mellan 0 och 255, detta motsvarar till 0% - 100%

Ett annat exempel är analogWriteDimmer. Anslut en tryckknapp till stift 2 och ledde till stift 5. När du håller ned knappen, LED blir ljusare, när du släpper det, tryck på och håll den igen, dess ljusstyrka kommer att minska.

https://www.Arduino.cc/en/reference/AnalogWrite

Se Steg
Relaterade Ämnen

Nybörjare guide till installera och konfigurera Octoprint på en Raspberry pi för 3D utskrift

Om du har läst någon av mina andra instructables, mest namnkunniga komplett nybörjare steg för steg, 3D-skrivare med alla delar listor, vet du att jag kommer ihåg min egen frustration på ofullständiga instruktioner och guider även efter jag äntligen...

En nybörjare Guide till 35mm Film fotografering

Hej alla! Jag har nyligen verkligen kommit in film fotografering efter min far gav mig sin gamla Pentax K1000. Jag är relativt ny på film fotografering köpa har lärt mig en hel del hittills.Målet med detta Instructable är att ge en detaljerad, lätt a...

Nybörjare Guide till fotografi

detta instructable är för nybörjare, och tar dig genom 1) lätt saker att fotografera2) utveckla bilder för att vara anständig (oroa dig inte det är mycket lätt jag lärde min stora mormor att göra det)Steg 1: utrustning Om du har en trevlig kamera med...

En nybörjares Guide till Photoshop

jag gjorde denna guide till Photoshop med hjälp av programmet sig på min hem laptop. Det har varit ett projekt som jag har velat ta itu med eftersom jag har hittat liknande guider inte har inkluderat några av viktig information.Jag har gjort digital...

En nybörjare guide till setup ESP8266 med Arduino Mega 2560 eller Uno

För produkter med öppen källkod för att lyckas eller anta en masse "skaparna" / "DIY-na" / "dev" / "etc"; en aktuell och korrekt dokumentation eller snabbstart-guide som skall krävas. Användarens inlägg i diskussion...

En nybörjare Guide till Raw-filer och Raw-bearbetning

En av de första sakerna jag lärt mig om i fotografi var om en filtyp som kallas en Raw-fil. Ofta när någon börjar i fotografi, inser han eller hon inte potentialen i Raw-filer. Först såg jag inte användning för raw-filer, de tycktes erbjuda något som...

En nybörjares Guide till XSplit programföretag och Streaming på Twitch.tv (Windows 10)

IntroduktionLive Streaming är en växande bransch där alla och envar kan dela deras spelupplevelse med världen. Om du bara titta på andra spela och prata med din favorit serpentiner i chatten, eller live streaming själv, Twitch.tv skapar en enorm, sam...

Nybörjare Guide till fiberoptik

Fiberoptik! Fiberoptik! Jag är visserligen lite besatt med fiberoptik, och av goda skäl. De är en slitstark, mångsidig och relativt enkelt sätt att lägga till vackra ljuseffekter till något du gör. Titta bara på några av de underbara projekt kan du s...

En nybörjares Guide till Stirlingmotorer

Förra året var jag en IB elev i MYP programmet. I slutet av året hade vi att göra ett forskningsprojekt om något som intresserar oss. Göra lite forskning på internet, kom jag över något som kallas en Stirlingmotor."Så, vad i helsike är en Stirlingmot...

En nybörjares Guide till papper skära

Här är en enkel guide för att komma igång att göra papper nedskärningar.Jag har gjort dem i flera år nu och har upptäckt att de är ett riktigt bra sätt att göra en vacker kort, särskilt när tiden är mot dig. Jag gör detta varje gång en födelsedag ell...

En nybörjares guide till Kolrosing, av en nybörjare.

* Detta är mitt inträde till tävlingen "Trä". Om du gillar vad jag har gjort här rösta! Tack! *Så du är nästan färdig med din woodworking projekt, har kanske du gjort några skedar, en trevlig låda, en vacker skärbräda eller några otherreally coo...

En komplett nybörjare guide till airsoft

denna guide är inte som andra instructables, denna guide innehåller allt du behöver veta för att gå ut och ha lite kul. Nu, tack vare några tips kommenterade denna sida, jag kommer att lägga till lite nya grejer... Kolla upp det!Steg 1: Komma igång A...

Nybörjare Guide till Airsoft

så du vill starta airsoft det är en rolig sport för att ta upp jag tycker det är ett steg från sittande runt att få fett spelar TV-spel. Men innan du går ut och köpa en hel kostym av redskap och toppmodellen airsoft vapen du behöver ställa dig själv...

Nybörjares Guide till att köpa Airsoft Field Gear

Så du har köpt din AEG, men din blå jeans har inte tillräckligt fickor för att hålla alla dessa extra tidningar. Det är dags att köpa några nya redskap.Problemet med att köpa nya redskap är att jag kan inte berätta exakt vad du ska köpa.Chanserna är...

Nybörjare guide till Morel svamp

Det är en helgdag som finns i såväl landsbygden söder som Mellanvästern som bara känns igen av lokalbefolkningen: svamp säsong. Det finns en uppsjö av svamp som växer under hela året, det finns bara en svamp som gör det en nödvändighet för hårt arbet...

En nybörjare Guide till spela gitarr Del1

Hej alla! Jag kommer idag att vad man ska packa i ditt gitarr fall.Steg 1: #1. Strängar En bra uppsättning strängar är lifesavers du behöver dem!Steg 2: #1. Tuner Det är uppenbart vad du gör med detta. : DSteg 3: #3. Plockar och Capo Dessa kommer i h...

Nybörjarens guide till ESP8266 och tweeting med ESP8266

Jag lärde mig om Arduino 2 år sedan. Så började jag spela runt med enkla saker som lysdioder, knappar, motorer etc. Då tänkte jag skulle inte det vara häftigt att ansluta för att göra saker som visar dagens väder, aktiekurser, träna timings på en LCD...

Arduino Anti Theft Alarm (med polis Siren): Komplett nybörjares Guide

Är du rädd för tjuvar som kan stjäla alla dina projekt??? :) :) Då detta den perfekta INSTRUCTABLE för dig. Detta är ett stöldskydd larm. När det finns ingen tjuv runt, sedan en blå LED kommer att blekna på och av; men om en tjuv försöker passera av...

Bygga en DIY Quadcopter: en nybörjare Guide

Detta är ett riktigt kort klipp på min quadcopter svävar upp och ner och rörelse i sidled. Jag försökte hålla höjden så minimal som möjligt eftersom jag är inne i mitt vardagsrum, men som ni kan se, även med som det flyger upp till huvudet (ca 6 fot)...