Inngangs-/utgangsfunksjoner
Det er fem forskjellige typer funksjoner som brukes i Arduino for å konfigurere inngangene og utgangene. Følgende inngangsutgangsfunksjoner blir kort omtalt i denne diskursen:
PinMode () -funksjon
For å koble periferiutstyr til Arduino -tavlen er pinnene tildelt hver enhet som må kobles til Arduino -tavlen. PIN -nummeret er tilordnet i Arduino -koden ved hjelp av PIN -modusfunksjonen. PIN -modusfunksjonen har to argumenter: den ene er pin -nummeret, og den andre er modus for pinnen. PIN -modusene er videre delt inn i tre typer.
Inngang : Den definerer den respektive pinnen som vil bli brukt som en inngang for Arduino.
PRODUKSJON : Denne modusen brukes når instruksjon skal gis til en tilkoblet enhet.
Input_pullup : Denne modusen brukes også til å tilordne inngangstilstand til pinnen. Ved å bruke denne modusen vil polariteten bli reversert av den gitte inngangen for eksempel hvis inngangen er høy som vil bety at enheten er av, og hvis inngangen er lav, betyr det at enheten er på. Denne funksjonen fungerer ved hjelp av interne motstander som er bygget i Arduino.
Syntaks : For å bruke PIN -modus, funksjon, skal følgende syntaks følges:
pinmode (pin-number, mode-of-pin);
DigitalRead () og DigitalWrite () -funksjoner
Det er 14 digitale pinner i Arduino UNO som kan brukes til lese- og skrivefunksjonene. Når statusen til en spesifikk PIN -kode er å bli kjent, brukes DigitalRead () -funksjonen. Denne funksjonen er en returtypefunksjon, da den vil fortelle statusen til pinnen i utgangen.
Tilsvarende, når en tilstand skal tilordnes en pin, brukes en digitalwrite () -funksjon. DigitalWrite () -funksjonen har to argumenter en er pin -nummeret og andre er staten som vil bli definert av brukeren.
Begge funksjonene er av boolsk type, så bare to typer stater brukes i digital skrivefunksjon den ene er høy og den andre er lav. For å bruke DigitalRead () og DigitalWrite () -funksjoner skal følgende syntaks brukes:
digitalRead (pin-number);
DigitalWrite (Pin-Number, State);
Eksempel
I det nevnte eksemplet brukes PinMode (), DigitalRead () og DigitalWrite () -funksjoner:
int ButtonPin = 2;
int LEDPIN = 12;
// Variabler vil endre seg:
int ButtonState;
void setup ()
Serie.Begynn (9600);
pinmode (LEDPIN, utgang);
pinmode (knapppin, input_pullup);
void loop ()
ButtonState = DigitalRead (ButtonPin);
Serie.Println (ButtonState);
if (buttonstate == 1)
// Turn LED på:
DigitalWrite (Ledpin, 1);
annet
// Slå av LED:
DigitalWrite (LEDPIN, 0);
I eksempelkoden blir en LED gjort slått av og på ved hjelp av inngangs- og utgangsfunksjonene, og også en trykknapp brukes.
Først blir PIN -nummeret for knappen og LED -en erklært, og input_pullup blir gitt til knappen som modus, og deretter får LED -en som modus som modus.
For å lese tilstanden til knappen må det være i inngangsmodus, det er grunnen.
Tilsvarende, etter det, leser sløyfen den opprinnelige tilstanden til knappen ved å bruke Digitaread () -funksjonen.Hvis tilstanden til knappen er høy, vil LED bli gitt staten høy, noe som betyr at LED vil slå på. Imidlertid, hvis tilstanden til knappen er lav, vil LED -tilstanden være lav som betyr at LED vil slå seg av.
Siden input_pullup brukes til en knapp som inverterer inngangene til knappen som å endre høyt til lav og omvendt. Så når programmet er samlet, vil LED også slå på og ved å trykke på knappen LED vil slå seg av.
Produksjon
Analogread () og analogWrite () -funksjoner
Arduino UNO har 6 analoge porter som kan brukes av disse analoge lese- og skrivefunksjonene. Analogread () -funksjonen vil lese tilstanden til den analoge pinnen og vil returnere en verdi i form av tall i området fra 0 til 1024 for 10 bits oppløsning og for 12 bits oppløsning vil området være 0 til 4095.
Bitoppløsningen er den analoge til digital konvertering, så for 10 bit kan området beregnes med 2^10 og for 12 biter vil det være 2^12. For å tilordne en tilstand til en hvilken som helst analog pinne på Arduino uno, brukes imidlertid funksjonen analogwrite (). Den vil generere pulsmodulasjonsbølgen og staten vil bli definert ved å gi sin pliktsyklus som varierer fra 0 til 255.
Hovedforskjellen mellom de analoge og digitale funksjonene er at den digitale definerer dataene i form av enten høy eller lav, mens analogen gir dataene i form av en pliktsyklus for pulsbreddemodulasjon. Syntaksen til den analoge lesingen og skrivingen er gitt, og etter dette er det gitt et eksempel for illustrasjonsformål:
analograad (pin-number);
analogwrite (pin-nummer, verdi-of-pin);
Eksempel
For å demonstrere bruken av DigitalRead () og DigitalWrite () fungerer et Arduino -program for å endre lysstyrken LED er samlet. LED -lysets lysstyr. Analogread () -funksjonen leser utgangen fra potensiometeret, og deretter blir verdiene til potensiometer skalerisert ved å bruke kartfunksjonen. Etter at verdien er skalert, er den gitt til LED.
int led_pin = 4;
void setup ()
Serie.Begynn (9600);
pinmode (LED_PIN, utgang);
void loop ()
int analogValue = analogread (A3);
int lyshet = kart (analogvalue, 0, 1023, 0, 255);
analogWrite (LED_PIN, lysstyrke);
Serie.print ("analog:");
Serie.print (analogvalue);
Serie.print (", lysstyrke:");
Serie.println (lysstyrke);
forsinkelse (100);
Når verdien av potensiometeret er null, betyr det at motstanden er maksimal og det vil ikke være noen spenning som leveres til LED. Så verdien for lysstyrken vil også være null, og LED vil forbli i off -tilstand.
Når verdien av potensiometeret reduseres, vil verdien av lysstyrken øke, og derfor vil LED være i på tilstand.
Konklusjon
Inngangsutgangsfunksjonene spiller en veldig viktig rolle når det gjelder grensesnittenheter med Arduino eller når du lager maskinvarebaserte prosjekter. Disse funksjonene er byggesteiner i hvert Arduino -prosjekt. I denne skrivingen blir inngangsutgangsfunksjonene diskutert i detalj med hjelp av eksempelkoder.