Arduino programmeringslektioner från grunden. Arduino för nybörjare - startpaket eller hur startar man Arduino? Massor av foton och videor

Denna simulator fungerar bäst i webbläsaren Chrome
Låt oss ta en närmare titt på Arduino.

Arduino är det inte stor dator, till vilka externa kretsar kan anslutas. I Arduino Uno Atmega 328P används
Detta är det största chipet på brädet. Detta chip kör program som är lagrade i dess minne. Du kan ladda ner programmet via usb med Arduino IDE. USB uttag ger också kraft till arduino.

Det finns en separat strömkontakt. Kortet har två stift märkta 5v och 3.3v, som behövs för att driva olika enheter. Du hittar även stift märkta GND, dessa är jordstiften (jord är 0V). Arduino-plattformen har också 14 digitala stift, märkta 0 till 13, som ansluter till externa noder och har två tillstånd, hög eller låg (på eller av). Dessa kontakter kan fungera som utgångar eller som ingångar, d.v.s. de kan antingen överföra vissa data och kontrollera externa enheter, eller ta emot data från enheter. Följande slutsatser på tavlan är märkta A0-A5. Dessa är analoga ingångar som kan ta emot data från olika sensorer. Detta är särskilt praktiskt när du behöver mäta ett visst område, till exempel temperatur. De analoga ingångarna har ytterligare funktioner som kan aktiveras separat.

Hur man använder en utvecklingstavla.

Breadboarden behövs för att tillfälligt koppla ihop delarna, kolla hur enheten fungerar, innan du löder ihop allt.
Alla följande exempel är sammansatta på en brödbräda så att du snabbt kan göra ändringar i kretsen och återanvända delar utan att besvära dig med lödning.

Brödbrädan har rader av hål som du kan sätta in delar och trådar i. Vissa av dessa hål är elektriskt anslutna till varandra.

De två översta och nedre raden är sammankopplade i rader längs hela brädet. Dessa rader används för att förse kretsen med ström. Det kan vara 5V eller 3,3V, men i vilket fall som helst, det första du behöver göra är att ansluta 5V och GND till breadboard som visas på bilden. Ibland kan dessa radanslutningar vara brutna i mitten av brädet, då kan du om du behöver koppla ihop dem som visas på bilden.








De återstående hålen, som ligger i mitten av brädet, är grupperade i grupper om fem hål. De används för att ansluta kretsdelar.


Det första vi kommer att ansluta till vår mikrokontroller är en LED. Schema elektriska anslutningar visas på bilden.

Varför behövs ett motstånd i en krets? I det här fallet begränsar den strömmen som passerar genom lysdioden. Varje lysdiod är designad för en viss ström, och om denna ström är högre kommer lysdioden att misslyckas. Du kan ta reda på vilket värde motståndet ska ha med Ohms lag. För den som inte vet eller har glömt så säger Ohms lag att det finns linjärt beroende ström från spänning. Det vill säga, ju mer spänning vi applicerar på motståndet, desto mer ström kommer att flyta genom det.
V=I*R
Var V- spänning över motståndet
jag- ström genom motståndet
R- motstånd som måste hittas.
Först måste vi ta reda på spänningen över motståndet. De flesta 3 mm eller 5 mm lysdioder du kommer att använda har en driftspänning på 3V. Det betyder att vi måste släcka 5-3 = 2V vid motståndet.

Vi kommer sedan att beräkna strömmen som passerar genom motståndet.
De flesta 3 mm och 5 mm lysdioder lyser med full ljusstyrka vid 20 mA. En ström som är större än detta kan inaktivera dem, medan en ström med lägre intensitet kommer att minska deras ljusstyrka utan att orsaka någon skada.

Så vi vill ansluta lysdioden till 5V-kretsen så att den bär en ström på 20mA. Eftersom alla delar ingår i en krets kommer motståndet också att ha en ström på 20mA.
Vi får
2V = 20 mA * R
2V = 0,02A * R
R = 100 Ohm

100 Ohm är det minsta motståndet, det är bättre att använda lite mer, eftersom lysdioder har en viss variation i egenskaper.
I i detta exempel ett 220 ohm motstånd används. Bara för att författaren har många av dem: wink: .

Sätt in lysdioden i hålen i mitten av kortet så att dess långa ledning är ansluten till en av motståndsledningarna. Anslut den andra änden av motståndet till 5V och anslut den andra ledningen på lysdioden till GND. Lysdioden ska lysa.

Observera att det är skillnad på hur du ansluter lysdioden. Ström flyter från den längre terminalen till den kortare. I diagrammet kan du föreställa dig att strömmen flyter i den riktning dit triangeln är riktad. Prova att vända lysdioden upp och ner så ser du att den inte tänds.

Men hur du ansluter motståndet gör ingen skillnad alls. Du kan vända på den eller försöka ansluta den till ett annat stift på lysdioden, detta kommer inte att påverka kretsens funktion. Det kommer fortfarande att begränsa strömmen genom lysdioden.

Anatomy of Arduino Sketch.

Program för Arduino kallas för sketch. De består av två huvudfunktioner. Fungera uppstart och funktion slinga
Inuti denna funktion kommer du att ställa in alla grundinställningar. Vilka stift kommer att fungera som ingång eller utgång, vilka bibliotek som ska anslutas, initiera variabler. Fungera Uppstart() körs endast en gång under skissen, när programkörningen startar.
detta är huvudfunktionen som exekveras efter uppstart(). I själva verket är det själva programmet. Denna funktion kommer att köras på obestämd tid tills du stänger av strömmen.

Arduino blinkande LED



I det här exemplet kommer vi att ansluta LED-kretsen till en av de digitala Arduino stift och vi kommer att slå på och av det med hjälp av programmet, och du kommer också att lära dig flera användbara funktioner.

Denna funktion används i uppstart() en del av programmet och tjänar till att initiera stiften som du kommer att använda som indata (INMATNING) eller avsluta (PRODUKTION). Du kommer inte att kunna läsa eller skriva data från stiftet förrän du ställt in det på respektive pinMode. Denna funktion har två argument: pinkodär pinkoden du kommer att använda.

Läge-ställer in hur stiftet ska fungera. Vid ingången (INMATNING) eller avsluta (PRODUKTION). För att tända lysdioden måste vi ge en signal FRÅN Arduino. För att göra detta konfigurerar vi utgångsstiftet.
- denna funktion används för att ställa in tillståndet (stat) pina (pinkod). Det finns två huvudtillstånd (egentligen 3 av dem), en är HÖG, det blir 5V på stiftet, det är något annat Låg och stiftet kommer att vara 0v. Detta innebär att för att tända lysdioden måste vi ställa in stiftet som är anslutet till lysdioden till hög nivå HÖG.

Dröjsmål. Används för att fördröja driften av programmet under en period som anges i msek.
Nedan finns koden som får lysdioden att blinka.
//LED Blink int ledPin = 7;//Arduino-stift till vilket lysdioden är ansluten void setup() ( pinMode(ledPin, OUTPUT);// ställer in stiftet som OUTPUT) void loop() ( digitalWrite(ledPin, HIGH) ;// slå på LED-fördröjningen(1000);// delay 1000 ms (1 sek) digitalWrite(ledPin, LOW);//Stäng av LED-fördröjningen(1000);//vänta 1 sek.)

Några förtydliganden om koden.
Rader som börjar med "//" är kommentarer och ignoreras av Arduino.
Alla kommandon slutar med semikolon om du glömmer dem får du ett felmeddelande.

ledPinär en variabel. Variabler används i program för att lagra värden. I det här exemplet är variabeln ledPin värdet är tilldelat 7, detta är Arduino-pinnumret. När Arduino-programmet stöter på en linje med en variabel ledPin, kommer den att använda värdet vi angav tidigare.
Så rekord pinMode(ledPin, OUTPUT) liknande inspelning pinMode(7, OUTPUT).
Men i det första fallet behöver du bara ändra variabeln och den kommer att ändras på varje rad där den används, och i det andra fallet, för att ändra variabeln, måste du göra ändringar manuellt i varje kommando.

Den första raden anger typen av variabel. På Arduino programmering Det är viktigt att alltid deklarera typen av variabler. För nu räcker det för dig att veta det INT meddelar negativa och positiva siffror.
Nedan är en simulering av skissen. Klicka på start för att se kretsen i aktion.

Som väntat slocknar lysdioden och tänds igen efter en sekund. Prova att ändra fördröjningen för att se hur det fungerar.

Styrning av flera lysdioder.

I det här exemplet kommer du att lära dig hur du styr flera lysdioder. För att göra detta, installera ytterligare 3 lysdioder på kortet och anslut dem till motstånd och Arduino-stift som visas nedan.

För att tända och släcka lysdioderna en efter en måste du skriva ett program som liknar detta:
//Multi LED Blink int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() ( //ställ stift som OUTPUT pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); ) void loop() ( digitalWrite(led1Pin, HIGH );//slå på LED-fördröjningen(1000);//delay 1 sek digitalWrite(led1Pin, LOW);//stäng av LED-fördröjningen(1000);//delay 1 sek //gör samma sak för de andra 3 Lysdioder digitalWrite(led2Pin , HIGH);//tänd LED-fördröjningen(1000);//delay 1 sek digitalWrite(led2Pin, LOW);//släcker LED-fördröjningen(1000);//fördröjning 1 sek digitalWrite(led3Pin, HIGH );//tänd LED-fördröjningen(1000);// fördröjning 1 sek digitalWrite(led3Pin, LÅG);//släck LED-fördröjningen(1000);//fördröjning 1 sek digitalWrite(led4Pin, HIGH);//slå på LED-fördröjningen(1000);// fördröjning 1 sek digitalWrite(led4Pin, LÅG);//släck LED-fördröjningen(1000);//fördröjning 1 sek.)

Det här programmet kommer att fungera utmärkt, men det är inte den mest rationella lösningen. Koden måste ändras. För att programmet ska fungera om och om igen kommer vi att använda en konstruktion som heter .
Slingor är användbara när du behöver upprepa samma åtgärd flera gånger. I koden ovan upprepar vi raderna

DigitalWrite(led4Pin, HIGH); fördröjning(1000); digitalWrite(led4Pin, LOW); fördröjning(1000);
fullständig kod skiss i bilaga (nedladdningar: 1187)

Justering av LED-ljusstyrka

Ibland måste du ändra ljusstyrkan på lysdioderna i programmet. Detta kan göras med kommandot analogWrite() . Detta kommando tänder och släcker lysdioden så snabbt att ögat inte kan se flimret. Om lysdioden är påslagen halva tiden och släckt halva tiden, kommer det visuellt att verka som att den lyser med halva ljusstyrkan. Det kallas pulsbreddsmodulering(PWM eller PWM på engelska). Mellanlägget används ganska ofta, eftersom det kan användas för att styra en "analog" komponent med hjälp av digital kod. Inte alla Arduino-stift är lämpliga för dessa ändamål. Endast de slutsatser nära vilka en sådan beteckning dras " ~ ". Du kommer att se det bredvid stift 3,5,6,9,10,11.
Anslut en av dina lysdioder till en av PWM-stiften (för författaren är detta stift 9). Kör nu den blinkande lysdioden, men ändra först kommandot digitalWrite()analogWrite(). analogWrite() har två argument: det första är pinnumret och det andra är PWM-värdet (0-255), i förhållande till lysdioder kommer detta att vara deras ljusstyrka och för elmotorer rotationshastigheten. Nedan finns en exempelkod för olika LED-ljusstyrkor.
//Ändra ljusstyrkan på lysdioden int ledPin = 9;//en lysdiod är ansluten till denna pin void setup() ( pinMode(ledPin, OUTPUT);// initierar pinn till utgången ) void loop() ( analogWrite( ledPin, 255);// full ljusstyrka (255/255 = 1) delay(1000);//paus 1 sek digitalWrite(ledPin, LOW);//stäng av LED-fördröjning(1000);//paus 1 sek analogWrite( ledPin, 191);//ljusstyrka med 3/4 (191/255 ~= 0,75) delay(1000);//paus 1 sek digitalWrite(ledPin, LOW);//stäng av LED-fördröjningen(1000);// paus 1 sek analogWrite(ledPin, 127 //halv ljusstyrka (127/255 ~= 0,5) delay(1000);//paus 1 sek digitalWrite(ledPin, LOW);//stäng av LED-fördröjning(1000);/ /paus 1 sek analogWrite(ledPin, 63 //kvartals ljusstyrka (63/255 ~= 0,25) delay(1000);//paus 1 sek digitalWrite(ledPin, LOW);//stäng av LED-fördröjningen(1000) ;//pausa 1 sek)

Försök att ändra PWM-värdet i kommandot analogWrite() för att se hur detta påverkar ljusstyrkan.
Därefter kommer du att lära dig hur du justerar ljusstyrkan smidigt från full till noll. Du kan naturligtvis kopiera en kodbit 255 gånger
analogWrite(ledPin, ljusstyrka); delay(5);//short delay ljusstyrka = ljusstyrka + 1;
Men du förstår, detta kommer inte att vara praktiskt. Det bästa sättet att göra detta är att använda FOR-slingan som vi använde tidigare.
Följande exempel använder två loopar, en för att minska ljusstyrkan från 255 till 0
for (int ljusstyrka=0; ljusstyrka=0; ljusstyrka--)( analogWrite(ledPin, ljusstyrka); delay(5); )
fördröjning(5) används för att sakta ner ljusstyrkans toningshastighet 5*256=1280ms=1,28s)
Den första raden använder " ljusstyrka-" för att få ljusstyrkan att minska med 1 varje gång slingan upprepas. Observera att slingan kommer att pågå till ljusstyrka >=0.Byta ut skylten > på skylten >= vi inkluderade 0 i ljusstyrkeintervallet. Denna skiss är modellerad nedan. //ändra mjukt ljusstyrkan int ledPin = 9;//en LED är ansluten till denna pin void setup() ( pinMode(ledPin, OUTPUT);// initialisering av utgångsstiftet) void loop() ( //öka mjukt ljusstyrka (0 till 255 ) för (int ljusstyrka=0; ljusstyrka=0; ljusstyrka--)( analogWrite(ledPin, ljusstyrka); delay(5); ) delay(1000);//vänta 1 sek //minska ljusstyrkan jämnt (255 till 0) för (int ljusstyrka=255; ljusstyrka>=0; ljusstyrka--)( analogWrite(ledPin, ljusstyrka); delay(5); ) delay(1000);//vänta 1 sek ) )
Det är inte särskilt synligt, men tanken är klar.

RGB LED och Arduino

En RGB LED är faktiskt tre olika färgade lysdioder i ett paket.

Genom att inkludera olika lysdioder med olika ljusstyrka kan du kombinera och få olika färger. För Arduino, där antalet ljusstyrkanivåer är 256, får du 256^3=16581375 möjliga färger. I verkligheten blir det förstås färre av dem.
Lysdioden vi kommer att använda är den gemensamma katoden. De där. alla tre lysdioderna är strukturellt anslutna med katoder till en terminal. Vi kommer att ansluta detta stift till GND-stiftet. De återstående stiften, genom begränsningsmotstånd, måste anslutas till PWM-stiften. Författaren använde stift 9-11 På detta sätt kommer det att vara möjligt att styra varje lysdiod separat. Den första skissen visar hur man tänder varje lysdiod individuellt.



//RGB LED - testa //stiftanslutningar int röd = 9; int grön = 10; int blå = 11; void setup())( pinMode(röd, OUTPUT); pinMode(blå, OUTPUT); pinMode(grön, OUTPUT); ) void loop())( //slå på/av den röda lysdioden digitalWrite(röd, HIGH); fördröjning(500) ; HIGH; digitalWrite(blå, LÅG);

Följande exempel använder kommandona analogWrite() och för att få olika slumpmässiga ljusstyrkavärden för lysdioderna. Du kommer att se olika färger ändras slumpmässigt.
//RGB LED - slumpmässiga färger //stiftanslutningar int röd = 9; int grön = 10; int blå = 11; void setup())( pinMode(röd, OUTPUT); pinMode(blå, OUTPUT); pinMode(grön, OUTPUT); ) void loop())( //välj en slumpmässig färg analogWrite(röd, slumpmässig(256)); analogWrite(blå, slumpmässig(256));

Slumpmässigt(256)-återvänder slumpmässigt nummer i intervallet från 0 till 255.
Bifogat en skiss som ska demonstrera mjuka övergångar färger från rött till grönt, sedan till blått, rött, grönt osv. (nedladdningar: 326)
Exempelskissen fungerar, men det finns mycket duplicerad kod. Du kan förenkla koden genom att skriva din egen hjälpfunktion som smidigt ändras från en färg till en annan.
Så här kommer det att se ut: (nedladdningar: 365)
Låt oss titta på funktionsdefinitionen bit för bit. Funktionen kallas fader och har två argument. Varje argument separeras av ett kommatecken och har en typ som deklareras på den första raden i funktionsdefinitionen: void fader (int färg1, int färg2). Du ser att båda argumenten deklareras som int, och de får namn färg1 Och färg2 som villkorsvariabler för att definiera en funktion. Tomhet betyder att funktionen inte returnerar några värden, den kör helt enkelt kommandon. Om du var tvungen att skriva en funktion som returnerade resultatet av multiplikation, skulle det se ut så här:
int multiplikator(int nummer1, int nummer2)( int produkt = nummer1*nummer2; returprodukt; )
Lägg märke till hur vi deklarerade Typ int som returtyp istället
tomhet.
Inuti funktionen finns kommandon som du redan har använt i föregående skiss, endast pinnumren har ersatts med färg1 Och färg2. Funktionen kallas fader, beräknas dess argument som färg1 = röd Och färg2 = grön. Arkivet innehåller en komplett skiss med funktioner (nedladdningar: 272)

Knapp

Nästa skiss kommer att använda en knapp med normalt öppna kontakter, utan låsning.


Detta innebär att när knappen inte är intryckt flyter ingen ström genom den, och efter att ha släppts återgår knappen till första position.
Förutom knappen använder kretsen ett motstånd. I det här fallet begränsar den inte strömmen, utan "drar" knappen till 0V (GND). De där. tills knappen trycks in på Arduino-stiftet den är ansluten till kommer den att göra det låg nivå. Motståndet som används i kretsen är 10 kOhm.


//bestäm när knappen trycks int buttonPin = 7; void setup())( pinMode(buttonPin, INPUT);//initiera stiftet till ingången Serial.begin(9600);//initialize serieport) void loop())( if (digitalRead(buttonPin)==HIGH)(//om knappen trycks ned Serial.println("pressed"); // print "pressed" ) else ( Serial.println("unpressed" ); // annars "otryckt" ) )
Det finns flera nya kommandon i den här skissen.
-Det här kommandot tar de höga och låga värdena för utgången vi testar. Denna utgång måste först konfigureras som en ingång i setup().
; //där knappPin är pinnumret där knappen är ansluten.
Serieporten gör att Arduino kan skicka meddelanden till datorn medan styrenheten själv kör programmet. Detta är användbart för att felsöka ett program, skicka meddelanden till andra enheter eller applikationer. För att möjliggöra dataöverföring via en seriell port (även kallad UART eller USART), måste du initiera den i setup()

Serial.begin() har bara ett argument - det här är dataöverföringshastigheten mellan Arduino och datorn.
Skissen använder ett kommando för att visa ett meddelande på skärmen i Arduino IDE (Verktyg >> Serial Monitor).
- Designen låter dig kontrollera hur programmet körs genom att kombinera flera kontroller på ett ställe.
Om digitalRead returnerar HÖG visas ordet "tryckt" på monitorn. Annars (annars) visas ordet "släppt" på monitorn. Nu kan du prova att slå på och av lysdioden genom att trycka på en knapp.
//knapptrycksdetektering med LED-utgång int-knappPin = 7; int ledPin = 8; void setup())( pinMode(buttonPin, INPUT);//den här gången ställer vi in ​​knappstift som INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin) )= =HIGH)( digitalWrite(ledPin,HIGH); Serial.println("pressed"); ) else ( digitalWrite(ledPin,LOW); Serial.println("unpressed"); ) )

Analog ingång.

analogRead låter dig läsa data från en av Arduinos analoga stift och visar ett värde i intervallet från 0 (0V) till 1023 (5V). Om spänningen på den analoga ingången är 2,5V, kommer 2,5 / 5 * 1023 = 512 att skrivas ut
analogRead har bara ett argument - Detta är siffran analog ingång(A0-A5). Följande skiss visar koden för avläsning av spänningen från potentiometern. För att göra detta, anslut ett variabelt motstånd med dess yttersta anslutningar till 5V- och GND-stiften, och genomsnittlig produktion för att mata in A0.

Kör följande kod och se i seriemonitorn hur värdena ändras beroende på vridningen av motståndsratten.
//analog input int potPin = A0;//det centrala stiftet på potentiometern är anslutet till denna pin void setup())( //analog pin ingår som en ingång som standard, så initiering behövs inte Serial.begin(9600 ); ) void loop())( int potVal = analogRead(potPin);//potVal är ett tal mellan 0 och 1023 Serial.println(potVal)
Följande skiss kombinerar knappklickskissen och LED-ljusstyrkakontrollskissen. Lysdioden tänds från knappen och ljusstyrkan kommer att styras av en potentiometer.
//knapptrycksdetektering med LED-utgång och variabel intensitet int-knappPin = 7; int ledPin = 9; int potPin = A0; void setup())( pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin)==HIGH)(//om knappen trycks in int analogVal = analogRead(potPin); int scaledVal = map(analogVal, 0, 1023, 0, 255). ( digitalWrite(ledPin, LOW);//stäng av om knappen inte trycks ned Serial.println("otryckt"); ) )

God dag, Habr. Jag lanserar en serie artiklar som hjälper dig att bekanta dig med Arduino. Men detta betyder inte att om du inte är ny i den här verksamheten, kommer du inte att hitta något intressant för dig själv.

Introduktion

Det skulle vara en bra idé att börja med att bekanta sig med Arduino. Arduino – hårdvara och mjukvara för byggnadsautomation och robotsystem. Den största fördelen är att plattformen riktar sig till icke-professionella användare. Det vill säga vem som helst kan skapa sin egen robot, oavsett programmeringskunskaper och egna färdigheter.

Start

Att skapa ett projekt på Arduino består av tre huvudsteg: skriva kod, prototyper (breadboarding) och firmware. För att kunna skriva kod och sedan flasha tavlan behöver vi en utvecklingsmiljö. Det finns faktiskt ganska många av dem, men vi kommer att programmera i originalmiljön - Arduino IDE. Vi kommer att skriva själva koden i C++, anpassad för Arduino. Du kan ladda ner den på den officiella webbplatsen. En sketch är ett program skrivet på Arduino. Låt oss titta på kodstrukturen:


main())( void setup())( ) void loop())( ) )

Det är viktigt att notera att obligatoriskt i C++ huvudfunktion() Arduino-processorn skapar sig själv. Och resultatet av vad programmeraren ser är:


void setup() ( ) void loop() ( )

Låt oss titta på de två nödvändiga funktionerna. Funktionen setup() anropas endast en gång när mikrokontrollern startar. Det är hon som sätter alla grundinställningar. Funktionen loop() är cyklisk. Hon kallas in ändlös slinga under hela mikrokontrollerns drifttid.

Första programmet

För att bättre förstå plattformens funktionsprincip, låt oss skriva det första programmet. Vi kommer att köra detta enkla program (Blink) i två versioner. Den enda skillnaden mellan dem är monteringen.


int LED = 13; // förklara LED-variabeln på stift 13 (utgång) void setup() ( pinMode(Led, OUTPUT); // definiera variabeln ) void loop() ( digitalWrite(Led, HIGH); // applicera spänning på stift 13-fördröjning (1000 ); // vänta 1 sekund digitalWrite (LED, LÅG // applicera inte spänning på stift 13 fördröjning (1000);

Funktionsprincipen för detta program är ganska enkel: LED-lampan lyser i 1 sekund och släcks i 1 sekund. För det första alternativet behöver vi inte montera en layout. Eftersom Arduino-plattformen har en inbyggd LED ansluten till stift 13.

Arduino firmware

För att ladda upp en skiss till Arduino måste vi först helt enkelt spara den. Därefter, för att undvika problem under laddning, måste du kontrollera programmeringsinställningarna. För detta ändamål på topppanel välj fliken "Verktyg". Välj din betalning i avsnittet "Betalning". Det kan vara Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo eller andra. Även i avsnittet "Port" måste du välja din anslutningsport (den port som du anslutit din plattform till). Efter dessa steg kan du ladda upp skissen. För att göra detta, klicka på pilen eller välj "Ladda ner" på fliken "Sketch" (du kan också använda kortkommandot "Ctrl + U"). Kortets firmware har slutförts framgångsrikt.

Prototyping/layout

För att montera layouten vi behöver följande element Hytt: LED, resistor, ledningar (byglarna), brödbräda. För att inte bränna någonting, och för att allt ska fungera framgångsrikt, måste du ta itu med lysdioden. Den har två "ben". Kort är ett minus, långt är ett plus. Vi kommer att ansluta jord (GND) och ett motstånd till den korta (för att minska strömmen som levereras till lysdioden för att inte bränna den), och vi kommer att leverera ström till den långa (anslut till stift 13). Efter anslutning, ladda upp skissen till tavlan om du inte har gjort det tidigare. Koden förblir densamma.


Detta är slutet på den första delen. Tack för din uppmärksamhet.

Det första du bör börja arbeta med att bemästra Arduino är att köpa utvecklingsstyrelsen(det skulle vara trevligt att köpa det direkt kretskort och så vidare.). Jag har redan beskrivit vilka typer av Arduino-brädor som finns på marknaden. Om du inte har läst artikeln än rekommenderar jag att du läser den. För att lära dig grunderna, välj ett standard Arduino Uno-bräda (original eller bra Kinesisk kopia- du bestämmer). När du ansluter originalkortet för första gången bör det inte vara några problem, men med den "kinesiska" måste du gräva lite djupare (oroa dig inte - jag ska visa och berätta allt).

Vi ansluter Arduino till datorn med en USB-kabel. Lysdioden på kortet ska lysa ". En ny enhet kommer att visas i Enhetshanteraren " Okänd enhet". Du måste installera drivrutinen. Här lägger jag till en liten tvetydighet(katten var distraherad - jag kommer inte ihåg vilken förare som bestämde " problem okänd enhet ».

Först laddade ner och packade upp Arduino-programvarumiljön ( arduino-1.6.6-fönster). Sen laddade jag ner den här. Det är självutdragande. Startade filen CH341SER.EXE. Vald installation (INSTALLERA). Efter installationen dök ett meddelande upp, klickade på " OK"(hade inte tid att läsa det).

Sedan gick jag till egenskaperna för den fortfarande "okända enheten" och valde knappen "Uppdatera drivrutin". Valde alternativet "Installera från angiven plats» – indikerade mappen med den uppackade mjukvarumiljö Arduino. Och se, allt fungerade framgångsrikt...

Vi startar Arduino-programmet (i mitt fall 1.6.6) och tillåter åtkomst.

Alla projekt (program) för Arduino består av två delar: ogiltig installation Och tom slinga. ogiltig installation exekveras endast en gång, och tom slinga görs om och om igen.

Innan vi fortsätter finns det två obligatoriska operationer som måste slutföras:

— ange i Arduinos mjukvarumiljö vilket kort du använder. Verktyg->bräda->Arduino Uno. Om märket redan finns på tavlan du behöver, är det bra om inte, sätt ett märke.

— ange i mjukvarumiljön vilken seriell port du använder för att kommunicera med kortet. Verktyg->port->COM3. Om märket redan finns på porten är det bra om inte, sätt ett märke. Om du har mer än en port listad i portsektionen, hur kan du ta reda på vilken som används för att ansluta till kortet? Vi tar brädan och kopplar bort ledningen från den. Vi går till hamnarna igen och ser vilken som har försvunnit. I mitt fall blev fliken "portar" inaktiv alls.

Anslut USB-kabeln igen.

Det första programmet kräver inga ytterligare moduler. Vi kommer att slå på lysdioden, som redan är monterad på kortet (vid stift 13 på mikrokontrollern).

Låt oss först konfigurera stift 13 (ingång eller utgång).

För att göra detta, skriv in i blocket " ogiltig installation» laget pinMode anger vi parametrarna inom parentes (13, UTGÅNG) (Vilket stift är inblandat, Driftläge). Programvarumiljön markerar ord/kommandon med lämplig teckenfärg.

Gå till blocket " tom slinga"och skriv in kommandot digitalWrite med parametrar (13, HÖG) .


Det första programmet är klart, nu återstår bara att ladda det i mikrokontrollern. Klicka på knappen LADDA UP.

Lysdioden tändes. Men var inte så skeptisk till det första programmets enkelhet. Du har precis bemästrat det första kontrollkommandot. Istället för en LED kan du ansluta vilken belastning som helst (vare sig det är belysning i ett rum eller en servoenhet som stänger av vattentillförseln), men vi kommer att prata om allt detta senare...

Vi slog på lysdioden, den lyste lite, det är dags att stänga av den. För att göra detta, låt oss ändra programmet vi skrev. Istället för " HÖG "låt oss skriva" LÅG ».


Klicka på knappen LADDA UP. Lysdioden slocknade.

Vi har redan blivit bekanta med begreppet "", det är dags att använda det. Ytterligare program kommer att bli mer och mer omfattande och komplexa, och arbetet med att förändra dem kommer att ta mer och mer tid om vi lämnar denna stil att skriva kod.

Vi tittar på programmet (slå på lysdioden igen). Låt oss ställa in pinnumret på mikrokontrollern inte som ett nummer 13 , men en variabel som kommer att tilldelas värdet för motsvarande utdata (i vårt fall, 13). I framtiden kommer det att vara mycket bekvämt att ändra värdena för variabler i början av programmet, istället för att rota igenom koden på jakt efter de platser där det är nödvändigt att ändra värden.

Skapa en global variabel int LED_pin = 13; (variabeltyp, variabelnamn, värde som tilldelats den).


Klicka på knappen LADDA UP. LED-lampan tänds. Allt fungerar perfekt.

I den här lektionen kommer vi, förutom att slå på/stänga av lysdioden, också lära oss hur man blinkar den.

För att göra detta, skriv in det andra kommandot " digitalWrite» med parametrar (LED_pin, LÅG).


Klicka på knappen LADDA UP. Och vad ser vi? Lysdioden lyser "i full utsträckning". Anledningen ligger i det faktum att omkopplingstiden för två tillstånd ( HÖG Och LÅG ) är försumbar och det mänskliga ögat kan inte upptäcka dessa omkopplare. Det är nödvändigt att öka tiden som lysdioden förblir i ett av tillstånden. För att göra detta skriver vi kommandot dröjsmål med parameter (1000 ) . Fördröjning i millisekunder: 1000 millisekunder – 1 sekund. Programalgoritmen är som följer: slå på lysdioden - vänta 1 sekund, stäng av lysdioden - vänta 1 sekund, etc.


Klicka på knappen LADDA UP. Lysdioden började flimra. Allt fungerar.

Låt oss avsluta programmet genom att skapa en variabel som kommer att tilldelas ett värde som ansvarar för förseningens varaktighet.


Klicka på knappen LADDA UP. Lysdioden blinkar som tidigare.

Låt oss slutföra programmet vi skrev. Arbetsuppgifterna är följande:

  • LED lyser i 0,2 sekunder och släckt i 0,8 sekunder;
  • Lysdioden är på i 0,7 sekunder och släckt i 0,3 sekunder.

Programmet skapade 2 variabler som är ansvariga för tidsförseningar. Den ena bestämmer drifttiden för lysdioden på, och den andra bestämmer drifttiden för lysdioden av.

Tack för din uppmärksamhet. Ses snart!

12 02.2017

I den här artikeln kommer jag att berätta om något utan vilken kunskap om den mest intressanta världen av programmering med hjälp av hårdvaruplattformar skulle vara ofullständig, nämligen: elektronisk designer Arduino, som kommer att bli utmärkt assistent i studiet av datateknik och automation olika processer. Naturligtvis går det att lära sig rent teoretiskt, men när man använder ett verktyg som Arduino blir de första stegen i att bemästra programmering och ställa in robotik ännu enklare än med Självstudie med hjälp av tillgängligt material och speciallitteratur.

Från den här artikeln kommer du att lära dig:

God dag alla teknikälskare! Gridin Semyon är med dig. Idag ska vi titta på vilken utrustning vi ska använda för att börja programmera de vanligaste korten.

Arduino - vad är du?

Säkert kommer våra äldre läsare ihåg att de en gång i Sovjetunionen producerade en mängd olika utbildningsuppsättningar för barn. Dessa inkluderar en uppsättning av en ung kemist, en biolog, en radioamatör... Den sista varianten var särskilt intressant för dem som hade en svaghet för teknik och oberoende design av olika saker.

Tiden har gått, många tekniker har dykt upp, och sådana saker har inte bara förbättrats, utan också blivit tillgängliga för vem som helst. Omfattningen av fantasin idag är inte begränsad bara till mjukvaruramverk, och Arduino är ett utmärkt exempel på detta.

Arduino-satsen är en elektronisk plattform ungefär lika stor som Tändsticksask. Olika moduler kan kopplas till denna plattform - motorer, glödlampor, sensorer, med ett ord, allt som drivs av elektricitet och kan kopplas till mikrokretsen på ett eller annat sätt.

Vem är detta till för?

Vem behöver Arduino?

  • Barn och tonåringar som är intresserade av robotik;
  • Studenter vid specialiserade tekniska universitet och högskolor;
  • Specialister som vill minnas gamla kunskaper;
  • Lärare att undervisa sina elever;
  • Alla tekniskt lagda människor som vill ha en intressant tid.

Lär dig programmering, omedelbart tillämpa den förvärvade kunskapen i praktiken; skriva ett examensarbete; skapa smart system för hemmet, vilket gör att du kan fjärrstyra apparater och belysning; att designa en robot är långt ifrån full lista funktioner som Arduino tillhandahåller. De är verkligen obegränsade, och allt begränsas bara av din fantasi! Samtidigt är systemet tillgängligt även för nybörjare tack vare en bred gemenskap och närvaron av många Arduino-lektioner på Internet, inklusive på ryska.

Första mötet. Installation av datorn

Innan du oroar dig för att ansluta enheten till en PC är det värt att studera frågan om vilken Arduino som är bättre att köpa, eftersom det finns många versioner av denna designer för nördar. Den mest populära och samtidigt, som kostar ca $25-30. Men det finns också dyrare, avancerade versioner som kan interagera med smartphones på Android baserad, Linux-enheter, med ett ökat antal portar, kraftfullare hårdvara, som är mer lämpade för användare som redan har erfarenhet av denna fråga. För oss är Uno-alternativet eller något liknande det (till exempel Leonardo) mer lämpligt. Låt dig inte skrämmas av 32 kilobyte minne och en processor med en frekvens på endast 16 megahertz - detta är mer än tillräckligt för din första forskning!

För att programmera plattformen och se alla specificerade åtgärder på displayen används ett av de vanligaste programmeringsspråken - C++. Du kan arbeta med det med det officiella Arduino IDE-skalet, det är helt gratis för icke-kommersiellt bruk. Det finns andra alternativ, mer komplexa och sofistikerade, men det är bättre att börja med det alternativ som rekommenderas av utvecklaren.

Anslutning och laddning av program i minnet sker via en USB-port. Anslutning av moduler kan göras på många sätt - inklusive användning av en speciell brödbräda, byglar, ledningar... Det är inte alls nödvändigt att använda en lödkolv. Du kan ansluta nästan vad som helst - vilken pryl som helst kan bli en fullvärdig del av din design! Samtidigt kan du också skapa flerlagers "smörgåsar" från så kallade tilläggskort som utökar kapaciteten hos huvudchippet. Huvudsaken är den grundläggande processen i hjärtat av Uno själv, resten tjänar bara till att få ytterligare egenskaper. Det kan till exempel vara att ansluta till Internet eller styra en kraftfull motor.

Vi använder IDE

De som är skrivna för Arduino-plattformen kallas skisser. Du kan skapa en skiss med hjälp av en integrerad utvecklingsmiljö, eller IDE för kort ( officiella versionen det är vad det heter). När du har installerat drivrutinerna och den här miljön kan du ta ditt första steg.

IDE ger dig redan skrivna enkla skisser. Öppna en av dem och välj din Arduino i listan över anslagstavlor, ladda sedan upp skissen till din enhet med kommandot Ladda upp. Allt detta görs väldigt enkelt - gränssnittet i utvecklingsmiljön är grafiskt, det är intuitivt.

Det finns också ett stort antal färdiga skisser på Internet. Till exempel på Wikipedia i artikeln om Arduino kan du hitta färdigt exempel program som ställer in lysdioden att blinka. På specialiserade resurser hittar du otrolig komplexa algoritmer, gör en riktig robot av Arduino. För att lära dig hur man skriver sådant behöver du särskild tid och uthållighet, men du kan studera dem redan i början för att förstå så många principer för programmering för plattformen som möjligt. Om du vill skriva ett grundläggande program och inte vet hur, då .

Med vänlig hälsning, Gridin Semyon

Arduino är en liten bräda som används för att skapa olika enheter, intressanta prylar och även för datorplattformar. Denna avgift kallas en mikrokontroller, som är öppen källkod och med vilken många applikationer kan användas.

Detta är det enklaste och billigaste alternativet för nybörjare, amatörer och proffs. Programmeringsprocessen sker i språket Processing/Wiring, som är snabbt och enkelt att lära sig och bygger på C++-språket, och tack vare detta är det väldigt enkelt att göra. Låt oss titta på vad Arduino är, hur det är användbart för nybörjare, dess möjligheter och funktioner.

Arduino är en datorplattform eller -bräda som kommer att fungera som hjärnan för dina nya enheter eller prylar. Baserat på det kan du skapa båda enheterna med enkla kretsar, såväl som komplexa, arbetsintensiva projekt, som robotar eller drönare.

Grunden för designern är input-output-kortet (hårdvara), samt mjukvarudel. Arduino-baserad designmjukvara representeras av en integrerad utvecklingsmiljö.

Externt ser själva miljön ut så här:

Arduino-mjukvaran är designad på ett sådant sätt att även en nybörjare utan kunskap om programmering kan hantera det. En ytterligare framgångsfaktor för att använda en mikrokontroller var förmågan att arbeta med utvecklingsstyrelsen, när de nödvändiga delarna (motstånd, dioder, transistorer, etc.) är anslutna till styrenheten utan behov av lödning.

De flesta Arduino-kort har en anslutning via USB-kabel. En sådan anslutning gör att du kan ge ström till tavlan och ladda skisser, d.v.s. miniprogram. Programmeringsprocessen är också extremt enkel. Först använder användaren IDE:s kodredigerare för att skapa nödvändigt program, sedan laddas den med ett klick i Arduino.

Hur köper man Arduino?

Brädan och många Arduino-delar är gjorda i Italien Därför är originalkomponenterna ganska dyra. Men det finns separata komponenter av designern eller uppsättningarna, de så kallade kiten, som produceras enligt den italienska analogin, men till mer överkomliga priser.

Du kan köpa en analog på hemmamarknaden eller till exempel beställa den från Kina. Många känner till till exempel AliExpress-webbplatsen. Men för de som börjar bekanta sig med Arduino är det bättre att beställa sin första bräda från en rysk webbutik. Med tiden kan du byta till att köpa kretskort och delar i Kina. Leveranstiden från detta land kommer att vara från två veckor till en månad, och till exempel kommer kostnaden för ett stort kit kit inte att vara mer 60-70 dollar.

Standardsatser innehåller vanligtvis följande delar:

  • brödskiva;
  • lysdioder;
  • motstånd;
  • 9V batterier;
  • spänningsregulatorer;
  • knappar;
  • hoppare;
  • matris tangentbord;
  • expansionskort;
  • kondensatorer.

Behöver du kunna programmering?

Första stegen att arbeta med Arduino-bräda börja med att programmera brädan. Ett program som redan är redo att arbeta med en tavla kallas en skiss. Det finns ingen anledning att oroa sig för att inte kunna programmering. Processen att skapa program är ganska enkel, och det finns många exempel på skisser på Internet, eftersom Arduino-gemenskapen är mycket stor.

Efter att programmet har kompilerats laddas det (flashas) på tavlan. Arduino i det här fallet har obestridlig fördel– I de flesta fall används en USB-kabel för programmering. Omedelbart efter laddning är programmet redo att utföra olika kommandon.

Nybörjare med Arduino behöver känna till två nyckelfunktioner:

  • uppstart()– används en gång när kortet är på, används för att initiera inställningar;
  • slinga()– används konstant, är det sista steget i installationen.

Exempel på en funktionsnotation uppstart():

Void setup() ( Serial.begin(9600); // Öppna en seriell anslutning pinMode(9, INPUT); // Tilldela pinne 9 som en ingång pinMode(13, OUTPUT); // Tilldela pin 13 som en utgång )

Fungera uppstart() utförs i början och endast 1 gång direkt efter att du har slagit på eller startat om din enhet.

Fungera slinga() exekveras efter funktionen setup(). Loop översätts som loop eller cykel. Funktionen kommer att utföras om och om igen. Så ATmega328-mikrokontrollern (de flesta Arduino-kort innehåller detta) kommer att utföra loopfunktionen cirka 10 000 gånger per sekund.

Du kommer också att stöta på ytterligare funktioner:

  • pinMode– läge för inmatning och utmatning av information.
  • analogRead– låter dig läsa den framträdande analoga spänningen vid stiftet;
  • analogWrite- inspelning analog spänning till utgångsstiftet;
  • digitalRead– låter dig läsa värdet på en digital utgång;
  • digitalWrite– låter dig ställa in det digitala utgångsvärdet på en låg eller hög nivå;
  • Serial.print– översätter projektdata till lättläst text.

Utöver detta kommer nybörjare i Arduino att gilla det faktum att det finns många bibliotek för brädor, som är samlingar av funktioner som låter dig styra brädet eller ytterligare moduler. De mest populära inkluderar:

  • läsa och skriva till förvaring,
  • Internet anslutning,
  • läsa SD-kort,
  • stegmotorstyrning,
  • textåtergivning
  • etc.

Hur ställer jag in Arduino?

En av de största fördelarna med designern är dess säkerhet när det gäller användarinställningar. Nyckelinställningar som är potentiellt skadliga för Arduino är skyddade och kommer inte att vara tillgängliga.

Därför kan även en oerfaren programmerare säkert experimentera och ändra olika alternativ för att uppnå önskat resultat. Men för säkerhets skull rekommenderar vi starkt att du läser tre viktiga material om hur du inte skadar brädan:

Den klassiska Arduino-programinställningsalgoritmen ser ut så här:

  • IDE-installation, som kan laddas ner nedan eller från tillverkarens webbplats;
  • installation programvara till datorn du använder;
  • starta Arduino-filen;
  • mata in det utvecklade programmet i kodfönstret och överföra det till kortet (med en USB-kabel);
  • i IDE-avsnittet måste du välja vilken typ av konstruktor som ska användas. Detta kan göras i fönstret "verktyg" - "brädor";
  • kontrollera koden och klicka på "Nästa", varefter nedladdningen till Arduino börjar.
Version Windows Mac OS Linux
1.6.5 Blixtlås
Installatör
Installatör 32 bitar
64 bitar
1.8.2 Blixtlås
Installatör
Installatör 32 bitar
64 bitar
ÄRM
1.8.5 Blixtlås
Installatör
App
Installatör 32 bitar
64 bitar
ÄRM

Låt oss träna våra händer

För att med säkerhet kunna implementera komplexa idéer, använda mjukvarumiljön och Arduino, måste nybörjare lägga vantarna på det. För att göra detta rekommenderas det att först behärska lättare uppgifter och projekt.

Det enklaste projektet du kan göra är att få lysdioden, som sitter på Arduino-kortet mittemot porten, att blinka varje sekund.

För att göra detta behöver du:

  • anslut designern till datorn,
  • öppna programmet, i avsnittet "service" letar vi efter blocket "serieport".
  • välj önskat intervall
  • varefter du måste lägga till koden som finns i Arduino IDE i avsnittet "Exempel".

De första projekten i Arduino för nybörjare kan vara:

  • blinkande LED;
  • anslutning och styrning av en temperatursensor;
  • anslutning och styrning av en rörelsesensor;
  • ansluta en fotoresistor;
  • servostyrning.

Första projektet

Nu har vi nått vårt första projekt. Låt oss ansluta Arduino, LED och knapp. Detta projekt är perfekt för nybörjare.

Vårt schema kommer att se ut så här:

Lysdioden tänds när du trycker på knappen och slocknar efter nästa tryckning. Skissen eller programmet för själva Arduino kommer att se ut så här:

// stift för anslutna enheter int switchPin = 8; int ledPin = 11; // variabler för att lagra tillståndet för knappen och LED boolean lastButton = LÅG; boolean currentButton = LÅG; boolesk ledOn = false; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // funktion för att debouncing boolean debounse(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( delay ( 5); current = digitalRead(switchPin ) return current ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite (ledPin, ledOn);

Du kanske har lagt märke till debounse-funktionen, som vi inte har skrivit om ännu. Hon behövs för.

Efter att du har bemästrat de första färdigheterna att arbeta med en styrelse kan du börja implementera mer komplexa och mångfacetterade uppgifter. Konstruktören låter dig skapa en RC-bil, kontrollerbar helikopter, skapa din telefon, skapa ett system osv.

För att påskynda utvecklingen av att arbeta med Arduino-kortet rekommenderar vi att du börjar tillverka enheter från vår sektion, där processerna för att skapa de mest intressanta enheter och prylar.