Grunnleggende om Arduino-programmering. Arduino programmeringsspråk

Du vil trenge

  • - Arduino UNO-brett,
  • - USB-kabel(USB A - USB B),
  • - Personlig datamaskin,
  • - Lysdiode,
  • - motstand 220 Ohm,
  • - et par ledninger 5-10 cm,
  • - i nærvær av - brødbrett(brødbrett).

Bruksanvisning

Last ned Arduino utviklingsmiljø for operativsystemet ditt (Windows, Mac OS X, Linux støttes) på siden http://arduino.cc/en/Main/Software, du kan installere det, du kan. Den nedlastede filen inneholder også drivere for Arduino-brett.

Installer driveren. Vurder alternativet for Windows OS. For å gjøre dette, vent til operativsystem vil be deg om å installere driveren. Avslå. Trykk Win + Pause, start Enhetsbehandling. Finn delen "Porter (COM & LPT)". Du vil se en port der kalt "Arduino UNO (COMxx)". Klikk Høyreklikk musen på den og velg "Oppdater driver". Deretter velger du plasseringen til driveren du nettopp lastet ned.

Utviklingsmiljøet inneholder allerede mange eksempler for å studere styrets drift. Åpne "Blink"-eksemplet: Fil > Eksempler > 01.Basics > Blink.

Pek utviklingsmiljøet ditt til styret ditt. For å gjøre dette, i Verktøy > Brett-menyen, velg "Arduino UNO".

Velg porten som Arduino-brettet er tilordnet til. For å finne ut hvilken port kortet er koblet til, start Enhetsbehandling og se etter Porter (COM & LPT)-delen. Porten vil bli angitt i parentes etter navnet på tavlen. Hvis brettet ikke er på listen, prøv det fra datamaskinen og vent noen sekunder, prøv det igjen.

Koble kortet fra datamaskinen. Sett sammen kretsen som vist på figuren. Vær oppmerksom på at det korte benet på LED-en må kobles til GND-pinnen, det lange benet gjennom en motstand til digital pinne 13 på Arduino-kortet. Det er mer praktisk å bruke et brødbrett, men hvis det ikke er tilgjengelig, kan du koble ledningene ved å vri.
Viktig notat! Digital pin 13 har allerede sin egen motstand på brettet. Derfor, når du kobler en LED til brettet, er det ikke nødvendig å bruke en ekstern motstand. Når du kobler en LED til andre Arduino-pinner, er bruk obligatorisk!

Nå kan du laste programmet inn i tavlens minne. Koble brettet til datamaskinen, vent noen sekunder mens brettet initialiseres. Klikk på "Last opp"-knappen og din vil bli skrevet til Arduino-kortets minne. Programmering med Arduino er veldig intuitivt og ikke vanskelig i det hele tatt. Se på bildet - det er små forklaringer i kommentarene til programmet. Dette er nok til å komme i gang med ditt første eksperiment.

Video om emnet

Merk

Vær forsiktig når du arbeider med Arduino-brettet - dette er et elektronisk produkt som krever forsiktig håndtering. Det er synlige ledere på bunnen av brettet, og hvis du plasserer brettet på en ledende overflate, er det en sjanse for å brenne brettet. Berør heller ikke brettet med fuktige eller våte hender og unngå fuktige områder når du arbeider.

Nyttige råd

Det er mange nettsteder på Internett dedikert til Arduino. Les, mester, ikke vær redd for å eksperimentere og lære nye ting!

Kilder:

  • Blinkende LED

Programmering tiltrekker og interesserer mange moderne mennesker, spesielt unge og nybegynnere som nettopp har begynt å velge sitt fremtidige yrke. De møter ofte spørsmålet - hvor skal de begynne med å lære programmering? Hvis du bestemmer deg for å lære å programmere, bør du ikke gjøre en vanlig feil - ikke begynn med en gang. komplekse systemer og språk (for eksempel C). Å starte med et språk som er for komplekst kan gi deg feil inntrykk av programmering generelt. Nybegynnere anbefales å jobbe mest med enkle systemer- for eksempel å lære å skrive programmer i BASIC. Å lære dette språket vil tillate deg det kort tid oppnå gode resultater. PureBasic er lett å lære - det er et universelt kompilert språk med rikelige muligheter, vil hjelpe deg å forstå det grunnleggende om programmering og forbedre ferdighetene dine i fremtiden.

Bruksanvisning

Det kan ta deg omtrent et år å lære det grunnleggende om programmering. Du vil lære funksjonene til prosedyre- og objektorientert programmering, prinsipper for arbeid med binære trær, matriser, lister, etc. Bare etter å ha lært det grunnleggende, gå videre til mer komplekse oppgaver.

Besøk nettsidene til programmeringsspråkutviklere og studiedokumentasjon. Sørg for å kommunisere på programmererfora; de svarer vanligvis på de fleste spørsmål fra nybegynnere.

Matematikk

Hvis du vil lære å programmere, trenger du bare å kunne matematikk. Under arbeidet ditt vil du møte stort beløp problemer som ikke kan løses uten kunnskap om det grunnleggende i denne vitenskapen. Finnes et stort nummer av matematiske systemer og teorier (Fourier-serier, Fibonacci-tall, etc.), som i stor grad forenkler programmeringsprosessen.

Læringen tar aldri slutt

Utviklingen av programmeringsspråk står ikke stille; utviklingen deres pågår. Prøv å lese så mye litteratur som mulig relatert til programmeringsområdet der du planlegger å jobbe. Se alltid etter alternative måter å løse problemer som oppstår, dette vil hjelpe deg å hele tiden forbedre effektiviteten til arbeidet du lager programkode. Snakk med profesjonelle programmerere; de ​​vil alltid være i stand til å gi råd om hvordan de skal håndtere et bestemt problem. Å lese kodene deres vil også ha stor nytte for deg.
Det er umulig å ha alt i tankene hele tiden. Bruk gjerne oppslagsverk for programmeringsspråk.

Programmeringsproblemer, uansett hvor enkle de måtte være, løses aldri på en gang. De krever alltid utvikling riktig algoritme handlinger som er effektive i en gitt situasjon. Søk optimale algoritmer krever konstant trening og trening. Prøv å løse små programmeringsproblemer oftere (du kan finne dem på spesialiserte nettsteder), dette vil hjelpe deg gradvis å finpusse ferdighetene dine på dette området.

Virker det komplisert og uforståelig å studere mikrokontrollere? Før Arudino dukket opp, var det virkelig ikke lett og krevde et visst sett med programmerere og annet utstyr.

Det er liksom elektronisk designer. Det første målet med prosjektet er å la folk enkelt lære programmering elektroniske enheter, mens vi bruker minimalt med tid på den elektroniske delen.

montering de mest komplekse ordningene og tilkoblingen av brettene kan utføres uten loddebolt, men ved hjelp av hoppere med avtakbare hann- og hunnforbindelser. På denne måten kan både monterte elementer og utvidelseskort kobles sammen, som i Arduino-leksikonet ganske enkelt kalles "Shields".

Hva er det første Arduino-brettet å kjøpe for en nybegynner?

Det regnes som det grunnleggende og mest populære brettet. Dette brettet har en størrelse som kredittkort. Ganske stor. De fleste skjold som er på salg passer perfekt til den. På koblingskortet eksterne enheter reir er lokalisert.

I innenlandske butikker i 2017 er prisen omtrent 4-5 dollar. På moderne modeller hjertet er Atmega328.

Bilde av Arduino-brettet og forklaring av funksjonene til hver pinne, Arduino UNO pinout

Mikrokontrolleren på dette brettet er en lang brikke i en DIP28-pakke, som betyr at den har 28 ben.

Det nest mest populære brettet koster nesten dobbelt så mye som det forrige - 2-3 dollar. Dette er et gebyr. De nåværende brettene er bygget på samme Atmega328, de er funksjonelt lik UNO, forskjellene er i størrelse og løsning for koordinering med USB, mer om dette senere. En annen forskjell er at pinneformede plugger er gitt for å koble enheter til brettet.

Antall pinner (ben) på dette kortet er det samme, men du kan se at mikrokontrolleren er laget i en mer kompakt TQFP32-pakke, ADC6 og ADC7 er lagt til dekselet, de to andre "ekstra" bena dupliserer strømbussen . Størrelsen er ganske kompakt - omtrent på størrelse med tommelen.

Det tredje mest populære brettet er dette, det har det ikke USB-port og for å koble til en datamaskin, vil jeg fortelle deg hvordan tilkoblingen gjøres litt senere.

Dette er det minste brettet av alle gjennomgåtte, ellers ligner det på de to foregående, og hjertet er fortsatt Atmega328. Vi vil ikke vurdere andre brett, siden dette er en artikkel for nybegynnere, og å sammenligne brett er et tema for en egen artikkel.

Øverst er det et USB-UART-tilkoblingsdiagram, "GRN"-pinnen er koblet til mikrokontrollerens tilbakestillingskrets, den kan kalles av noe annet, du vil finne ut hvorfor dette er nødvendig senere.

Mens UNO er ​​flott for prototyping, er Nano og Pro Mini flotte for å fullføre prosjektet ditt fordi de tar liten plass.

Hvordan koble Arduino til datamaskinen?

Arduino Uno og Nano kobles til datamaskinen via USB. Det er imidlertid ingen maskinvarestøtte for USB-porten; kretsdesign nivåkonvertering, vanligvis kalt USB-til-seriell eller USB-UART (rs-232). Samtidig flashes en spesiell Arduino bootloader inn i mikrokontrolleren, som tillater blinking via disse bussene.

Arduino Uno implementerer denne tilkoblingen på en mikrokontroller med USB-støtte - ATmega16U2 (AT16U2). Det viser seg at en ekstra mikrokontroller på brettet er nødvendig for å flashe fastvaren til hovedmikrokontrolleren.

I Arduino Nano dette implementeres av FT232R-brikken, eller dens analoge CH340. Dette er ikke en mikrokontroller - det er en nivåomformer, dette faktum gjør det enklere Arduino montering Nano fra bunnen av med egne hender.

Vanligvis installeres drivere automatisk når du kobler til Arduino-kortet. Men da jeg kjøpte Kinesisk kopi Arduino Nano, enheten ble identifisert, men den fungerte ikke, et rundt klistremerke med informasjon om utgivelsesdatoen ble limt på konverteren, jeg vet ikke om dette ble gjort med vilje, men da jeg skrellet det av, så jeg CH340-merket.

Jeg hadde aldri vært borti dette før og trodde at alle USB-UART-omformere var satt sammen på FT232, jeg måtte laste ned driverne, de er veldig enkle å finne ved å søke etter "Arduino ch340-drivere". Etter en enkel installasjon fungerte alt!

Mikrokontrolleren kan også drives gjennom samme USB-port, dvs. hvis du kobler den til en adapter fra mobiltelefon- systemet ditt vil fungere.

Hva bør jeg gjøre hvis kortet mitt ikke har USB?

Betale Arduino Pro Mini har mindre dimensjoner. Dette ble oppnådd ved å fjerne USB-kontakt for fastvare og den samme USB-UART-konverteren. Derfor må den kjøpes separat. Den enkleste omformeren for CH340 (den billigste), CPL2102 og FT232R, selges den fra $1.

Når du kjøper, vær oppmerksom på hvilken spenning denne adapteren er designet for. Pro mini kommer i 3,3 og 5 V versjoner, omformerne har ofte en jumper for å bytte forsyningsspenning.

firmware Pro Mini, rett før den starter må du trykke RESET, men i omformere med DTR er dette ikke nødvendig, koblingsskjemaet er på figuren under.

De er koblet til spesielle "Mama-Mama" (female-female) terminaler.

Egentlig kan alle tilkoblinger gjøres ved hjelp av slike terminaler (Dupont), de kommer på begge sider med stikkontakter og med plugger, og på den ene siden er det en stikkontakt og på den andre er det en plugg.

Hvordan skrive programmer for Arduino?

For å jobbe med skisser (navnet på fastvaren på Arduino-språket), er det et spesielt integrert utviklingsmiljø for Arduino IDE, du kan laste det ned gratis fra den offisielle nettsiden eller fra hvilken som helst tematisk ressurs, er det vanligvis ingen problemer med installasjonen.

Slik ser programgrensesnittet ut. Du kan skrive programmer i et forenklet C AVR-språk spesialdesignet for Arduino, egentlig et sett med biblioteker kalt Wiring, så vel som i ren C AVR. Bruken av dette forenkler koden og fremskynder driften.

Øverst i vinduet er det vanlig meny, hvor du kan åpne filen, innstillinger, velge brettet du jobber med (Uno, Nano og mange, mange andre) og også åpne prosjekter med ferdige kodeeksempler. Nedenfor er et sett med knapper for å jobbe med fastvaren; du vil se tilordningen av tastene i figuren nedenfor.

Nederst i vinduet er det et område for å vise informasjon om prosjektet, statusen til koden, fastvaren og tilstedeværelsen av feil.

Grunnleggende om Arduino IDE-programmering

I begynnelsen av koden må du deklarere variabler og koble til ekstra biblioteker, hvis noen, gjøres dette som følger:

#inkluder biblioteka.h; // koble til biblioteket kalt "Biblioteka.h"

#define changenaya 1234; // Deklarer en variabel med verdien 1234

Define-kommandoen lar kompilatoren velge type variabel selv, men du kan angi den manuelt, for eksempel et heltall int eller en flytende komma.

int led = 13; // opprettet variabelen "led" og tildelte den verdien "13"

Programmet kan bestemme tilstanden til pinnen som 1 eller 0. 1 er en logisk enhet, hvis pinne 13 er 1, vil spenningen på dens fysiske pin være lik forsyningsspenningen til mikrokontrolleren (for Arduino UNO og Nano - 5 V)

Ta opp digitalt signal utføres av digitalWrite (pin, value) kommandoen, for eksempel:

digitalWrite(led, høy); //skriv en til pinne 13 (vi erklærte det ovenfor) loggen. Enheter.

Som du kan forstå, åpnes porter i henhold til nummereringen på tavlen, tilsvarende nummeret. Her er et eksempel som ligner på forrige kode:

digitalWrite(13, høy); // sett pinne 13 til én

En ofte brukt tidsforsinkelsesfunksjon kalles av delay()-kommandoen, hvis verdi er spesifisert i millisekunder, mikrosekunder oppnås ved å bruke

delayMicroseconds() Delay(1000); //mikrokontrolleren vil vente 1000 ms (1 sekund)

Inn- og utportinnstillingene er spesifisert i void setup()-funksjonen med kommandoen:

pinMode(NOMERPORTA, OUTPUT/INPUT); // argumenter - variabelnavn eller portnummer, input eller output å velge mellom

Forstå det første Blink-programmet

Som en slags "Hei, verden" for mikrokontrollere, er det et program for å blinke en LED, la oss se på koden:

I begynnelsen, med pinMode-kommandoen, ba vi mikrokontrolleren om å tilordne porten med LED-en til utgangen. Du har allerede lagt merke til at det i koden ikke er noen deklarasjon av variabelen "LED_BUILTIN", faktum er at i Uno, Nano og andre brett er en innebygd LED koblet til pin 13 fra fabrikken, og den er loddet på borde. Den kan brukes av deg til visning i prosjektene dine eller til enkleste sjekk dine blinkende programmer.

Deretter setter vi pinnen som LED-en er loddet til en enhet (5 V), neste linje får MK til å vente 1 sekund, og setter deretter LED_BUILTIN-pinnen til null, venter et sekund og programmet gjentas i en sirkel, så når LED_BUILTIN er lik 1, slås LED-en (og enhver annen belastning koblet til porten) på , når den er 0, er den slått av.

Leser verdien fra analog port og bruk de leste dataene

AVR Atmega328 mikrokontroller har en innebygd 10-bits analog digital omformer. 10-bits ADC lar deg lese spenningsverdier fra 0 til 5 volt, i trinn på 1/1024 av hele signalamplitudesvingen (5 V).

For å gjøre det klarere, la oss vurdere situasjonen, la oss si at spenningsverdien ved den analoge inngangen er 2,5 V, noe som betyr at mikrokontrolleren vil lese verdien fra pin “512”, hvis spenningen er 0 - “0”, og hvis 5 V - (1023). 1023 - fordi tellingen starter fra 0, dvs. 0, 1, 2, 3 osv. opptil 1023 - 1024 verdier totalt.

Dette er hvordan det ser ut i kode, ved å bruke standard "analogInput" skissen som et eksempel

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

pinMode(ledPin, OUTPUT);

sensorValue = analogRead(sensorPin);

digitalWrite(ledPin, HIGH);

forsinkelse (sensorverdi);

digitalWrite(ledPin, LOW);

forsinkelse (sensorverdi);

Vi erklærer variabler:

    Ledpin - vi tildeler uavhengig en pinne med en innebygd LED til utgangen og gir den et individuelt navn;

    sensorPin - analog inngang, satt i henhold til merkingene på tavlen: A0, A1, A2, etc.;

    sensorValue - en variabel for å lagre heltallets leseverdi og videre arbeid med ham.

Koden fungerer slik: sensorValue lagrer den analoge verdien lest fra sensorPin (analogRead-kommando). - her jobbe med analogt signal slutter, så er alt som i forrige eksempel.

Vi skriver en til ledPin, LED-en slår seg på og venter på en tid lik sensorverdien, dvs. fra 0 til 1023 millisekunder. Vi slår av LED-en og venter på denne tidsperioden igjen, hvoretter koden gjentas.

Ved å plassere potensiometeret setter vi derfor blinkefrekvensen til LED-en.

Kartfunksjon for Arudino

Ikke alle funksjoner for aktuatorer (jeg vet ikke om noen) støtter "1023" som argument, for eksempel er servoen begrenset av rotasjonsvinkelen, dvs. per halv omdreining (180 grader) (halv omdreining) av servomotoren det maksimale funksjonsargumentet er "180"

Nå om syntaksen: kart (verdien vi oversetter, minimum inngangsverdi, maksimal inngangsverdi, minimum utgangsverdi, maksimal utgangsverdi).

I koden ser det slik ut:

(map(analogRead(pot), 0, 1023, 0, 180));

Vi leser verdien fra potensiometeret (analogRead(pot)) fra 0 til 1023, og ved utgangen får vi tall fra 0 til 180

Verdikartverdier:

I praksis bruker vi dette på driften av koden til den samme servostasjonen, ta en titt på koden fra Arduino IDE, hvis du leser de forrige avsnittene nøye, krever det ingen forklaring.

Og koblingsskjemaet.

Konklusjoner Arduino er et veldig praktisk verktøy for å lære å jobbe med mikrokontrollere. Og hvis du bruker ren C AVR, eller som det noen ganger kalles "Pure C", vil du redusere vekten av koden betydelig, og mer av den vil passe inn i mikrokontrollerens minne, som et resultat vil du få en utmerket fabrikk- laget feilsøkingskort med muligheten til å flashe fastvare via USB.

Jeg liker Arduino. Det er synd at mange erfarne mikrokontrollerprogrammerere grunnløst kritiserer den for å være for forenklet. I prinsippet er det kun språket som er forenklet, men ingen tvinger deg til å bruke det, pluss at du kan flashe mikrokontrolleren via ICSP-kontakten og laste opp koden du ønsker der, uten unødvendige bootloadere.

For de som vil leke med elektronikk, som en avansert designer, er dette perfekt, og for erfarne programmerere, som et brett som ikke krever montering, vil det også være nyttig!

Mer mer informasjon om Arduino og funksjonene ved bruken i forskjellige kretser, se e-bok - .

Det første du bør gjøre for å mestre Arduino er å kjøpe et feilsøkingskort (det vil være en god idé å umiddelbart kjøpe et kretskort osv.). Jeg har allerede beskrevet hvilke typer Arduino-brett som finnes på markedet. Hvis du ikke har lest artikkelen ennå, anbefaler jeg at du leser den. For å lære det grunnleggende velger vi et standard Arduino Uno-brett (originalen eller en god kinesisk kopi - det er opp til deg). Når du kobler til det originale kortet for første gang, bør det ikke være noen problemer, men med det "kinesiske" må du grave litt dypere (ikke bekymre deg - jeg skal vise og fortelle deg alt).

Kobler Arduino til datamaskin USB kabel. LED-en på tavlen skal lyse ". En ny enhet vil vises i Enhetsbehandling " Ukjent enhet". Du må installere driveren. Her legger jeg til en liten tvetydighet(katten ble distrahert - jeg husker ikke hvilken sjåfør som bestemte " problem ukjent enhet ».

Først lastet ned og pakket ut Arduino-programvaremiljøet ( arduino-1.6.6-vinduer). Så lastet jeg ned denne. Det er selvutpakkende. Lanserte filen CH341SER.EXE. Valgt installasjon (INSTALLER). Etter installasjonen dukket det opp en melding, klikket på " OK"(hadde ikke tid til å lese den).

Så gikk jeg til egenskapene til den fortsatt "ukjente enheten" og valgte " Oppdater driver" Jeg valgte alternativet "Installer fra et spesifisert sted" - indikerte mappen med det utpakkede Arduino-programvaremiljøet. Og se, alt fungerte vellykket...

Vi lanserer Arduino-programmet (i mitt tilfelle 1.6.6) og tillater tilgang.

Alle prosjekter (programmer) for Arduino består av to deler: ugyldig oppsett Og ugyldig sløyfe. ugyldig oppsett utføres kun én gang, og ugyldig sløyfe gjøres om og om igjen.

Før vi fortsetter, er det to obligatoriske operasjoner som må fullføres:

— angi i Arduino-programvaremiljøet hvilket brett du bruker. Verktøy->brett-> Arduino Uno. Hvis merket allerede er på tavlen du trenger, er det bra; hvis ikke, sett et merke.

— spesifiser i programvaremiljøet hvilken seriell port du bruker for å kommunisere med kortet. Verktøy->port->COM3. Hvis merket allerede er på porten, er det bra, hvis ikke, sett et merke. Hvis du har mer enn én port oppført i portseksjonen, hvordan kan du finne ut hvilken som brukes til å koble til kortet? Vi tar brettet og kobler ledningen fra den. Vi går til havnene igjen og ser hvilken som har forsvunnet. I mitt tilfelle ble kategorien "porter" inaktiv i det hele tatt.

Koble til USB-kabelen igjen.

For det første programmet ingen tilleggsmoduler ikke nødvendig. Vi slår på LED-en, som allerede er montert på brettet (ved pinne 13 på mikrokontrolleren).

Først, la oss konfigurere pin 13 (inngang eller utgang).

For å gjøre dette, skriv inn i blokken " ugyldig oppsett» laget pinMode , angir vi parameterne i parentes (13, UTGANG) (Hvilken pinne er involvert, Driftsmodus). Programvaremiljøet fremhever ord/kommandoer med riktig skriftfarge.

Gå til blokken " ugyldig sløyfe"og skriv inn kommandoen digitalWrite med parametere (13, HØY) .


Det første programmet er klart, nå gjenstår det bare å laste det inn i mikrokontrolleren. Klikk på LAST OPP-knappen.

LED-en lyste opp. Men ikke vær så skeptisk til det første programmets enkelhet. Du har akkurat mestret den første kontrollkommandoen. I stedet for en LED kan du koble til hvilken som helst belastning (det være seg belysning i et rom eller en servostasjon som stenger vannforsyningen), men vi snakker om alt dette senere ...

Vi skrudde på LED-en, den lyste litt, det er på tide å slå den av. For å gjøre dette, la oss endre programmet vi skrev. I stedet for " HØY "la oss skrive" LAV ».


Klikk på LAST OPP-knappen. LED slukket.

Vi har allerede blitt kjent med konseptet "", det er på tide å bruke det. Ytterligere programmer vil bli mer og mer omfangsrike og komplekse, og arbeidet med å endre dem vil ta mer og mer tid hvis vi fortsetter å skrive kode som dette.

Vi ser på programmet (slå på lysdioden igjen). La oss angi mikrokontrollerens pin-nummer ikke som et tall 13 , men en variabel som vil bli tildelt verdien til den tilsvarende utgangen (i vårt tilfelle, 13). I fremtiden vil det være veldig praktisk å endre verdiene til variabler i begynnelsen av programmet, i stedet for å rote gjennom koden på jakt etter de stedene der det er nødvendig å endre verdier.

Lag en global variabel int LED_pin = 13; (variabeltype, variabelnavn, verdi tilordnet den).


Klikk på LAST OPP-knappen. LED-en lyser. Alt fungerer perfekt.

I denne leksjonen vil vi, i tillegg til å slå LED-en på/av, også lære å blinke den.

For å gjøre dette, skriv inn den andre kommandoen " digitalWrite» med parametere (LED_pin, LAV).


Klikk på LAST OPP-knappen. Og hva ser vi? LED-en lyser "i full utstrekning". Årsaken ligger i det faktum at koblingstiden for to tilstander ( HØY Og LAV ) er ubetydelig, og det menneskelige øyet kan ikke oppdage disse bryterne. Det er nødvendig å øke tiden LED forblir i en av tilstandene. For å gjøre dette skriver vi kommandoen forsinkelse med parameter (1000 ) . Forsinkelse i millisekunder: 1000 millisekunder – 1 sekund. Programalgoritmen er som følger: slå på LED - vent 1 sekund, slå av LED - vent 1 sekund osv.


Klikk på LAST OPP-knappen. LED-en begynte å flimre. Alt fungerer.

La oss fullføre programmet ved å lage en variabel som vil bli tildelt en verdi som er ansvarlig for varigheten av forsinkelsen.


Klikk på LAST OPP-knappen. LED-en blinker som før.

La oss ferdigstille programmet vi skrev. Oppgavene er som følger:

  • LED er på i 0,2 sekunder og av i 0,8 sekunder;
  • LED-lampen er på i 0,7 sekunder og av i 0,3 sekunder.

Programmet laget 2 variabler som er ansvarlige for tidsforsinkelser. Den ene bestemmer driftstiden for lysdioden på, og den andre - driftstiden for lysdioden av.

Takk for din oppmerksomhet. Ser deg snart!

Arduino-programmeringsspråket for nybegynnere er presentert i detalj i tabellen nedenfor. Arduino mikrokontroller programmerbar på spesielt språk programmering basert på C/C++. Språk Arduino programmering er en variant av C++, det er med andre ord ikke noe eget programmeringsspråk for Arduino. nedlasting bok PDF mulig på slutten av siden.

I Arduino IDE er alle skrevne skisser kompilert til et program i C/C++ med minimale endringer. Arduino IDE-kompilatoren forenkler skriving av programmer for denne plattformen, og å lage enheter på Arduino blir mye mer tilgjengelig for folk som ikke har omfattende kunnskap om C/C++-språket. Nedenfor vil vi gi en kort referanse som beskriver hovedfunksjonene Arduino språk med eksempler.

Detaljert referanse til Arduino-språket

Språket kan deles inn i fire seksjoner: setninger, data, funksjoner og biblioteker.

Arduino språk Eksempel Beskrivelse

Operatører

oppsett() ugyldig oppsett()
{
pinMode(3, INPUT);
}
Funksjonen brukes til å initialisere variabler, bestemme driftsmodusene til pinner på brettet osv. Funksjonen kjører kun én gang, etter hver strømtilførsel til mikrokontrolleren.
Løkke() void loop()
{
digitalWrite(3, HØY);
forsinkelse(1000);
digitalWrite(3, LAV);
forsinkelse(1000);
}
Løkkefunksjonen går rundt, slik at programmet kan utføre og reagere på beregninger. Funksjonene setup() og loop() må være til stede i hver skisse, selv om disse setningene ikke brukes i programmet.

Kontrolluttalelser

hvis
hvis(x>
hvis (x< 100) digitalWrite (3, LOW );
If-setningen brukes i kombinasjon med sammenligningsoperatorer (==, !=,<, >) og sjekker om betingelsen er sann. For eksempel, hvis verdien av variabelen x er større enn 100, slås LED-en ved utgang 13 på; hvis den er mindre, slås LED-en av.
hvis ... annet
if (x > 100) digitalWrite (3, HØY);
else digitalWrite(3, LOW);
Den andre operatøren lar deg foreta en annen sjekk enn den som er spesifisert i if, for å utføre flere gjensidig utelukkende kontroller. Hvis ingen av sjekkene mottar et SANN resultat, blir blokken med utsagn i else utført.
bytte...etui
bryter (x)
{


tilfelle 3: pause ;

}
I likhet med hvis, bytte uttalelse kontrollerer programmet, slik at du kan spesifisere handlinger som skal utføres under forskjellige forhold. Break er en kommando for å avslutte en setning; standard utføres hvis ingen alternativ er valgt.
til ugyldig oppsett()
{
pinMode(3, OUTPUT);
}
void loop()
{
for (int i=0; i<= 255; i++){
analogWrite(3, i);
forsinkelse(10);
}
}
For-konstruksjonen brukes til å gjenta utsagn omsluttet av krøllete klammeparenteser. For eksempel jevn dimming av en LED. For loop-overskriften består av tre deler: for (initialisering; betingelse; inkrement) - initialisering utføres én gang, deretter kontrolleres betingelsen, hvis betingelsen er sann, utføres inkrementet. Løkken gjentas til tilstanden blir falsk.
samtidig som void loop()
{
mens(x< 10)
{
x = x + 1;
Serial.println(x);
forsinkelse(200);
}
}
While-setningen brukes som en løkke som vil kjøre så lenge betingelsen i parentes er sann. I eksemplet vil while loop-setningen gjenta koden i parentes uendelig til x er mindre enn 10.
gjør mens void loop()
{
gjøre
{
x = x + 1;
forsinkelse(100);
Serial.println(x);
}
mens(x< 10);
delay(900);
}
Do...while loop-setningen fungerer på samme måte som while-løkken. Men hvis uttrykket i parentes er sant, fortsetter loopen i stedet for å gå ut av loopen. I eksemplet ovenfor, hvis x er større enn 10, vil tilleggsoperasjonen fortsette, men med en pause på 1000 ms.
gå i stykker
Fortsette
bryter (x)
{
tilfelle 1: digitalWrite (3, HØY);
tilfelle 2: digitalWrite (3, LAV);
tilfelle 3: pause ;
sak 4: fortsett ;
standard : digitalWrite (4, HIGH );
}
Break brukes til å tvinge ut av bryter-, do-, for- og while-løkker uten å vente på at løkken skal fullføres.
Fortsett-setningen hopper over de gjenværende setningene i det gjeldende løkketrinnet.

Syntaks

;
(semikolon)

digitalWrite(3, HØY);
Et semikolon brukes til å markere slutten av en setning. Å glemme et semikolon på slutten av en linje resulterer i en kompileringsfeil.
{}
(bukseseler)
ugyldig oppsett()
{
pinMode(3, INPUT);
}
Den innledende parentesen "(" må etterfølges av den avsluttende parentesen ")". Umatchede parenteser kan føre til skjulte og uforståelige feil ved kompilering av en skisse.
//
(en kommentar)
x = 5; // en kommentar

God dag, Habr. Jeg lanserer en serie artikler som vil hjelpe deg å bli kjent med Arduino. Men dette betyr ikke at hvis du ikke er ny i denne virksomheten, vil du ikke finne noe interessant for deg selv.

Introduksjon

Det vil være en god idé å begynne med å bli kjent med Arduino. Arduino – maskinvare og programvare for bygningsautomasjon og robotsystemer. Hovedfordelen er at plattformen er rettet mot ikke-profesjonelle brukere. Det vil si at hvem som helst kan lage sin egen robot, uavhengig av programmeringskunnskap og egne ferdigheter.

Start

Å lage et prosjekt på Arduino består av 3 hovedtrinn: skriving av kode, prototyping (breadboarding) og fastvare. For å skrive kode og deretter flashe brettet trenger vi et utviklingsmiljø. Faktisk er det ganske mange av dem, men vi vil programmere i det originale miljøet - Arduino IDE. Vi vil skrive selve koden i C++, tilpasset Arduino. Du kan laste den ned på den offisielle nettsiden. En skisse er et program skrevet på Arduino. La oss se på kodestrukturen:


main())( void oppsett())( ) void loop())( ) )

Det er viktig å merke seg at Arduino-prosessoren lager hoved()-funksjonen, som kreves i C++. Og resultatet av det programmereren ser er:


void oppsett() ( ) void loop() ( )

La oss se på de to nødvendige funksjonene. Setup()-funksjonen kalles bare én gang når mikrokontrolleren starter. Det er hun som setter alle grunninnstillingene. Loop()-funksjonen er syklisk. Det kalles i en endeløs sløyfe gjennom hele driftstiden til mikrokontrolleren.

Første program

For å bedre forstå driftsprinsippet til plattformen, la oss skrive det første programmet. Vi vil kjøre dette enkleste programmet (Blink) i to versjoner. Den eneste forskjellen mellom dem er monteringen.


int LED = 13; // erklærer LED-variabelen på pin 13 (output) void setup() ( pinMode(Led, OUTPUT); // definer variabelen ) void loop() ( digitalWrite(Led, HIGH); // bruk spenning til pin 13 forsinkelse (1000 ); // vent 1 sekund digitalWrite(Led, LOW); // ikke tilfør spenning til pin 13 forsinkelse(1000); // vent 1 sekund)

Driftsprinsippet til dette programmet er ganske enkelt: LED-lampen lyser i 1 sekund og slukker i 1 sekund. For det første alternativet trenger vi ikke å sette sammen et oppsett. Siden Arduino-plattformen har en innebygd LED koblet til pin 13.

Arduino firmware

For å laste opp en skisse til Arduino, må vi først bare lagre den. Deretter, for å unngå problemer under lasting, må du sjekke programmeringsinnstillingene. For å gjøre dette, velg "Verktøy"-fanen på topppanelet. I «Betaling»-delen velger du betalingen din. Det kan være Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo eller andre. Også i "Port"-delen må du velge tilkoblingsporten (porten du koblet plattformen til). Etter disse trinnene kan du laste opp skissen. For å gjøre dette, klikk på pilen eller velg "Last ned" i fanen "Sketch" (du kan også bruke hurtigtasten "Ctrl + U"). Styrefastvaren er fullført.

Prototyping/layout

For å sette sammen brødbrettet trenger vi følgende elementer: LED, motstand, ledninger (jumpere), brødbrett. For ikke å brenne noe, og for at alt skal fungere vellykket, må du håndtere LED-en. Den har to "bein". Kort er et minus, lang er et pluss. Vi vil koble bakken (GND) og en motstand til den korte (for å redusere strømmen som leveres til LED-en for ikke å brenne den), og vi vil levere strøm til den lange (koble til pinne 13). Etter tilkobling laster du opp skissen til tavlen hvis du ikke har gjort det tidligere. Koden forblir den samme.


Dette er slutten på første del. Takk for din oppmerksomhet.