Arduino: hva kan gjøres med det. Arduino for nybegynnere: trinnvise instruksjoner. Arduino-programmering og -prosjekter: Hvor skal jeg begynne? Arduino-design

I denne artikkelen bestemte jeg meg for å samle en komplett trinn for trinn guide for nybegynnere i Arduino. Vi vil se på hva Arduino er, hva du trenger for å begynne å lære, hvor du kan laste ned og hvordan du installerer og konfigurerer programmeringsmiljøet, hvordan det fungerer og hvordan du bruker programmeringsspråket, og mye mer som er nødvendig for å lage fullverdig komplekse enheter basert på familien til disse mikrokontrollerne.

Her vil jeg prøve å gi et fortettet minimum slik at du forstår prinsippene for å jobbe med Arduino. For en mer fullstendig fordypning i verden av programmerbare mikrokontrollere, ta hensyn til andre seksjoner og artikler på dette nettstedet. Jeg vil legge igjen lenker til annet materiale på denne siden for en mer detaljert studie av noen aspekter.

Hva er Arduino og hva er det for?

Arduino er et elektronisk byggesett som lar alle lage en rekke elektromekaniske enheter. Arduino består av programvare og maskinvare. Programvaredelen inkluderer et utviklingsmiljø (et program for å skrive og feilsøke fastvare), mange ferdige og praktiske biblioteker og et forenklet programmeringsspråk. Maskinvaren inkluderer en stor serie med mikrokontrollere og ferdige moduler for dem. Takket være dette er det veldig enkelt å jobbe med Arduino!

Ved hjelp av Arduino kan du lære programmering, elektroteknikk og mekanikk. Men dette er ikke bare en pedagogisk konstruktør. Basert på det kan du lage virkelig nyttige enheter.
Fra enkle blinklys, værstasjoner, automasjonssystemer og slutter med smarthussystemer, CNC-maskiner og ubemannede luftfartøyer. Mulighetene er ikke engang begrenset av fantasien din, fordi det er et stort antall instruksjoner og ideer for implementering.

Arduino startsett

For å begynne å lære Arduino, må du anskaffe selve mikrokontrollerkortet og tilleggsdeler. Det er best å kjøpe et Arduino startsett, men du kan velge alt du trenger selv. Jeg anbefaler å velge et sett fordi det er enklere og ofte billigere. Her er lenker til de beste settene og individuelle delene som du definitivt trenger å studere:

Grunnleggende Arduino-sett for nybegynnere:Kjøpe
Stort sett for trening og første prosjekter:Kjøpe
Sett med ekstra sensorer og moduler:Kjøpe
Arduino Uno er den mest grunnleggende og praktiske modellen fra linjen:Kjøpe
Loddefri brødbrett for enkel læring og prototyping:Kjøpe
Sett med ledninger med praktiske kontakter:Kjøpe
LED-sett:Kjøpe
Motstandssett:Kjøpe
Knapper:Kjøpe
Potensiometre:Kjøpe

Arduino IDE utviklingsmiljø

For å skrive, feilsøke og laste ned fastvare, må du laste ned og installere Arduino IDE. Dette er et veldig enkelt og praktisk program. På nettstedet mitt har jeg allerede beskrevet prosessen med å laste ned, installere og konfigurere utviklingsmiljøet. Så her vil jeg bare legge igjen linker til siste versjon programmer og

Versjon Windows Mac OS X Linux
1.8.2

Arduino programmeringsspråk

Når du har et mikrokontrollerkort i hendene og et utviklingsmiljø installert på datamaskinen, kan du begynne å skrive dine første skisser (fastvare). For å gjøre dette, må du bli kjent med programmeringsspråket.

Arduino-programmering bruker en forenklet versjon av C++-språket med forhåndsdefinerte funksjoner. Som i andre C-lignende programmeringsspråk finnes det en rekke regler for å skrive kode. Her er de mest grunnleggende:

  • Hver instruksjon må følges av et semikolon (;)
  • Før du erklærer en funksjon, må du spesifisere datatypen som returneres av funksjonen, eller ugyldig hvis funksjonen ikke returnerer en verdi.
  • Det er også nødvendig å angi datatypen før du deklarerer en variabel.
  • Kommentarer er utpekt: ​​// Inline og /* blokk */

Du kan lære mer om datatyper, funksjoner, variabler, operatorer og språkkonstruksjoner på siden på Du trenger ikke å huske og huske all denne informasjonen. Du kan alltid gå til oppslagsboken og se på syntaksen til en bestemt funksjon.

All Arduino-fastvare må inneholde minst 2 funksjoner. Disse er setup() og loop().

oppsett funksjon

For at alt skal fungere, må vi skrive en skisse. La oss få LED-en til å lyse etter å ha trykket på knappen, og slukke etter neste trykk. Her er vår første skisse:

// variabler med pinner til tilkoblede enheter int switchPin = 8; int ledPin = 11; // variabler for å lagre statusen til knappen og LED boolean lastButton = LOW; boolsk strømknapp = LAV; boolsk ledOn = falsk; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // funksjon for debouncing boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay ( 5); current = digitalRead(switchPin); ) returstrøm; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite(ledPin, ledOn); )

// variabler med pinner til tilkoblede enheter

int switchPin = 8 ;

int ledPin = 11 ;

// variabler for å lagre statusen til knappen og LED

boolean lastButton = LAV ;

boolean currentButton = LAV ;

boolsk ledPå = falsk;

void oppsett() (

pinMode(switchPin, INPUT);

pinMode(ledPin, OUTPUT);

// funksjon for avhopping

boolsk debounse (boolsk siste ) (

boolsk strøm = digitalRead(switchPin);

if (siste != gjeldende ) (

forsinkelse(5);

gjeldende = digitalRead(switchPin);

returstrøm ;

void loop() (

currentButton = debounse(lastButton);

if (lastButton == LOW && currentButton == HIGH ) (

ledOn = ! ledPå;

lastButton = currentButton ;

digitalWrite(ledPin, ledOn);

I denne skissen opprettet jeg en ekstra debounse-funksjon for å undertrykke kontaktsprett. Det er informasjon om kontaktsprett på nettsiden min. Sørg for å sjekke ut dette materialet.

PWM Arduino

Pulsbreddemodulasjon (PWM) er prosessen med å kontrollere spenning ved bruk av driftssyklusen til et signal. Det vil si at ved hjelp av PWM kan vi jevnt kontrollere belastningen. For eksempel kan du jevnt endre lysstyrken til en LED, men denne endringen i lysstyrke oppnås ikke ved å redusere spenningen, men ved å øke intervallene til det lave signalet. Driftsprinsippet til PWM er vist i dette diagrammet:

Når vi bruker PWM på LED-en, begynner den å lyse raskt og slukke. Det menneskelige øyet er ikke i stand til å se dette fordi frekvensen er for høy. Men når du tar opp video, vil du mest sannsynlig se øyeblikk når LED-en ikke lyser. Dette vil skje forutsatt at kameraets bildefrekvens ikke er et multiplum av PWM-frekvensen.

Arduino har en innebygd pulsbreddemodulator. Du kan bare bruke PWM på de pinnene som støttes av mikrokontrolleren. For eksempel har Arduino Uno og Nano 6 PWM-pinner: disse er pinner D3, D5, D6, D9, D10 og D11. Pinnene kan variere på andre brett. Du kan finne en beskrivelse av styret du er interessert i

For å bruke PWM i Arduino er det en funksjon.Den tar som argumenter pin-nummeret og PWM-verdien fra 0 til 255. 0 er 0% fylling med et høyt signal, og 255 er 100%. La oss skrive en enkel skisse som et eksempel. La oss få LED-en til å lyse jevnt, vente ett sekund og tone ut like jevnt, og så videre i det uendelige. Her er et eksempel på bruk av denne funksjonen:

// LED-en er koblet til pin 11 int ledPin = 11; void setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( for (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) ( analogWrite(ledPin, i); delay(5); ) )

// LED koblet til pinne 11

int ledPin = 11 ;

void oppsett() (

pinMode(ledPin, OUTPUT);

void loop() (

for (int i = 0 ; i< 255 ; i ++ ) {

analogWrite(ledPin, i);

forsinkelse(5);

forsinkelse(1000);

for (int i = 255; i > 0; i -- ) (

En serie artikler og treningsdiagrammer med amatørradioeksperimenter på Arduino for nybegynnere. Dette er en amatørradioleketøyskonstruktør som uten loddebolt, etsing av trykte kretskort og lignende kan sette sammen en fullverdig arbeidsenhet, egnet for både profesjonell prototyping og amatøreksperimenter i studiet av elektronikk. .


Arduino-kortet er først og fremst ment for å lære nybegynnere radioamatører det grunnleggende om programmering av mikrokontrollere og lage mikrokontrollerenheter med egne hender uten seriøs teoretisk trening. Arduinos utviklingsmiljø lar deg kompilere og laste ferdig programkode inn i kortets minne. Dessuten er det ekstremt enkelt å laste koden.

Arduino hvor du skal begynne for en nybegynner

Først av alt, for å jobbe med Arduino-kortet, må en nybegynner elektronikkingeniør laste ned Arduino-utviklingsprogrammet; det består av en innebygd tekstredigerer der vi jobber med programkode, et meldingsområde, et tekstutdatavindu (konsoll) ), en verktøylinje med knapper for ofte brukte kommandoer og flere menyer. For å laste ned programmene og kommunisere, er dette programmet koblet til Arduino-kortet via en standard USB-kabel.


Kode skrevet i Arduino-miljøet kalles skisse. Det er skrevet i tekstredigerer, som har spesialverktøy for å sette inn/klippe ut, erstatte/søke etter tekst. Under lagring og eksport vises forklaringer i meldingsområdet (se bildet i første leksjon for nybegynnere, rett nedenfor), og feil kan også vises. Konsollen viser Arduino-meldinger, inkludert fullstendige feilrapporter og annen nyttig informasjon. Verktøylinjeknapper lar deg sjekke og ta opp en skisse, åpne, opprette og lagre den, åpne seriell bussovervåking og mye mer.

Så la oss gå videre til den første leksjonen av Arduino-kretser for nybegynnere av elektronikkingeniører.

For enkelhets skyld for nybegynnere har Arduino UNO-kontrolleren allerede en motstand og en LED koblet til pin 13 på kontakten, så vi trenger ingen eksterne radioelementer i det første eksperimentet.


Ved å laste inn koden lar Arduino programmet vårt delta i systeminitialisering. For å gjøre dette, indikerer vi til mikrokontrollerkommandoene at den vil utføres ved første oppstart og deretter helt glemme dem (dvs. disse kommandoene vil bli utført av Arduino bare én gang ved oppstart). Og det er for dette formålet at vi i koden vår velger en blokk der disse kommandoene er lagret. ugyldig oppsett(), eller rettere sagt i rommet innenfor de krøllete klammeparentesene til denne funksjonen, se programskissen.

Ikke glem tannregulering! Tapet av minst en av dem vil gjøre hele skissen helt ubrukelig. Men ikke sett ekstra parenteser heller, da dette også vil føre til en feil.

Last ned kode:
Skisse med kommentarer og forklaringer i filen 001-1_mig-led.ino

Funksjon void loop() det er her vi legger kommandoene som vil bli utført så lenge Arduino er slått på. Etter å ha startet kjøringen fra den første kommandoen, vil Arduino nå helt til slutten og umiddelbart gå til begynnelsen for å gjenta den samme sekvensen. Og så videre et uendelig antall ganger, så lenge brettet får strøm. I kjernen er en void loop hovedfunksjonen, inngangspunktet til Arduino.


Funksjon forsinkelse(1000) forsinker programbehandlingen med 1000 millisekunder. Det hele foregår i en evig syklus Løkke().

Hovedkonklusjonen etter å ha forstått vårt første program på Arduino: Ved å bruke void loop og void setup-funksjonene sender vi instruksjonene våre til mikrokontrolleren. Alt som er inne i oppsettblokken vil kun bli utført én gang. Innholdet i loop-modulen vil bli gjentatt i en loop så lenge Arduino forblir slått på.

I forrige program var det en ny forsinkelse mellom å slå av og på lysdioden. Det var ett stort minus i den enkleste koden til en nybegynner Arduino-operatør som ble brukt ovenfor. For å opprettholde en pause mellom å slå på og av lysdioden i ett sekund, brukte vi funksjonen forsinkelse() og derfor for øyeblikket er ikke kontrolleren i stand til å utføre andre kommandoer i hovedfunksjonen Løkke(). Korrigere kode i en funksjon Løkke(), presentert nedenfor løser dette problemet.

I stedet for å sette verdien til HIGH og deretter til LOW, vil vi få verdien til ledPin og invertere den. La oss si at hvis den var HØY, vil den bli LAV osv.

Sekund Arduino-kodealternativ for LED-kontroll Her:

Da kan du erstatte funksjonen forsinkelse(). I stedet er det bedre å bruke funksjonen millis(). Den returnerer antall millisekunder som har gått siden programmet startet. Funksjonen vil flyte over etter omtrent 50 dager med kjøring av programkoden.

En lignende funksjon er mikros(), som returnerer antall mikrosekunder som har gått siden programkoden ble lansert. Funksjonen går tilbake til null etter 70 minutters programdrift.

Selvfølgelig vil dette legge til noen få linjer med kode til skissen vår, men det vil utvilsomt gjøre deg til en mer erfaren programmerer og øke potensialet til din Arduino. For å gjøre dette trenger du bare å lære hvordan du bruker millis-funksjonen.

Det skal være klart forstått at den enkleste forsinkelsesfunksjonen stopper utførelsen av hele Arduino-programmet, noe som gjør det ikke i stand til å utføre noen oppgaver i løpet av denne tidsperioden. I stedet for å sette hele programmet på pause, kan vi telle hvor lang tid som har gått før handlingen fullføres. Dette er fint implementert ved hjelp av millis()-funksjonen. For å gjøre alt lett å forstå, vil vi vurdere følgende alternativ for å blinke en LED uten tidsforsinkelse.

Begynnelsen av dette programmet er den samme som enhver annen standard Arduino-skisse.


Dette eksemplet bruker to Arduino digitale I/O-pinner. LED-en er koblet til pinne 8, som er konfigurert som OUTPUT. En knapp er koblet til 9 via, som er konfigurert som INPUT. Når vi trykker på knappen settes pinne 9 til HØY, og programmet bytter pin 8 til HØY, og slår dermed på LED. Å slippe knappen tilbakestiller pinne 9 til LAV. Koden bytter deretter pin 8 til LAV, og slår av indikatorlyset.

For å kontrollere fem lysdioder vil vi bruke forskjellige manipulasjoner med Arduino-porter. For å gjøre dette vil vi skrive data direkte til Arduino-portene, dette vil tillate oss å angi verdiene for LED-ene ved hjelp av bare én funksjon.

Arduino UNO har tre porter: B(digitale innganger/utganger fra 8 til 13); C(analoge innganger); D(digitale innganger/utganger 0 til 7)

Hver port kontrollerer tre registre. Den første DDR spesifiserer om pinnen skal være en inngang eller utgang. Ved å bruke det andre PORT-registeret kan du sette pin til HIGH eller LOW. Ved å bruke den tredje kan du lese informasjon om tilstanden til Arduino-benene, hvis de fungerer som en inngang.

For å betjene kretsen vil vi bruke port B. For å gjøre dette vil vi sette alle portpinner som digitale utganger. Port B har bare 6 ben. DDRB-registerbitene må settes til "1" , hvis pinnen skal brukes som en utgang (OUTPUT), og inn "0" , hvis vi planlegger å bruke pinnen som en inngang (INPUT). Portbiter er nummerert 0 til 7, men har ikke alltid alle 8 pinnene

La oss si: DDRB = B00111110;// sett port B pinner 1 til 5 som utgang og 0 som inngang.

I kjørelyskretsen vår bruker vi fem utganger: DDRB = B00011111; // sett port B pinner 0 til 4 som utganger.

For å skrive data til port B, må du bruke PORTB-registeret. Du kan tenne den første LED-en ved å bruke kontrollkommandoen: PORTB = B00000001;, første og fjerde LED: PORTB = B00001001 og så videre

Det er to binære skiftoperatorer: venstre og høyre. Venstre skiftoperatør får alle databiter til å flytte til venstre, mens høyre skiftoperatør flytter dem til høyre.

Eksempel:

varA = 1; // 00000001
varA = 1 varA = 1 varA = 1

La oss nå gå tilbake til kildekoden til programmet vårt. Vi må legge inn to variabler: opp ned vil inkludere verdiene for hvor du skal flytte - opp eller ned, og den andre cylon vil indikere hvilke lysdioder som skal tennes.

Strukturelt sett har en slik LED én felles terminal og tre terminaler for hver farge. Nedenfor er et diagram over tilkobling av en RGB LED til et Arduino-kort med en felles katode. Alle motstander som brukes i koblingskretsen må ha samme verdi fra 220-270 Ohm.


For en tilkobling med en felles katode vil koblingsskjemaet for en trefarget LED være nesten det samme, bortsett fra at den felles pinnen ikke kobles til jord (gnd på enheten), men til +5 volt-pinnen. Pinner Rød, grønn og blå er i begge tilfeller koblet til kontrollerens digitale utganger 9, 10 og 11.

Vi vil koble en ekstern LED til den niende pinnen til Arduino UNO gjennom en motstand på 220 Ohm. For å jevnt kontrollere lysstyrken til sistnevnte, bruk funksjonen analogWrite(). Den gir utgang av et PWM-signal til kontrollerbenet. Dessuten laget pinMode() ikke nødvendig å ringe. Fordi analogWrite(pin, verdi) inkluderer to parametere: pinne - pinnenummer for utgang, verdi - verdi fra 0 til 255.

Kode:
/*
Et opplæringseksempel for en nybegynner Arduino-utvikler som avslører egenskapene til analogWrite()-kommandoen for å implementere Fade-effekten til en LED
*/
int lysstyrke = 0; // LED-lysstyrke
int fadeAmount = 5; // lysstyrke endre trinn
unsigned long currentTime;
usignert lang loopTime;

Ugyldig oppsett() (
pinMode(9, OUTPUT); // sett pin 9 som utgang
gjeldendeTid = millis();
loopTime = currentTime;
}

Void loop() (
gjeldendeTid = millis();
if(currentTime >= (loopTime + 20))(
analogWrite(9, lysstyrke); // sett verdien på pinne 9

Lysstyrke = lysstyrke + fadeAmount; // legg til et trinn for å endre lysstyrken, som vil bli etablert i neste syklus

// hvis nådd min. eller maks. verdier, så går vi i motsatt retning (revers):
if (lysstyrke == 0 || lysstyrke == 255) (
fadeAmount = -fadeAmount ;
}
loopTime = currentTime;
}
}

Fungerer Arduino med en koder

Enkoderen er designet for å konvertere rotasjonsvinkelen til et elektrisk signal. Fra den mottar vi to signaler (A og B), som er motsatt i fase. I denne opplæringen vil vi bruke SparkFun COM-09117-koderen, som har tolv posisjoner per omdreining (hver posisjon er nøyaktig 30°). Figuren nedenfor viser tydelig hvordan utgang A og B avhenger av hverandre når koderen beveger seg med eller mot klokken.

Hvis signal A går fra et positivt nivå til null, leser vi verdien av utgang B. Hvis utgang B er i positiv tilstand på dette tidspunktet, beveger koderen seg i retning med klokken, hvis B gir ut et nullnivå, så koderen beveger seg i motsatt retning. Ved å lese begge utgangene er vi i stand til å beregne rotasjonsretningen ved hjelp av en mikrokontroller, og ved å telle pulser fra A-utgangen til koderen, rotasjonsvinkelen.

Om nødvendig kan du bruke frekvensberegninger for å bestemme hvor raskt koderen roterer.

Ved å bruke en koder i opplæringseksemplet vårt vil vi justere lysstyrken på LED-en ved å bruke PWM-utgangen. For å lese data fra koderen vil vi bruke en metode basert på programvaretidtakere, som vi allerede har dekket.

Med tanke på det faktum at i rask sak, kan vi rotere koderknappen 180° på 1/10 av et sekund, så blir det 6 pulser på 1/10 av et sekund eller 60 pulser på ett sekund.

I realiteten er det ikke mulig å rotere raskere. Siden vi trenger å spore alle halvsykluser, bør frekvensen være omtrent 120 Hertz. For å være helt sikker, la oss ta 200 Hz.

Siden vi i dette tilfellet bruker en mekanisk koder, er kontaktsprett mulig, og den lave frekvensen filtrerer perfekt bort slik sprett.


Basert på programtidsursignalene er det nødvendig å hele tiden sammenligne gjeldende verdi av koderutgangen A med forrige verdi. Hvis tilstanden endres fra positiv til null, spør vi statusen til utgang B. Avhengig av resultatet av statusundersøkelsen øker eller reduserer vi LED-lysstyrketelleren. Programkoden med et tidsintervall på ca. 5 ms (200 Hz) er presentert nedenfor:

Arduino nybegynnerkode:
/*
** Enkoder
** For å kontrollere lysstyrken på LED-en brukes en koder fra Sparkfun
*/

Int lysstyrke = 120; // LED-lysstyrke, start på halvparten
int fadeAmount = 10; // lysstyrke endre trinn
unsigned long currentTime;
usignert lang loopTime;
const int pin_A = 12; // pinne 12
const int pin_B = 11; // pinne 11
usignert char encoder_A;
usignert char encoder_B;
usignert char encoder_A_prev=0;
void oppsett() (
// erklærer pin 9 for å være en utgang:
pinMode(9, OUTPUT); // sett pin 9 som utgang
pinMode(pin_A, INPUT);
pinMode(pin_B, INPUT);
gjeldendeTid = millis();
loopTime = currentTime;
}
void loop() (
gjeldendeTid = millis();
if(currentTime >= (loopTime + 5))( // sjekk tilstander hver 5ms (frekvens 200 Hz)
encoder_A = digitalRead(pin_A); // les tilstanden til utgang A til koderen
encoder_B = digitalRead(pin_B); // koderutgang B
if((!encoder_A) && (encoder_A_prev))( // hvis tilstanden endres fra positiv til null
if(koder_B) (
// utgang B er i positiv tilstand, som betyr at rotasjonen er med klokken
// øke lysstyrken til gløden, ikke mer enn 255
if(lysstyrke + fadeAmount )
ellers(
// utgang B er i nulltilstand, som betyr at rotasjonen er mot klokken
// reduser lysstyrken, men ikke under null
if(lysstyrke - fadeAmount >= 0) lysstyrke -= fadeAmount;
}

}
encoder_A_prev = encoder_A; // lagre verdien av A for neste sløyfe

AnalogWrite(9, lysstyrke); // sett lysstyrken til den niende pinne

LoopTime = gjeldende tid;
}
}

I dette nybegynnereksemplet skal vi se på å jobbe med en piezo-emitter for å generere lyder. For å gjøre dette, la oss ta en piezoelektrisk sensor som lar oss generere lydbølger i frekvensområdet 20 Hz - 20 kHz.

Dette er et amatørradiodesign hvor LED-er er plassert over hele volumet. Ved å bruke dette opplegget kan du generere forskjellige lys- og animasjonseffekter. Komplekse diagrammer kan til og med vise forskjellige store ord. Dette er med andre ord en elementær surroundmonitor

Servodrevet er hovedelementet i utformingen av forskjellige radiostyrte modeller, og styringen ved hjelp av en kontroller er enkel og praktisk.


Kontrollprogrammet er enkelt og intuitivt. Det starter med å koble til en fil som inneholder alle nødvendige kommandoer for å kontrollere servostasjonen. Deretter lager vi et servoobjekt, for eksempel servoMain. Den neste funksjonen er setup(), der vi spesifiserer at servoen er koblet til den niende pinnen på kontrolleren.

Kode:
/*
Arduino Servo
*/
#inkludere
Servo servoMain; // Servoobjekt

Ugyldig oppsett()
{
servoMain.attach(9); // Servo koblet til pin 9
}

void loop()
{
servoMain.write(45); // Roter servo til venstre 45°
delay(2000); // Vent 2000 millisekunder (2 sekunder)
servoMain.write(0); // Roter servo til venstre med 0°
forsinkelse(1000); // Pause 1 s.

forsinkelse(1500); // Vent 1,5 s.
servoMain.write(135); // Roter servo høyre 135°
forsinkelse(3000); // Pause 3 s.
servoMain.write(180); // Roter servo høyre 180°
forsinkelse(1000); // Vent 1 s.
servoMain.write(90); // Roter servoen 90°. Sentral posisjon
forsinkelse(5000); // Pause 5 s.
}

I hovedfunksjonen Løkke(), gir vi kommandoer til servomotoren, med pauser mellom dem.

Arduino tellerkrets på en 7-segment indikator

Dette enkle Arduino-prosjektet for nybegynnere innebærer å lage en tellerkrets ved å bruke en vanlig 7-segments felles katodeskjerm. Programkoden nedenfor lar deg begynne å telle fra 0 til 9 når du trykker på en knapp.

Syv-segmentindikator - er en kombinasjon av 8 lysdioder (den siste er ansvarlig for punktet) med en felles katode, som kan slås på i ønsket rekkefølge slik at de lager tall. Det skal bemerkes at i denne kretsen, se figuren nedenfor, er pinnene 3 og 8 tildelt katoden.


Til høyre er en tabell med samsvar mellom Arduino-pinner og LED-indikatorpinner.

Kode for dette prosjektet:

byte tall = (
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110
};
void oppsett() (
for(int i = 2; i pinMode(i, OUTPUT);
}
pinMode(9, INPUT);
}
int teller = 0;
bool go_by_switch = sant;
int siste_inndataverdi = LAV;
void loop() (
if(go_by_switch) (
int switch_input_value = digitalRead(9);
if(last_input_value == LOW && switch_input_value == HØY) (

}
siste_inndataverdi = bytte_inndataverdi;
) annet (
forsinkelse(500);
teller = (teller + 1) % 10;
}
skrivTall(teller);
}

Void writeNumber(int number) (
if(nummer 9) (
komme tilbake;
}
byte maske = tall;
byte currentPinMask = B10000000;
for(int i = 2; i if(mask & currentPinMask) digitalWrite(i,HIGH);
else digitalWrite(i,LOW);
currentPinMask = currentPinMask >> 1;
}
}

Du kan utvide potensialet til Arduino-kort betraktelig ved hjelp av tilleggsmoduler som kan kobles til PIN-pinnene til nesten hvilken som helst enhet. Tenk på de mest populære og interessante utvidelsesmodulene, eller skjoldene som de også kalles.

Arduino er veldig populær blant alle designentusiaster. De som aldri har hørt om det bør også introduseres for det.

Hva er Arduino?

Hvordan kan du kort beskrive Arduino? De beste ordene vil være: Arduino er et verktøy som kan brukes til å lage ulike elektroniske enheter. I hovedsak er dette en ekte maskinvareplattform for generell bruk. Den kan brukes til å bygge enkle kretser, og for gjennomføring av ganske komplekse prosjekter.

Designeren er basert på maskinvaren, som er et input-output-kort. For å programmere brettet brukes språk som er basert på C/C++. De kalles henholdsvis Processing/Wiring. Fra gruppe C arvet de ekstrem enkelhet, takket være hvilken de kan mestres veldig raskt av enhver person, og å bruke kunnskap i praksis er ikke et ganske betydelig problem. For at du skal forstå hvor enkelt det er å jobbe, sies det ofte at Arduino er for nybegynnere av veiviserdesignere. Selv barn kan forstå Arduino-brett.

Hva kan du samle på den?

Applikasjonene til Arduino er ganske forskjellige; den kan brukes både for de enkleste eksemplene, som vil bli anbefalt på slutten av artikkelen, og for ganske komplekse mekanismer, inkludert manipulatorer, roboter eller produksjonsmaskiner. Noen håndverkere klarer å bruke slike systemer til å lage nettbrett, telefoner, overvåkings- og hjemmesikkerhetssystemer, " smart hus"eller bare datamaskiner. Arduino-prosjekter for nybegynnere, som selv de uten erfaring kan komme i gang med, er på slutten av artikkelen. De kan til og med brukes til å lage primitive virtuelle virkelighetssystemer. Alt takket være den ganske allsidige maskinvaren og egenskapene som Arduino-programmering gir.

Hvor kan jeg kjøpe komponentene?

Komponenter laget i Italia regnes som originale. Men prisen på slike sett er ikke lav. Derfor lager en rekke selskaper eller til og med enkeltpersoner håndverksmetoder av Arduino-kompatible enheter og komponenter, som spøkefullt kalles produksjonskloner. Ved kjøp av slike kloner kan man ikke si med sikkerhet at de vil fungere, men ønsket om å spare penger tar sitt toll.

Komponenter kan kjøpes enten som en del av sett eller separat. Det finnes til og med ferdige sett for montering av biler, helikoptre med forskjellige typer kontroller eller skip. Et sett som det som er avbildet ovenfor, laget i Kina, koster $49.

Mer om utstyret

Arduino-brett er enkelt AVR mikrokontroller, som ble flashet med en bootloader og har minimum nødvendig USB-UART-port. Det er andre viktige komponenter, men innenfor rammen av artikkelen ville det være bedre å kun fokusere på disse to komponentene.

Først, om mikrokontrolleren, en mekanisme bygget på en enkelt krets der det utviklede programmet er plassert. Programmet kan påvirkes ved å trykke på knapper, motta signaler fra komponentene i skapelsen (motstander, transistorer, sensorer, etc.), etc. Dessuten kan sensorene være svært forskjellige i deres formål: belysning, akselerasjon, temperatur, avstand, trykk, hindringer etc. Enkle deler kan brukes som displayenheter, fra LED og diskanthøyttalere til komplekse enheter, som grafiske displayer. Kvaliteten som vurderes er motorer, ventiler, releer, servoer, elektromagneter og mange andre, som vil ta veldig, veldig lang tid å liste opp. MK arbeider direkte med noen av disse listene, ved hjelp av tilkoblingsledninger. Noen mekanismer krever adaptere. Men når du først begynner å designe, vil det være vanskelig for deg å rive deg løs. La oss nå snakke om Arduino-programmering.

Lær mer om styreprogrammeringsprosessen

Et program som allerede er klart til å kjøre på en mikrokontroller kalles firmware. Det kan være enten ett prosjekt eller Arduino-prosjekter, så det vil være tilrådelig å lagre hver fastvare i en egen mappe for å fremskynde prosessen med å finne nødvendige filer. Den blinkes på MK-krystallen ved hjelp av spesialiserte enheter: programmerere. Og her har Arduino én fordel - den trenger ikke en programmerer. Alt er gjort slik at programmering av Arduino for nybegynnere ikke skal være vanskelig. Den skrevne koden kan lastes inn i MK via en USB-kabel. Denne fordelen oppnås ikke av en forhåndsbygd programmerer, men av spesiell firmware - en bootloader. Bootloaderen er et spesialprogram som starter umiddelbart etter tilkobling og lytter til om det er noen kommandoer, om man skal flashe krystallen, om det er Arduino-prosjekter eller ikke. Det er flere svært attraktive fordeler ved å bruke en bootloader:

  1. Bruker kun én kommunikasjonskanal, som ikke krever ekstra tidskostnader. Så Arduino-prosjekter krever ikke at du kobler til mange forskjellige ledninger, og det vil være forvirring når du bruker dem. Én USB-kabel er nok for vellykket drift.
  2. Beskyttelse mot skjeve hender. Det er ganske enkelt å bringe mikrokontrolleren til en mursteinstilstand ved å bruke direkte fastvare; du trenger ikke å jobbe hardt. Når du arbeider med en bootloader, vil du ikke kunne få tilgang til potensielt farlige innstillinger (ved hjelp av et utviklingsprogram, selvfølgelig, ellers kan alt bli ødelagt). Derfor er Arduino for nybegynnere ment ikke bare fra det synspunkt at det er forståelig og praktisk, det vil også tillate deg å unngå uønskede økonomiske utgifter forbundet med uerfarenhet til personen som jobber med dem.

Prosjekter for å komme i gang

Når du har skaffet deg et sett, en loddebolt, kolofonium og loddemetall, bør du ikke umiddelbart forme veldig komplekse strukturer. Selvfølgelig kan du lage dem, men sjansen for suksess i Arduino for nybegynnere er ganske lav med komplekse prosjekter. For å trene og forbedre ferdighetene dine, kan du prøve å implementere noen få enklere ideer som vil hjelpe deg å forstå samspillet og driften av Arduino. Som slike første trinn i arbeidet med Arduino for nybegynnere, kan vi råde deg til å vurdere:

  1. Lag en som vil fungere takket være Arduino.
  2. Koble en egen knapp til Arduino. I dette tilfellet kan du gjøre det slik at knappen kan justere lyset på LED-en fra punkt nr. 1.
  3. Potensiometertilkobling.
  4. Servodriftskontroll.
  5. Koble til og arbeide med en trefarget LED.
  6. Koble til det piezoelektriske elementet.
  7. Koble til en fotomotstand.
  8. Koble til en bevegelsessensor og signaler om driften.
  9. Koble til en fuktighets- eller temperatursensor.

Prosjekter for fremtiden

Det er usannsynlig at du er interessert i Arduino for å koble til individuelle lysdioder. Mest sannsynlig er du tiltrukket av muligheten til å lage din egen bil, eller flygende platespiller. Disse prosjektene er vanskelige å implementere og vil kreve mye tid og utholdenhet, men når de er fullført, vil du få det du ønsker: verdifull Arduino-designopplevelse for nybegynnere.

De fleste elektronikkingeniører foretrekker å bygge sine prosjekter basert på en mikrokontroller, som vi allerede har skrevet om flere ganger. I den følgende artikkelen vil vi se på enkle design av elektroniske enheter for nybegynnere og de mest uvanlige prosjektene basert på den nevnte mikrokontrolleren.

For det første er det verdt å bli kjent med funksjonaliteten til Arduino Uno-mikroprosessoren, som de fleste prosjekter er bygget på, og også vurdere årsakene til å velge denne enheten. Nedenfor er faktorene hvorfor en nybegynner oppfinner bør velge Arduino uno:

  1. Ganske enkelt å bruke grensesnitt. Det er tydelig hvor kontakten er og hvor tilkoblingsledningene skal festes.
  2. Brikken på brettet kobles direkte til USB-porten. Fordelen med dette oppsettet er at seriell kommunikasjon er en veldig enkel protokoll som har bestått tidens tann, og USB gjør tilkobling til moderne datamaskiner veldig praktisk.
  3. Det er lett å finne den sentrale delen av mikrokontrolleren, som er ATmega328-brikken. Den har flere maskinvarefunksjoner som tidtakere, eksterne og interne avbrudd, PWM-pinner og flere hvilemoduser.
  4. Enheten er åpen kildekode, så et stort antall radioamatører kan fikse feil og problemer i programvare. Dette gjør det lettere å feilsøke prosjekter.
  5. Klokkehastigheten er 16 MHz, noe som er raskt nok for de fleste applikasjoner og øker ikke mikrokontrolleren.
  6. Det er veldig praktisk å kontrollere strømmen inne i den, og den har innebygd spenningsreguleringsfunksjon. Mikrokontrolleren kan også kobles fra USB-porten uten en ekstern strømkilde. Du kan koble til en ekstern strømkilde opp til 12 V. Dessuten vil mikroprosessoren selv bestemme den nødvendige spenningen.
  7. Tilgjengelighet av 13 digitale kontakter og 6 analoge kontakter. Disse pinnene lar deg koble utstyr til Arduino uno-kortet fra tredjepartsmedier. Pinnene brukes som en nøkkel for å utvide datakraften til Arduino uno i den virkelige verden. Bare koble elektroniske enheter og sensorer til kontaktene som tilsvarer hver av disse pinnene.
  8. En ICSP-header er tilgjengelig for å omgå USB-porten og grensesnitt direkte med Arduino som en seriell enhet. Denne porten er nødvendig for å tilbakestille brikken hvis den er skadet og ikke lenger kan brukes på datamaskinen.
  9. Tilgjengelighet på 32 KB flash-minne for lagring av utviklerkode.
  10. LED-en på brettet kobles til digital pin 13 for raskt å feilsøke koden og forenkle prosessen.
  11. Til slutt har den en knapp for å tilbakestille programmet på brikken.

Arduino ble opprettet i 2005 av to italienske ingeniører, David Cuartilles og Massimo Banzi, med målet om å la elevene lære å programmere Arduino uno-mikrokontrolleren og forbedre elektronikkferdighetene deres og bruke dem i den virkelige verden.

Arduino uno kan oppfatte miljø, mottar input fra ulike sensorer, og er i stand til å påvirke miljøet og andre aktuatorer. Mikrokontrolleren er programmert ved hjelp av Arduino programmeringsspråk (ledningsbasert) og Arduino utviklingsmiljø (prosessbasert).

La oss nå gå direkte til prosjekter på Arduino uno.

Det enkleste prosjektet for nybegynnere

La oss se på noen få enkle og interessante Arduino uno-prosjekter som selv nybegynnere i denne bransjen kan gjøre - et alarmsystem.

Vi har allerede gjort en leksjon om dette prosjektet -. Kort om hva som gjøres og hvordan.

Dette prosjektet bruker en bevegelsessensor for å oppdage bevegelser og høye utslipp, og et visuelt display bestående av blinkende LED-lys. Selve prosjektet vil introdusere deg til flere tillegg som er inkludert i Arduino Beginner Kit, samt nyansene ved bruk av NewPing.

Det er et Arduino-bibliotek som hjelper deg å kontrollere og teste sonaravstandssensoren. Selv om det ikke akkurat er fullstendig hjemmebeskyttelse, tilbyr det en ideell løsning for å beskytte små rom som soverom og bad.

For dette prosjektet du vil være nødvendig:

  1. Ultralyd ping-sensor – HC-SR04.
  2. Piezo-summer.
  3. LED Strip lys.
  4. Bilbelysning med RGB-stripe. I denne Arduino-prosjektveiledningen vil du lære hvordan du lager RGB bilinteriørbelysning ved å bruke et Arduino uno-brett.

Mange bilentusiaster liker å legge til ekstra lys eller oppgradere interiørpærer til LED, men med Arduino-plattformen kan du nyte mer kontroll og detaljer ved å kjøre kraftige LED-er og lyslister.

Du kan endre lysfargen ved å bruke Android-enheter(telefon eller nettbrett) ved å bruke applikasjonen " Bluetooth RGB-kontroller" (Dev Next Prototypes), som du kan laste ned gratis fra Android Play Butikk. Du kan også finne en EasyEDA elektronisk krets eller bestille din egen Arduino-baserte krets på et PCB.

Fantastiske Arduino Uno-prosjekter

De fleste fagfolk innen utvikling av elektroniske prosjekter på Arduino uno elsker å eksperimentere. Som et resultat dukker det opp interessante og overraskende enheter, som diskuteres nedenfor:

  1. Legge til en IR-fjernkontroll til høyttalersystemet. I forbrukerelektronikk, fjernkontrollen fjernkontroll er en komponent elektronisk apparat for eksempel en TV, DVD-spiller eller annet husholdningsapparat som brukes til å kontrollere enheten trådløst fra kort avstand. Fjernkontrollen er først og fremst praktisk for mennesker og lar deg jobbe med enheter som ikke er egnet for direkte betjening av kontrollene.
  2. Alarm. Sanntidsklokke brukes for å få nøyaktig tid. Her viser dette systemet dato og klokkeslett på LCD-displayet og vi kan stille inn alarmen ved hjelp av kontrollknappene. Så snart alarmtidspunktet har kommet, avgir systemet et lydsignal.
  3. Trinnmotor. betyr en presis motor som kan dreies ett trinn om gangen. En slik enhet er laget ved hjelp av robotikk, 3D-printere og CNC-maskiner.

    For dette prosjektet, få den billigste trinnmotoren du kan finne. Motorer er tilgjengelig online. Dette prosjektet bruker en 28byj-48 skritteller, som passer for de fleste andre lignende prosjekter. Det er enkelt å koble til Arduino-kortet.
    - Du trenger 6 kabler med hunn-til-han-kontakter. Du trenger bare å koble motoren til brettet og det er det! Du kan også legge til et lite stykke tape til det roterende hodet for å se at det produserer en roterende bevegelse.

  4. Ultralyd avstandssensor. Dette prosjektet bruker den populære , slik at enheten kan unngå hindringer og bevege seg i forskjellige retninger.

Når du er ferdig med arbeidet, vil resultatet av handlingene dine vises på skjermen. For å holde ting enkelt og oversiktlig anbefales det å bruke en LCD med I2C-omformer, så du trenger kun 4 kabler for å koble til Arduino-kortet.

Hjernekurs ung programmeringskjemper Arduino eller hvor du skal begynne å bli kjent med denne plattformen.

«Hvor skal jeg begynne, Deres Majestet? – spurte han. "Start fra begynnelsen," svarte kongen viktig..." (C) Lewis Carroll Alice i Eventyrland

Trinn 1: La oss starte helt fra begynnelsen eller hvordan det ville vært fint om Arduino var gratis

Har lest tonnevis av lærebøker på Arduino, etter å ha kommet opp med en haug med nyttige applikasjoner for denne tingen i hverdagen, fra automatisering av fôring av fisk i et akvarium til en robotsåmaskin for en personlig plen, forstår vi at uten Arduino vi kommer ikke forbi!

Etter å ha kjøpt en kontroller, forstår vi at vi har ett brett, men mange ideer. Hva å gjøre? Brainy fører oss til den riktige avgjørelsen.

Trenger å klone Arduino med egne hender!

Trinn 2: Samle alt du trenger

For å fremskynde prosessen vil vi bruke utviklingsstyret. Som kjent fra de tekniske parametrene til kontrolleren ATmega 328 IC, for å kjøre den i en minimal konfigurasjon trenger vi:

− kontroller Arduino Duemilanove(vil bli brukt som programmerer);
− mikrokrets ATmega 328 IC ;
− 16 MHz kvartsresonator;
− motstander 100 Ohm 3 stk.;
− kondensatorer 22pF 2 stk.;
− LED 3 stk med røde, grønne og gule glødefarger;
− 5 Volt spenningsstabilisator, for eksempel 7805;
− et hvilket som helst 9 batteri med en kontakt for tilkobling;
− USB-kabel;
− datamaskin eller bærbar PC med en programvarepakke installert Arduino IDE;
− brødbrett og ledninger.

Trinn 3: Start layout



Vi legger kontrollbrikken på brødbrettet.

Trinn 4: Installer spenningsstabilisatoren og strømkretsene

Vi installerer L7805 spenningsstabilisator på brettet. Formålet med mikrokretspinnene er 1-inngang (7-20 volt), 2-hus, 3-utgang (5 volt). Ved hjelp av monteringsledninger kobler vi stabilisatoren til strømkilden og kontrolleren, som vist på bildene.

Trinn 5: Koble strøm til kontrolleren

I samsvar med nummereringen av kontrollerpinnene kobler vi den med monteringsledninger til utgangen til spenningsstabilisatoren og den vanlige ledningen.

Tips: Installasjonsledningene har forskjellige isolasjonsfarger, prøv å bruke samme fargetråder for hver krets.

Trinn 6: Koble til kvartsresonatoren



Vi plasserer en resonator og kondensatorer til oscillerende krets på brettet.

Installasjonsprosedyren er som følger:

− vi plasserer en 22pF kondensator mellom jord og den niende delen av kontrolleren;
− vi plasserer en 22pF kondensator mellom jord og den 10. delen av kontrolleren;
− vi slår på resonatoren mellom ben 9 og 10 på kontrolleren;
− vi kobler til en 10 kOm motstand mellom 1 ben på kontrolleren og +5V (vi omgår "Reset"-signalet).

Trinn 7: Legg til kontrollerstatusindikatorer

Vi kobler lysdiodene i serie med 100 Ohm motstander, mellom jord og programmereren vår.

Trinn 7: Koble brødbrettet til programmeringskortet


Koble den sammensatte brødplaten til brettet Arduino Duemilanove på følgende måte:

− koble utgangen til den gule LED-en til 9 utgang på programmeringskontakten, vil pulseringen vise oss at programmereren fungerer;
− koble den røde LED-utgangen til 8 utgang på programmeringskontakten, det signaliserer mulige feil;
− koble utgangen til den grønne LED-en til 7 pin på programmeringskontakten, indikerer gløden datautveksling mellom programmereren og mikrokontrolleren.

Vi kobler brettene våre til hverandre med de gjenværende ledningene som vist på figuren, ikke glem å koble til strømledningene + 5 V Og ramme mellom dem.

Trinn 8: Konvertering av Arduino Duemilanove Board til en programmerer

For å laste inn i mikrokontrolleren ATmega 328IC bootloader må gjøres om til vår Arduino Duemilanove inn i programmereren. Vi kobler enheten vår til datamaskinen ved hjelp av USB kabel. Åpne AndurinoIDE-programmeringsmiljøet, velg skissen (programmet) i det AndurinoISP og last den opp til Arduino Duemilanove. Ved å blinke den gule LED-en er vi overbevist om at skissen er lastet inn i programmereren vår.

Trinn 9: Last inn bootloaderen

I AndurinoISP (menyelement « Tools") velg hvilken type kontroller vi trenger ( ATmega 328 IC). Vi gir kommandoen for å laste oppstartsprogrammet "Brenn bootloader". Vi overvåker AndurinoIDE-meldinger etter at bootloaderen er ferdig med å laste " Ferdig med å brenne bootloader" mikrokontrolleren vår er klar til å ta opp en skisse av prosjektet til vår nye hjemmelagde produkter.

Trinn 10: Mulige problemer og løsninger






Mulige feil ved opptak av en bootloader og hvordan de kan elimineres, vises i feilsøkingsskjermbildene ovenfor.

Denne artikkelen hevder ikke å være en fullstendig beskrivelse av programmering. "fra bunnen av" mikrokontroller, men viser hvordan du ved å bruke et minimalt sett med elementer kan begynne å lage "din egen" Andurino.


Topp