Hvorfor trenger vi å blinke uten å bruke forsinkelsesfunksjonen () i Arduino
Forsinkelsen () -funksjonen produserer en forsinkelse av en definert tid i utførelsen av uttalelser, eller vi kan si at forsinkelsen () -funksjonen pauser hele programmet, og ingen uttalelser vil bli utført før forsinkelsen () ikke kommer til slutt.
Det betyr at vi ikke kan gjøre noen annen oppgave før forsinkelsen ikke er fullført, dette er den største bekymringen for at noen ganger blir det motløs å bruke forsinkelsesfunksjonen (). La oss vurdere eksemplet med en budmann, han drar til huset og finner ingen hjemme, sa naboene til, den berørte personen vil være tilbake til hjemmet hans om en time. Nå, hva skal budmannen gjøre? Enten kan han vente eller kan levere pakkene til de nærliggende kundene og komme tilbake etter en time for å levere pakken til den personen.
På samme måte anbefaler vi ikke i programmering å bruke forsinkelsesfunksjonen () og ta en pause i hele programmet i noen tid, i stedet for det foretrekker vi å utføre en annen oppgave mens LED -en blink.
Blink uten å bruke forsinkelses () funksjonskoden i Arduino
I Arduino kan vi blinke lysdioder uten å bruke forsinkelsesfunksjonen med en veldig enkel kode. Før vi går gjennom kode, la oss forklare formålet med noen innebygde funksjoner som brukes i koden:
Funksjoner | Hensikt |
---|---|
pinmode () | Denne funksjonen brukes til å definere den spesifikke pinnen for å fungere som en utgang eller inngang |
DigitalWrite () | Denne funksjonen brukes til å konfigurere PIN -koden i henhold til høye eller lave tilstander |
Serie.begynne() | Denne funksjonen brukes til seriell kommunikasjon |
millis () | Denne funksjonen brukes til å trekke ut utførelsestiden for kode i millisekunder |
Tenk på følgende kode:
int LED = 13;
int x = 1;
usignert lang D1, D2;
void setup ()
pinmode (LED, output);
DigitalWrite (LED, 1);
Serie.Begynn (9600);
void loop ()
d2 = millis ();
if (d2-d1> = 1000)
x = 1-x;
d1 = millis ();
DigitalWrite (LED, X);
Forklaringen på koden ovenfor er:
Simulering
Vi kjører denne koden i Proteus -simuleringen, vi åpner Proteus og finner følgende komponenter:
Koble den ene terminalen til motstanden med pinne 13 av Arduino, koble den positive terminalen til LED med den andre terminalen til motstanden, og koble bakken med den negative terminalen til LED. Når kretsen er fullført, dobbeltklikk på Arduino og last opp en "Hex" -fil med Arduino -kode i den.
Spill prosjektet og LED vil begynne å blinke som vist nedenfor:
Maskinvarekonfigurasjon
Den samme kretsen som simuleres på proteus vil bli samlet på brødplaten. Vi brukte jumperledninger for å koble til komponentene som er LED, Arduino og Motstand:
Den svarte jumpertråden er koblet til bakken til Arduino og den negative terminalen til LED. Deretter er en motstand (220 ohm) koblet til den positive terminalen til LED, og et annet ben av motstanden (220 ohm) er koblet til pinne 13 av Arduino ved hjelp av den røde jumpertråden. Koden er allerede lastet opp på Arduino, prosjektet med prosjektet er:
LED -en blinker med suksess uten å bruke forsinkelsesfunksjonen ().
Konklusjon
Blink Without Delay () -funksjonen i Arduino er det nybegynnernivåprosjektet som brukes til å demonstrere hvordan prosjektet kan utføres uten å bruke forsinkelsesfunksjonen (). Uten å bruke forsinkelsesfunksjonen er vi ikke begrenset til en enkelt oppgave og kan kjøre andre instruksjoner i koden. I denne oppskrivningen har vi forklart den blinkede LED uten forsinkelse () -funksjonen i Arduino ved hjelp av en demonstrasjon av dens simulering så vel som maskinvarekonfigurasjonen.