Arduino aloittelijoille: vaiheittaiset ohjeet. Arduino-ohjelmointi ja projektit: mistä aloittaa? Arduino ohjelmointikieli

Tämä artikkeli auttaa sinua pääsemään alkuun Arduinon kanssa ja sisältää kuvauksen erityyppisistä Arduino-tyypeistä, kuinka ladata Arduino-ohjelmistokehitysympäristö, ja kuvailee erilaisia ​​Arduinolle saatavilla olevia levyjä ja lisävarusteita, joita tarvitset Arduino-projektien kehittämiseen.

Arduino on avoimen lähdekoodin yksilevyohjain, jota voidaan käyttää monissa eri sovelluksissa. Tämä on ehkä yksinkertaisin ja halvin mikrokontrollerivaihtoehto harrastajille, opiskelijoille ja ammattilaisille mikrokontrolleripohjaisten projektien kehittämiseen. Arduino-kortit käyttävät joko Atmel AVR -mikrokontrolleria tai Atmel ARM -mikro-ohjainta, ja joissakin versioissa on USB-liitäntä. Niissä on myös vähintään kuusi analogista tulonastaa ja vähintään neljätoista digitaalista tulo-/lähtönastaa (I/O), joita käytetään antureiden, toimilaitteiden ja muiden oheispiirien liittämiseen mikro-ohjaimeen. Arduino-levyjen hinta vaihtelee toimintosarjasta riippuen kuudesta neljäänkymmeneen dollariin.

Arduino-levyjen tyypit

Alla olevan luettelon mukaisesti Arduino-levyjä on monia erilaisia, ja jokaisella on omat ominaisuudet. Ne eroavat toisistaan ​​käsittelynopeuden, muistin, I/O-porttien ja liitettävyyden suhteen, mutta ydintoiminnot pysyvät samoina.

  • Arduino robotti
  • Arduino Ethernet

Voit tarkastella erilaisia ​​Arduino-levyjä ja niiden teknisiä kuvauksia tämän sivuston "Osta"-osion ""-alaosiossa.

Ohjelmisto (IDE)

Arduinon ohjelmointiin käytetty ohjelmisto on Arduino IDE. IDE on Java-sovellus, joka toimii useilla eri alustoilla, mukaan lukien PC-, Mac- ja Linux-järjestelmät. Se on suunniteltu aloittelijoille, jotka eivät ole perehtyneet ohjelmointiin. Se sisältää editorin, kääntäjän ja latausohjelman. IDE sisältää myös koodikirjastoja oheislaitteiden, kuten sarjaporttien ja erityyppisten näyttöjen, käyttöä varten. Arduino-ohjelmia kutsutaan "luonnoksiksi" ja ne on kirjoitettu kielellä, joka on hyvin samankaltainen kuin C tai C++.

Useimmat Arduino-levyt liitetään tietokoneeseen USB-kaapelilla. Tämän yhteyden avulla voit ladata luonnoksia Arduino-levyllesi ja antaa myös virtaa levylle.

USB-kaapeli Arduinolle

Ohjelmointi

Arduinon ohjelmointi on helppoa: käytät ensin IDE:n koodieditoria ohjelman kirjoittamiseen, sitten käännät ja lataat sen yhdellä napsautuksella.

Arduino-ohjelma sisältää kaksi päätoimintoa:

  • setup()
  • loop()

Voit käyttää setup()-funktiota alustaaksesi kortin asetukset. Tämä toiminto suoritetaan vain kerran, kun kortti on päällä.

Loop()-funktio suoritetaan sen jälkeen, kun setup()-funktio on valmis, ja toisin kuin setup()-funktio, se toimii jatkuvasti.

Ohjelman toiminnot

Alla on luettelo yleisimmin käytetyistä toiminnoista Arduinon ohjelmoinnissa:

  • pinMode - asettaa nastan tulo- tai lähtötilaan;
  • analogRead - lukee analogisen jännitteen analogisesta tulonastasta;
  • analogWrite - kirjoittaa analogisen jännitteen analogiseen lähtönastan;
  • digitalRead - lukee digitaalisen tulonastan arvon;
  • digitalWrite - asettaa digitaalisen lähtönastan arvon korkeaksi tai matalaksi;
  • Serial.print - kirjoittaa tiedot sarjaporttiin ihmisen luettavalla ASCII-tekstillä.

Arduino-kirjastot

Arduino-kirjastot ovat toimintokokoelmia, joiden avulla voit hallita laitteita. Tässä on joitain yleisimmin käytetyistä kirjastoista:

  • EEPROM - lukeminen ja kirjoittaminen "pysyvään" tallennustilaan;
  • Ethernet - muodostaa yhteyden Internetiin Arduino Ethernet Shield -levyllä;
  • Firmata - kommunikointiin tietokoneen sovellusten kanssa käyttämällä standardia sarjaprotokollaa;
  • GSM - yhteyden muodostaminen GSM/GRPS-verkkoon GSM-kortin avulla;
  • LiquidCrystal - nestekidenäyttöjen (LCD) ohjaamiseen;
  • SD - SD-korttien lukemiseen ja kirjoittamiseen;
  • Servo - servojen ohjaamiseen;
  • SPI - viestintään SPI-väylää käyttävien laitteiden kanssa;
  • SoftwareSerial - sarjaliikennettä varten minkä tahansa digitaalisen nastan kautta;
  • Stepper - askelmoottoreiden ohjaamiseen;
  • TFT - tekstin, kuvien ja muotojen piirtämiseen Arduino TFT -näytöille;
  • WiFi - yhteyden muodostaminen Internetiin Arduino WiFi -suojalla;
  • Wire - kaksijohdinliitäntä (TWI/I2C) tiedon lähettämiseen ja vastaanottamiseen laite- tai anturiverkon kautta.

Arduinon asennusvaiheet


Huomautus: Sinun on ehkä asennettava ajurit, jos järjestelmäsi ei tunnista Arduinoa.

Tämä simulaattori toimii parhaiten Chrome-selaimella
Katsotaanpa tarkemmin Arduinoa.

Arduino ei ole suuri tietokone, joka voidaan liittää ulkoisiin piireihin. Arduino Uno käyttää Atmega 328P:tä
Tämä on levyn suurin siru. Tämä siru suorittaa ohjelmia, jotka on tallennettu sen muistiin. Voit ladata ohjelman usb:n kautta käyttämällä Arduino IDE:tä. USB-portti antaa virtaa myös arduinolle.

On erillinen virtaliitin. Levyssä on kaksi nastaa, jotka on merkitty 5v ja 3,3v, joita tarvitaan eri laitteiden virransyöttöön. Löydät myös nastat, jotka on merkitty GND, nämä ovat maadoitusnastat (maa on 0V). Arduino-alustalla on myös 14 digitaalista nastaa, jotka on merkitty numeroilla 0–13, jotka kytketään ulkoisiin solmuihin ja joilla on kaksi tilaa, korkea tai matala (päällä tai pois päältä). Nämä koskettimet voivat toimia lähtöinä tai tuloina, ts. ne voivat joko lähettää tietoja ja ohjata ulkoisia laitteita tai vastaanottaa tietoja laitteista. Taulukon seuraavat nastat on merkitty A0-A5. Nämä ovat analogisia tuloja, jotka voivat vastaanottaa tietoja eri antureilta. Tämä on erityisen kätevää, kun sinun on mitattava tietty alue, kuten lämpötila. Analogisissa tuloissa on lisätoimintoja, jotka voidaan ottaa käyttöön erikseen.

Kuinka käyttää kehityslevyä.

Leipälautaa tarvitaan osien väliaikaiseen kytkemiseen, laitteen toiminnan tarkistamiseen, ennen kuin juotat kaiken yhteen.
Kaikki seuraavat esimerkit on koottu leipälevylle, jotta voit nopeasti tehdä muutoksia piiriin ja käyttää osia uudelleen ilman juottamista.

Leipälaudassa on riviä reikiä, joihin voit laittaa osia ja johtoja. Jotkut näistä rei'istä on kytketty sähköisesti toisiinsa.

Kaksi ylä- ja alariviä on liitetty riveihin koko levyä pitkin. Näitä rivejä käytetään virran syöttämiseen piiriin. Se voi olla 5V tai 3,3V, mutta kummassakin tapauksessa, ensimmäinen asia, joka sinun on tehtävä, on kytkeä 5V ja GND leipälevyyn kuvan osoittamalla tavalla. Joskus nämä riviliitännät voivat katketa ​​laudan keskeltä, jolloin voit tarvittaessa kytkeä ne kuvan osoittamalla tavalla.








Loput reiät, jotka sijaitsevat laudan keskellä, on ryhmitelty viiden reiän ryhmiin. Niitä käytetään kytkemään piirin osia.


Ensimmäinen asia, jonka yhdistämme mikrokontrolleriimme, on LED. Sähköliitäntäkaavio näkyy kuvassa.

Miksi piiriin tarvitaan vastus? Tässä tapauksessa se rajoittaa LEDin läpi kulkevaa virtaa. Jokainen LED on suunniteltu tietylle virralle, ja jos tämä virta on suurempi, LED epäonnistuu. Ohmin lain avulla voit selvittää, mikä arvo vastuksen tulisi olla. Niille, jotka eivät tiedä tai ovat unohtaneet, Ohmin laki sanoo, että virran ja jännitteen välillä on lineaarinen suhde. Eli mitä enemmän jännitettä syötämme vastukseen, sitä enemmän virtaa virtaa sen läpi.
V=I*R
Jossa V- jännite vastuksen yli
minä- virta vastuksen läpi
R- vastus, joka on löydettävä.
Ensin meidän on selvitettävä vastuksen yli oleva jännite. Useimpien käyttämiesi 3 mm tai 5 mm LEDien käyttöjännite on 3 V. Tämä tarkoittaa, että meidän on sammutettava 5-3 = 2V vastuksesta.

Laskemme sitten vastuksen läpi kulkevan virran.
Useimmat 3 mm ja 5 mm LEDit hehkuvat täydellä kirkkaudella 20 mA. Tätä suurempi virta voi poistaa ne käytöstä, kun taas pienempi voimakkuus heikentää niiden kirkkautta aiheuttamatta mitään haittaa.

Joten haluamme kytkeä LEDin 5 V piiriin niin, että se kuljettaa 20 mA:n virtaa. Koska kaikki osat ovat samassa piirissä, vastuksen virta on myös 20 mA.
Me saamme
2V = 20 mA * R
2V = 0,02A * R
R = 100 ohmia

100 ohmia on pienin vastus, on parempi käyttää hieman enemmän, koska LEDeillä on jonkin verran vaihtelua ominaisuuksissa.
Tässä esimerkissä käytetään 220 ohmin vastusta. Vain siksi, että kirjoittajalla on niitä paljon: silmänisku: .

Työnnä LED levyn keskellä oleviin reikiin niin, että sen pitkä johdin on kytketty yhteen vastusjohtimista. Kytke vastuksen toinen pää 5V:iin ja LEDin toinen johto GND:hen. LEDin pitäisi syttyä.

Huomaa, että LEDin kytkemisessä on eroja. Virta kulkee pidemmästä terminaalista lyhyempään. Kaaviossa voit kuvitella, että virta kulkee kolmion suunnassa. Yritä kääntää LED ylösalaisin ja huomaat, että se ei syty.

Mutta vastuksen liittämisellä ei ole mitään merkitystä. Voit kääntää sen tai yrittää kytkeä sen toiseen LED-nastaan, tämä ei vaikuta piirin toimintaan. Se rajoittaa silti LEDin kautta kulkevaa virtaa.

Arduino Sketchin anatomia.

Arduinon ohjelmia kutsutaan sketchiksi. Ne koostuvat kahdesta päätoiminnosta. Toiminto asetukset ja toimivuus silmukka
Tämän toiminnon sisällä määrität kaikki perusasetukset. Mitkä nastat toimivat tulona tai lähtönä, mitkä kirjastot liitetään, alustetaan muuttujat. Toiminto Asennus() suoritetaan vain kerran luonnoksen aikana, kun ohjelman suoritus alkaa.
tämä on päätoiminto, joka suoritetaan sen jälkeen setup(). Itse asiassa se on itse ohjelma. Tämä toiminto toimii toistaiseksi, kunnes katkaiset virran.

Arduino vilkkuva LED



Tässä esimerkissä yhdistämme LED-piirin yhteen Arduinon digitaalisista nastaista ja kytkemme sen päälle ja pois ohjelman avulla, ja opit myös useita hyödyllisiä toimintoja.

Tätä toimintoa käytetään setup() osa ohjelmaa ja sen avulla alustetaan nastat, joita käytät tulona (INPUT) tai poistu (OUTPUT). Et voi lukea tai kirjoittaa tietoja nastasta ennen kuin asetat sen vastaavasti pinMode. Tällä funktiolla on kaksi argumenttia: pinNumber on käyttämäsi PIN-koodi.

tila- määrittää kuinka pin toimii. Sisäänkäynnillä (INPUT) tai poistu (OUTPUT). LEDin sytyttämiseksi meidän on annettava signaali FROM Arduino. Tätä varten määritämme lähtönastan.
- tätä toimintoa käytetään tilan asettamiseen (osavaltio) pina (pinNumber). Päätiloja on kaksi (itse asiassa 3), yksi on KORKEA, nastassa on 5 V, se on jotain muuta Matala ja pinni on 0v. Tämä tarkoittaa, että LEDin sytyttämiseksi meidän on asetettava LEDiin kytketty nasta korkealle tasolle KORKEA.

Viive. Viivästyttää ohjelman toimintaa msec:ssä määritellyn ajan.
Alla on koodi, joka saa LEDin vilkkumaan.
//LED Blink int ledPin = 7;//Arduino-nasta, johon LED on kytketty void setup() ( pinMode(ledPin, OUTPUT);// nastan asettaminen OUTPUT:ksi) void loop() ( digitalWrite(ledPin, HIGH) ;// kytke LED-viive (1000) päälle

Pienet selitykset koodiin.
"//":lla alkavat rivit ovat kommentteja, ja Arduino jättää ne huomiotta.
Kaikki komennot päättyvät puolipisteeseen, jos unohdat ne, saat virheilmoituksen.

ledPin on muuttuja. Muuttujia käytetään ohjelmissa arvojen tallentamiseen. Tässä esimerkissä muuttuja ledPin arvo on määritetty 7:ksi, tämä on Arduinon pin-numero. Kun Arduino-ohjelma kohtaa rivin, jossa on muuttuja ledPin, se käyttää aiemmin määrittämäämme arvoa.
Ennätys siis pinMode(ledPin, OUTPUT) samanlainen kuin tallennus pinMode(7, OUTPUT).
Mutta ensimmäisessä tapauksessa sinun tarvitsee vain muuttaa muuttuja ja se muuttuu jokaisella rivillä, jossa sitä käytetään, ja toisessa tapauksessa, jotta voit muuttaa muuttujaa, sinun on tehtävä muutokset manuaalisesti jokaisessa komennossa.

Ensimmäinen rivi osoittaa muuttujan tyypin. Arduinoa ohjelmoitaessa on tärkeää ilmoittaa aina muuttujien tyyppi. Toistaiseksi riittää, että tiedät sen INT ilmoittaa negatiiviset ja positiiviset numerot.
Alla on simulaatio luonnoksesta. Napsauta Käynnistä nähdäksesi piirin toiminnassa.

Kuten odotettiin, LED sammuu ja syttyy takaisin yhden sekunnin kuluttua. Kokeile muuttaa viivettä nähdäksesi, miten se toimii.

Useiden LEDien ohjaus.

Tässä esimerkissä opit ohjaamaan useita LEDejä. Voit tehdä tämän asentamalla 3 muuta LEDiä levylle ja liittämällä ne vastuksiin ja Arduino-nastoihin alla olevan kuvan mukaisesti.

Jotta LED-valot voidaan sytyttää ja sammuttaa yksitellen, sinun on kirjoitettava tämän kaltainen ohjelma:
//Multi LED Blink int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() ( //asettaa nastat OUTPUT:ksi pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); ) void loop() ( digitalWrite(led1Pin, HIGH) );//kytke LED-viive (1000) päälle LEDit digitalWrite(led2Pin , HIGH);//sytytä LED-viive(1000);//viive 1 s digitalWrite(led2Pin, LOW);//sammuttavat LED-viiveen(1000);//viive 1 s digitalWrite(led3Pin, HIGH) );//sytytä LED-viive (1000);// viive 1 s digitalWrite(led3Pin, LOW);//sammuta LED-viive (1000);//viive 1 s digitalWrite(led4Pin, HIGH);//kytke päälle LED-viive (1000);// viive 1 s digitalWrite(led4Pin, LOW);//sammuttaa LED-viive (1000);//viive 1 s

Tämä ohjelma toimii hyvin, mutta se ei ole järkevin ratkaisu. Koodi on vaihdettava. Jotta ohjelma toimisi yhä uudelleen ja uudelleen, käytämme konstruktiota nimeltä .
Silmukat ovat hyödyllisiä, kun sinun on toistettava sama toiminto useita kertoja. Yllä olevassa koodissa toistamme rivit

DigitalWrite (led4Pin, KORKEA); viive (1000); digitalWrite(led4Pin, LOW); viive (1000);
täydellinen luonnoskoodi liitteenä (lataukset: 1187)

LED-kirkkauden säätö

Joskus joudut muuttamaan ohjelman LEDien kirkkautta. Tämä voidaan tehdä komennolla analogWrite() . Tämä komento sytyttää ja sammuttaa LEDin niin nopeasti, että silmä ei näe välkkymistä. Jos LED palaa puolet ajasta ja sammuu puolet ajasta, näyttää visuaalisesti, että se hehkuu puolet kirkkaudestaan. Tätä kutsutaan pulssinleveysmodulaatioksi (PWM tai PWM englanniksi). Välilevyä käytetään melko usein, koska sillä voidaan ohjata "analogista" komponenttia digitaalisella koodilla. Kaikki Arduino-nastat eivät sovellu näihin tarkoituksiin. Vain ne johtopäätökset, joiden lähellä tällainen nimitys tehdään " ~ ". Näet sen nastojen 3,5,6,9,10,11 vieressä.
Liitä yksi LED-valoistasi yhteen PWM-nastasta (kirjoittajalle tämä on nasta 9). Suorita nyt LED-vilkkusketsi, mutta muuta ensin komento digitalWrite() päällä analogWrite(). analogWrite() on kaksi argumenttia: ensimmäinen on pin-numero ja toinen on PWM-arvo (0-255), suhteessa LEDeihin tämä on niiden kirkkaus ja sähkömoottoreille pyörimisnopeus. Alla on esimerkkikoodi eri LED-kirkkauksille.
//Muuta LEDin kirkkautta int ledPin = 9;//tähän pinoon on kytketty LED void setup() ( pinMode(ledPin, OUTPUT);// nastan alustaminen lähtöön ) void loop() ( analogWrite( ledPin, 255);// täysi kirkkaus (255/255 = 1) viive(1000);//tauko 1 s digitalWrite(ledPin, LOW);//sammuta LED-viive(1000);//tauko 1 s analogWrite( ledPin, 191);//kirkkaus 3/4 (191/255 ~= 0,75) viive(1000);//tauko 1 s digitalWrite(ledPin, LOW);//sammuta LED-viive (1000);// tauko 1 s analogWrite(ledPin, 127); //puoli kirkkautta (127/255 ~= 0,5) viive(1000);//tauko 1 s digitalWrite(ledPin, LOW);//sammuta LED-viive(1000);/ /tauko 1 s analogWrite(ledPin, 63); //neljänneskirkkaus (63/255 ~= 0,25) viive (1000);//tauko 1 s digitalWrite(ledPin, LOW);//sammuta LED-viive (1000) ;//tauko 1 sekunti)

Yritä muuttaa komennon PWM-arvoa analogWrite() nähdäksesi kuinka tämä vaikuttaa kirkkauteen.
Seuraavaksi opit säätämään kirkkautta sujuvasti täydestä nollaan. Voit tietysti kopioida koodinpätkän 255 kertaa
analogWrite(ledPin, kirkkaus); viive(5);//lyhyt viive kirkkaus = kirkkaus + 1;
Mutta ymmärräthän, tämä ei ole käytännöllistä. Paras tapa tehdä tämä on käyttää aiemmin käyttämäämme FOR-silmukkaa.
Seuraavassa esimerkissä käytetään kahta silmukkaa, joista toinen pienentää kirkkautta arvosta 255 arvoon 0
for (int kirkkaus=0;kirkkaus=0;kirkkaus-)( analogWrite(ledPin,kirkkaus); viive(5); )
viive (5) käytetään hidastamaan kirkkauden häipymisnopeutta 5*256=1280ms=1.28s)
Ensimmäisellä rivillä käytetään " kirkkaus-", jotta kirkkausarvo pienenee 1:llä joka kerta, kun silmukka toistetaan. Huomaa, että silmukka jatkuu, kunnes kirkkaus >=0.Kyltin vaihtaminen > merkin päällä >= sisällytimme 0 kirkkausalueeseen. Tämä luonnos on mallinnettu alla. //muuta kirkkautta tasaisesti int ledPin = 9;//tähän pinoon on kytketty LED void setup() ( pinMode(ledPin, OUTPUT);// lähtönastan alustus) void loop() ( //lisää tasaisesti kirkkaus (0 - 255 ) kohteelle (int kirkkaus=0;kirkkaus=0;kirkkaus-)( analogWrite(ledPin,kirkkaus); viive(5); ) delay(1000);//odota 1 s //vähennä kirkkautta tasaisesti (255 - 0) kohteelle (int kirkkaus=255;kirkkaus>=0;kirkkaus-)( analogWrite(ledPin,kirkkaus); viive(5); ) viive (1000);//odota 1 sekunti ) )
Se ei ole kovin näkyvää, mutta ajatus on selvä.

RGB LED ja Arduino

RGB-LED on itse asiassa kolme eriväristä LEDiä yhdessä paketissa.

Kytkemällä päälle erilaisia ​​LEDejä eri kirkkauksilla voit yhdistää niitä eri väreiksi. Arduinolle, jossa kirkkaustasojen lukumäärä on 256, saat 256^3=16581375 mahdollista väriä. Todellisuudessa niitä tulee tietysti olemaan vähemmän.
LED, jota käytämme, on yhteinen katodi. Ne. kaikki kolme LEDiä on rakenteellisesti kytketty katodeilla yhteen liittimeen. Yhdistämme tämän nastan GND-nastaan. Loput nastat on kytkettävä PWM-nastoihin rajoittavien vastusten kautta. Kirjoittaja käytti nastat 9-11. Näin jokaista LEDiä voidaan ohjata erikseen. Ensimmäinen luonnos näyttää, kuinka jokainen LED kytketään päälle erikseen.



//RGB LED - testaa //pin liitännät int red = 9; int vihreä = 10; int sininen = 11; void setup())( pinMode(punainen, OUTPUT); pinMode(sininen, OUTPUT); pinMode(vihreä, OUTPUT); ) void loop())( //sytytä/poista punainen LED digitalWrite(punainen, KORKEA); viive(500) digitalWrite(punainen, LOW) päälle/pois päältä digitalWrite(vihreä, LOW); KORKEA; digitalWrite (sininen, LOW);

Seuraava esimerkki käyttää komentoja analogWrite() ja saada erilaisia ​​satunnaisia ​​kirkkausarvoja LEDeille. Näet eri värit muuttuvan satunnaisesti.
//RGB LED - satunnaiset värit //pin liitännät int red = 9; int vihreä = 10; int sininen = 11; void setup())( pinMode(punainen, OUTPUT); pinMode(sininen, OUTPUT); pinMode(vihreä, OUTPUT); ) void loop())( //valitse satunnainen väri analogWrite(punainen, satunnainen(256)); analogWrite(sininen, satunnainen(256));

Satunnainen (256)-palauttaa satunnaisluvun välillä 0-255.
Liitteenä olevassa tiedostossa on luonnos, joka näyttää sujuvat värisiirtymät punaisesta vihreään, sitten siniseen, punaiseen, vihreään jne. (lataukset: 326)
Esimerkkiluonnos toimii, mutta siinä on paljon päällekkäistä koodia. Voit yksinkertaistaa koodia kirjoittamalla oman aputoiminnon, joka vaihtuu sujuvasti väristä toiseen.
Tältä se näyttää: (lataukset: 365)
Katsotaanpa funktion määritelmää pala palalta. Funktiota kutsutaan häivytin ja sillä on kaksi argumenttia. Jokainen argumentti erotetaan pilkulla, ja sen tyyppi on ilmoitettu funktion määritelmän ensimmäisellä rivillä: void fader(int color1, int color2). Näet, että molemmat argumentit on ilmoitettu int, ja heille annetaan nimet väri 1 Ja väri 2 ehtomuuttujina funktion määrittelemiseksi. Tyhjä tarkoittaa, että funktio ei palauta arvoja, se yksinkertaisesti suorittaa komentoja. Jos sinun pitäisi kirjoittaa funktio, joka palautti kertolaskutuloksen, se näyttäisi tältä:
int kerroin(int numero1, int luku2)( int tuote = numero1*luku2; palautustulos; )
Huomaa, kuinka määritimme tyypin int sen sijaan palautustyyppinä
mitätön.
Toiminnon sisällä on komentoja, joita olet käyttänyt jo edellisessä luonnoksessa, vain pin-numerot on korvattu väri 1 Ja väri 2. Funktiota kutsutaan häivytin, sen argumentit lasketaan seuraavasti väri1 = punainen Ja väri2 = vihreä. Arkisto sisältää täydellisen luonnoksen funktioiden avulla (lataukset: 272)

Painike

Seuraavassa luonnoksessa käytetään painiketta, jossa on normaalisti avoimet koskettimet ilman lukitusta.


Tämä tarkoittaa, että kun painiketta ei paineta, sen läpi ei kulje virtaa, ja vapauttamisen jälkeen painike palaa alkuperäiseen asentoonsa.
Painikkeen lisäksi piiri käyttää vastusta. Tässä tapauksessa se ei rajoita virtaa, vaan "vetää" painikkeen 0V:iin (GND). Ne. Kunnes painiketta painetaan, Arduino-nasta, johon se on kytketty, laskee alhaiseksi. Piirissä käytetty vastus on 10 kOhm.


//määritä, milloin painiketta painetaan int buttonPin = 7; void setup())( pinMode(buttonPin, INPUT);//alustaa nasta tuloon Serial.begin(9600);//alustaa sarjaportti) void loop())( if (digitalRead(buttonPin)==HIGH )(//jos painiketta painetaan Serial.println("painettu"); // näytä merkintä "pressed" ) else ( Serial.println("painamaton");// muuten "painamaton" ) )
Tässä luonnoksessa on useita uusia komentoja.
-Tämä komento ottaa testattavan lähdön korkeat ja matalat arvot. Tämä lähtö on ensin konfiguroitava tuloksi setup().
; //jossa buttonPin on PIN-koodi, johon painike on liitetty.
Sarjaportin avulla Arduino voi lähettää viestejä tietokoneelle, kun ohjain itse suorittaa ohjelmaa. Tästä on hyötyä ohjelman virheenkorjauksessa, viestien lähettämisessä muihin laitteisiin tai sovelluksiin. Voit ottaa tiedonsiirron käyttöön sarjaportin kautta (kutsutaan myös UARTiksi tai USARTiksi), sinun on alustettava se setup()

Serial.begin() on vain yksi argumentti - tämä on tiedonsiirtonopeus Arduinon ja tietokoneen välillä.
Luonnos käyttää komentoa, joka näyttää viestin näytöllä Arduino IDE:ssä (Tools >> Serial Monitor).
- suunnittelun avulla voit hallita ohjelman suorittamisen edistymistä yhdistämällä useita tarkistuksia yhteen paikkaan.
Jos digitalRead palauttaa HIGH, sana "pressed" näkyy näytössä. Muussa tapauksessa (muuten) sana "vapautettu" näkyy näytössä. Nyt voit yrittää sytyttää ja sammuttaa LEDin painamalla painiketta.
//painikkeen painalluksen tunnistus LED-lähdöllä int buttonPin = 7; int ledPin = 8; void setup())( pinMode(buttonPin, INPUT);//tällä kertaa asetamme painikkeen nastaksi INPUT pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())( if (digitalRead(buttonPin) )= =KORKEA)( digitalWrite(ledPin,HIGH); Serial.println("painattu"); ) else ( digitalWrite(ledPin,LOW); Serial.println("painaamaton"); ) )

Analoginen tulo.

analoginen Read voit lukea tietoja yhdestä Arduinon analogisista nastaista ja näyttää arvon välillä 0 (0 V) - 1023 (5 V). Jos jännite analogisessa sisääntulossa on 2,5 V, tulostetaan 2,5 / 5 * 1023 = 512
analoginen Read on vain yksi argumentti - Tämä on analogisen tulon numero (A0-A5). Seuraava piirros näyttää koodin jännitteen lukemiseksi potentiometristä. Liitä tätä varten säädettävä vastus, ulommat liittimet 5V- ja GND-nastoihin ja keskiliitin A0-tuloon.

Suorita seuraava koodi ja katso sarjanäytöstä, kuinka arvot muuttuvat vastuksen nupin pyörimisestä riippuen.
//analoginen tulo int potPin = A0;//potentiometrin keskinasta on kytketty tähän pinoon void setup())( //analoginen nasta on oletusarvoisesti mukana tulona, ​​joten alustusta ei tarvita Serial.begin(9600 ); ) void loop())( int potVal = analogRead(potPin);//potVal on numero välillä 0 ja 1023 Serial.println(potVal)
Seuraava luonnos yhdistää painikkeen napsautusluonnoksen ja LED-kirkkauden säätöluonnoksen. LED syttyy painikkeesta ja kirkkautta ohjataan potentiometrillä.
//painikkeen painalluksen tunnistus LED-lähdöllä ja vaihtelevalla intensiteetillä int buttonPin = 7; int ledPin = 9; int potPin = A0; void setup())( pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); ) void loop())(if (digitalRead(buttonPin)==HIGH)(//jos painiketta painetaan int analogVal = analogRead(potPin) int skaalattuVal = map(analogVal, 0, 1023, 0, 255) analogWrite(ledPin, scaledVal);//sytytä ledi, jonka intensiteetti on asetettu Serial.println("pressed"); ( digitalWrite(ledPin, LOW);//sammuta, jos painiketta ei paineta Serial.println("painamaton"); ) )

Arduinon kohdeyleisö on robotiikan ja yksinkertaisten automaatiojärjestelmien ei-ammattimaiset käyttäjät. Päätuote on sarja levyjä, joita yhdistämällä on mahdollista luoda erilaisia ​​laitteita, jotka pystyvät suorittamaan monenlaisia ​​tehtäviä.

Esimerkiksi tämän yrityksen valmistamasta levysarjasta voit koota automaattisen syöttölaitteen lemmikkillesi. Ja tämä on vain yksi yksinkertaisimmista esimerkeistä. Niiden mahdollisen sovelluksen laajuutta rajoittaa vain käyttäjien mielikuvitus.

Arduino-brändillä valmistettujen piirilevyjen lisäksi heillä on oma Arduino-ohjelmointikieli, joka perustuu ohjelmoijien keskuudessa laajalti tuntemaan kieleen. C/C++. Katsotaanpa tarkemmin, mikä se on.

Arduino-ohjelmointikieli on melko helppo oppia, koska sen käytön pääkohderyhmä on amatöörit. Sitä pidetään kuitenkin yhtenä parhaista kielistä mikro-ohjainten ohjelmointiin.

Arduino IDE on ilmainen ohjelma, jonka kuka tahansa voi ladata. Sivustollamme voit käyttää mitä tahansa sinulle sopivaa ympäristöversiota. Myös pääsy IDE:n lataamiseen tarjotaan yrityksen virallisella verkkosivustolla, ja haluttaessa kehittäjiä voidaan kiittää tekemällä rahansiirto.

Arduino-ohjelmointikielellä kirjoitettua ohjelmaa kutsutaan luonnokseksi. Valmiit luonnokset kirjataan taululle toteutusta varten.

IDE:tä tukevat käyttöjärjestelmät, kuten Windows, MacOs ja Linux. Yrityksen virallisella verkkosivustolla kerrotaan, että tämä ohjelmointikieli on kirjoitettu Wiringillä, mutta itse asiassa sitä ei ole olemassa ja se on kirjoitettu C++:lla pienin muutoksin.

Mitä tarvitset aloittaaksesi Arduino IDE:n käytön?

Aloittaaksemme tarvitsemme seuraavat asiat:

  • Arduino-levyt;
  • USB-kaapeli;
  • tietokone, johon on asennettu Arduino IDE.

Kun sinulla on tämä sarja, voit aloittaa kokeiluja omistamillasi tauluilla ja tallentaa niihin ensimmäiset luonnoksesi.

Kuinka määrittää Arduino tietokoneeseen?

Tämä tehdään yksinkertaisesti. Sinun on toimittava seuraavasti:

  • sinun on liitettävä koottu tuote tietokoneeseen USB-kaapelilla;
  • Laitehallinnassa sinun on tarkistettava, mihin porttiin mikro-ohjain on kytketty. Jos sitä ei näy tai se sanoo, että laitetta ei tunnisteta, se tarkoittaa, että et ole asentanut ohjainta oikein tai korttisi tarvitsee diagnostiikkaa;
  • Seuraava askel on käynnistää Arduino IDE -ohjelmointikieli. Valikosta sinun on valittava Työkalut-välilehti. Kun napsautat sitä, näkyviin tulee luettelo, josta sinun on valittava porttikohde. Siellä sinun on valittava laitehallinnassa määritetty portti;
  • Viimeinen vaihe on valita taulu, jota käytämme luonnosten lataamiseen.

Tärkeää! Kun liität korttisi toiseen USB-porttiin, kaikki asetukset on tehtävä uudelleen.

Johdatus Arduino-käyttöliittymään

Yksi Arduinon pääelementeistä on ohjelman päävalikko, jonka avulla voit käyttää kaikkia ohjelmamme käytettävissä olevia toimintoja.

Alla on paneeli, jossa on kuvakkeita, jotka näyttävät Arduino IDE:n eniten käytetyt toiminnot:

  • virheiden tarkistaminen;
  • uuden luonnoksen luominen;
  • mikro-ohjaimen portin ikkunan avaaminen;
  • Seuraavaksi tärkein elementti on projektitiedostot-välilehti. Jos tämä on yksinkertainen luonnos, tiedostoa on vain yksi. Monimutkaiset luonnokset voivat kuitenkin koostua useista tiedostoista. Tässä tapauksessa voit nopeasti vaihtaa katselua tiedostosta toiseen välilehtipalkissa. Se on erittäin kätevää.

    Suurin lohkoista on luonnosten muokkauskenttä. Täällä voimme tarkastella ja tarvittaessa muokata tarvitsemamme ohjelmakoodia. Järjestelmäviestien näyttämistä varten on toteutettu erillinen kenttä. Sen avulla voit varmistaa, että luonnoksen tallentaminen tai lataaminen onnistui, ja voit siirtyä seuraaviin vaiheisiin. Ohjelmassa on myös ikkuna, joka näyttää luonnoksesi läsnäolon kääntämisen aikana.

    Kokoelma– korkean tason kielen lähdekoodin muuntaminen konekoodiksi tai kokoonpanokieleksi.

    Ohjelmointikielen perustoiminnot

    Siirrytään lopuksi Arduino-ohjelmointikielen perustoimintoihin.

    Sanotaan heti, että löydät kaikki toiminnot kätevältä verkkosivustoltamme.

    Puolipiste;

    Puolipisteen on seurattava jokaista Arduino-ohjelmointikielellä kirjoitettua lausetta. Esimerkiksi:

    Int LEDpin = 9;

    Tässä lausekkeessa annamme muuttujalle arvon ja huomaamme puolipisteen lopussa. Tämä kertoo kääntäjälle, että olet lopettanut koodinpalan ja siirtyä seuraavaan osaan. Puolipiste Arduino-koodissa erottaa täydellisen lausekkeen toisesta.

    Kaksinkertainen kenoviiva yksirivisille kommenteille //

    // Kaikki kaksoisviivan jälkeen tuleva on harmaata, eikä ohjelma lue sitä

    Kommentteja käytät koodin kommentoimiseen. Hyvä koodi on hyvin kommentoitu. Kommenttien tarkoituksena on kertoa sinulle ja kaikille muille, jotka saattavat törmätä koodiisi, mitä ajattelit kirjoittaessasi sitä. Hyvä kommentti olisi jotain tällaista:

    // Liitä LED tähän Arduino-nastan int LEDpin = 9;

    Nyt, jopa kolmen kuukauden jälkeen, kun katson tätä ohjelmaa, tiedän, mihin LED on kytketty.

    Kääntäjä jättää kommentit huomioimatta, joten voit kirjoittaa mitä haluat. Jos tarvitset paljon tekstiä kommenttiin, voit käyttää alla näkyvää monirivistä kommenttia:

    /* Monirivinen kommentti avataan yhdellä kenoviivalla ja sen jälkeen tähdellä. Kaikki seuraava näkyy harmaana ja kääntäjä jättää huomiotta, kunnes suljet kommentin ensin tähdellä ja sitten kenoviivalla */

    Kommentit ovat samanlaisia ​​kuin koodin alaviitteet, mutta ne ovat yleisempiä kuin ne, jotka sijoitetaan kirjojen sivujen alaosaan.

    Kiharat olkaimet ( )

    Aaltosulkeet käytetään lisäämään funktion suorittamia ohjeita (käsittelemme toimintoja myöhemmin). Aina on avoin kihara ja sulkeva kihara. Jos unohdat sulkea aaltosulkeen, kääntäjä tulostaa virhekoodin.

    Void loop() ( //tämä kihara aaltosulje avautuu //hieno ohjelma täällä ) //tämä aaltosulje sulkeutuu

    Muista - kiharaa olkapäätä ei voi jättää sulkematta!

    Toiminnot ()

    Nyt on aika puhua toiminnoista. Funktiot ovat koodinpätkiä, joita käytetään niin usein, että ne on kapseloitu tiettyihin avainsanoihin, jotta voit käyttää niitä helpommin. Toiminto voi olla esimerkiksi seuraavat ohjeet, jos sinun on pestävä koirasi:

    1. Hanki ämpäri
    2. Täytä se vedellä
    3. Lisää saippuaa
    4. Etsi koira
    5. Vaahdota koira
    6. Pese koira
    7. Huuhtele koira
    8. Kuivaa koira
    9. Laita ämpäri sivuun

    Tämä joukko yksinkertaisia ​​ohjeita voidaan kapseloida toimintoon, jota voimme kutsua WashDogiksi. Joka kerta kun haluamme suorittaa kaikki nämä ohjeet, kirjoitamme vain WashDog ja voila - kaikki ohjeet suoritetaan.

    Arduinolla on tiettyjä toimintoja, joita käytetään usein . Kun syötät ne, funktion nimi on oranssi. Esimerkiksi pinMode()-funktio on yleinen funktio, jota käytetään ilmaisemaan Arduinon pin-tila.

    Entä sulut pinMode-funktion jälkeen? Monet funktiot vaativat argumentteja. Argumentti on tietoa, jota funktio käyttää suorittaessaan. WashDog-toiminnossamme argumentteja voivat olla koiran nimi ja saippuan tyyppi sekä ämpärin lämpötila ja koko.

    PinMode(13, OUTPUT); //Asettaa Arduino-lähtötilan

    Argumentti 13 viittaa nastaan ​​13, ja OUTPUT on tila, jossa haluat nastan toimivan. Kun syötät nämä argumentit, terminologiassa tätä kutsutaan tietojen välittämiseksi, välität tarvittavat tiedot funktioille. Kaikki funktiot eivät vaadi argumentteja, mutta avaus- ja sulkemissulut säilyvät, vaikkakin tyhjinä.

    Millis(); //Hakee ajan millisekunteina, jonka Arduino käynnistyy

    Huomaa, että sana OUTPUT on yleensä sininen. Arduino-ohjelmointikielessä on tiettyjä avainsanoja, joita käytetään usein, ja sininen väri auttaa tunnistamaan ne. Arduino IDE muuttaa ne automaattisesti siniseksi.

    void setup()

    Setup()-funktiota, kuten nimestä voi päätellä, käytetään Arduino-levyn konfigurointiin. Arduino suorittaa kaiken aaltosulkeiden välissä olevan koodin setup()-toiminnon jälkeen vain kerran. Tyypillisiä asioita, joita tapahtuu setup():ssa, ovat esimerkiksi tilan asettaminen yhteystietoihin:

    Void setup() ( //koodi aaltosulkeiden välillä suoritetaan vain kerran)

    Saatat ihmetellä, mitä void tarkoittaa ennen setup()-funktiota. Void tarkoittaa, että toiminto ei palauta tietoja.

    Jotkut toiminnot palauttavat arvoja - DogWash-toimintomme voi palauttaa koiran puhdistamiseen tarvittavan määrän kauhoja. AnalogRead()-funktio palauttaa kokonaislukuarvon välillä 0 - 1023. Jos tämä tuntuu nyt hieman oudolta, älä huoli, sillä käsittelemme kaikki yleiset Arduino-funktiot kurssin edetessä.

    Katsotaanpa pari asiaa, jotka sinun pitäisi tietää asennuksesta ():

    1. setup() suoritetaan vain kerran;
    2. setup() on Arduino-luonnoksen ensimmäinen funktio;
    3. setup():ssa on oltava avautuvat ja sulkevat kiharat aaltosulkeet.

    void loop()

    Sinun täytyy rakastaa Arduino-kehittäjiä, koska he varmistivat, että toimintojen nimet puhuvat puolestaan. Kuten nimestä voi päätellä, kaikki koodi loop():n kiharoiden aaltosulkeiden välillä toistetaan yhä uudelleen ja uudelleen, ja sana loop tarkoittaa kirjaimellisesti "silmukkaa". Loop()-funktio on paikka, johon ohjelmasi runko menee.

    Kuten setup(), loop() ei palauta mitään arvoa, joten sitä edeltää sana void.

    Void loop() ( //kaikki tässä määrittämäsi koodit suoritetaan yhä uudelleen)

    Tuntuuko sinusta oudolta, että koodi kulkee yhdessä suuressa silmukassa? Tämä ilmeinen vaihtelun puute on illuusio. Suurimmalla osalla koodistasi on tiettyjä odotusehtoja, jotka käynnistävät uusia toimintoja.

    Onko olemassa muita ohjelmia, jotka toimivat Arduinon kanssa?

    Virallisen Arduino IDE:n lisäksi on olemassa kolmannen osapuolen ohjelmia, jotka tarjoavat tuotteitaan työskennellä Arduino-pohjaisten mikro-ohjainten kanssa.

    Prosessointi-niminen ohjelma voi tarjota meille samanlaisia ​​toimintoja. Se on hyvin samanlainen kuin Arduino IDE, koska molemmat on tehty samalla moottorilla. Käsittelyssä on laaja joukko toimintoja, jotka eivät ole paljon huonompia kuin alkuperäinen ohjelma. Ladattavan Serial-kirjaston avulla käyttäjä voi luoda yhteyden kortin ja Processingin toisilleen välittämän tiedonsiirron välille. Tällöin voimme saada kortin suorittamaan ohjelmia suoraan PC:ltämme.

    Alkuperäisestä ohjelmasta on toinenkin mielenkiintoinen versio. Sitä kutsutaan B4R:ksi, ja sen tärkein ero on, että se ei käytä C-kieltä perustana, vaan toista ohjelmointikieltä - Basic. Tämä ohjelmistotuote on ilmainen. Sen kanssa työskentelemiseen on hyviä opetusohjelmia, mukaan lukien tämän tuotteen tekijöiden kirjoittamat.

    Arduino IDE:lle on myös maksullisia vaihtoehtoja. Yksi näistä on PROGROMINO-ohjelma. Sen tärkein etu on kyky täydentää koodia automaattisesti. Ohjelmaa käännettäessä sinun ei enää tarvitse etsiä tietoa hakuteoksista. Itse ohjelma tarjoaa sinulle mahdollisia vaihtoehtoja tietyn menettelyn käyttämiseen. Sen sarja sisältää monia mielenkiintoisempia toimintoja, jotka puuttuvat alkuperäisestä ohjelmasta ja jotka voivat helpottaa taulujen käyttöä.

    Arduino kilpailijat

    Näillä erilaisten elektronisten piirien ja robotiikan luomiseen tarkoitettujen mikro-ohjainten tuotantomarkkinoilla on monia faneja ympäri maailmaa. Tämä tilanne myötävaikuttaa siihen, että markkinoille ei tule vain kilpailijoita, jotka tarjoavat samanlaisia ​​tuotteita. Niiden lisäksi valmistetaan huomattava määrä erilaatuisia väärennöksiä. Joitakin on erittäin vaikea erottaa alkuperäisistä, koska niiden laatu on identtinen, toisilla on erittäin huonot ominaisuudet ja ne eivät ehkä toimi ollenkaan alkuperäisten tuotteiden kanssa.

    On jopa Arduino-levyjä, jotka tukevat mikroprosessoreita, jotka käyttävät JavaScript-tulkkeja. Ne ovat tärkeitä ennen kaikkea niille, jotka haluavat käyttää Java-kieltä C:n sijaan. Loppujen lopuksi se on yksinkertaisempaa ja antaa sinun saavuttaa tuloksia suuremmalla nopeudella. Nämä levyt ovat kuitenkin kalliimpia verrattuna Arduinoon, mikä on merkittävä haitta.

    Jos etsit harrastusta ja olet kiinnostunut esimerkiksi sähkötekniikasta, voit turvallisesti valita Arduinon tähän. Tällä harrastuksella on paljon etuja. Kehität älyllisesti, koska tämä toiminta vaatii sinulta tietoa eri aloilta.

    Viihteen lisäksi harrastuksesi auttaa sinua luomaan paljon hyödyllisiä tuotteita, joiden avulla voit helpottaa arkeasi. Joka kerta löydät yhä enemmän uusia tapoja käyttää intohimoasi.

    Tämän toiminnan hallitseminen ei ole niin vaikeaa, koska saatavilla on suuri määrä oppikirjoja ja opetusohjelmia. Tulevaisuudessa löydät monia samanhenkisiä ihmisiä ympäri maailmaa, jotka jakavat tietonsa kanssasi ja antavat sinulle kannustimen uusiin kokeiluihin!

    Arduino-kehittäjän elämässä tulee ennemmin tai myöhemmin aika, jolloin standardikehitysympäristö tulee tungosta. Jos luonnoksissa ei enää ole tarpeeksi muistia, tarvitset kovaa reaaliaikaista työtä ja keskeytyksiä tai haluat vain olla lähempänä laitteistoa, on aika vaihtaa C:hen. Kokeneet elektroniikkainsinöörit rypistyvät halveksivasti Arduinon mainitsemisen jälkeen ja lähettävät aloittelija radiokaupassa juottimen hankkimiseksi. Tämä ei ehkä ole pahin neuvo, mutta emme noudata sitä vielä. Jos hylkäämme Arduino IDE:n ja johdotuksen/käsittelykielen, jäljelle jää erinomainen virheenkorjauskortti, joka on jo varustettu kaikella mikro-ohjaimen toimintaan tarvittavalla. Ja mikä tärkeintä, käynnistyslatain on jo upotettu ohjaimen muistiin, joten voit ladata laiteohjelmiston ilman ohjelmoijaa.

    Ohjelmoidaksemme C-kielellä tarvitsemme AVR GCC Toolchainin.

    Tarvitsemme myös Arduino IDE:n asennettuna, koska... se sisältää avrdude-apuohjelman, jota tarvitaan laiteohjelmiston lataamiseen ohjaimeen. CrossPack sisältää myös avrduden, mutta sen mukana tuleva versio ei toimi Arduinon kanssa.

    Kun kaikki on asennettu, luodaan ensimmäinen projektimme. Aluksi kirjoitetaan Makefile. Sen avulla voimme välttää pitkien komentojen syöttämisen manuaalisesti aina, kun käännämme ja lataamme laiteohjelmiston.

    #Ohjain asennettu levylle. Voi olla erilainen, esimerkiksi atmega328 DEVICE = atmega168 #Kellotaajuus 16 MHz KELLO = 16000000 #Avrdude käynnistyskomento. Se on kopioitava Arduino IDE:stä. AVRDUDE = /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -carduino -P/dev/tty.usbserial-A600dAAQ -b19200 -D -p atmega168 OBJECTS = main.o COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) all: main .hex .c.o: $(COMPILE) -c $< -o $@ .S.o: $(COMPILE) -x assembler-with-cpp -c $< -o $@ .c.s: $(COMPILE) -S $< -o $@ flash: all $(AVRDUDE) -U flash:w:main.hex:i clean: rm -f main.hex main.elf $(OBJECTS) main.elf: $(OBJECTS) $(COMPILE) -o main.elf $(OBJECTS) main.hex: main.elf rm -f main.hex avr-objcopy -j .text -j .data -O ihex main.elf main.hex avr-size --format=avr --mcu=$(DEVICE) main.elf

    Tässä tiedostossa meidän on syötettävä komentomme käynnistääksesi avrdude. Se näyttää erilaiselta eri järjestelmissä. Selvittääksesi vaihtoehdon, käynnistä Arduino IDE ja valitse asetuksista "Näytä verbose output latauksen aikana" -ruutu.

    Nyt lataamme minkä tahansa luonnoksen Arduinoon ja katsomme ikkunan alareunassa näkyviä viestejä. Löydämme avrdude-kutsun sieltä, kopioimme kaikki paitsi -Uflash-parametrin ja liitämme sen Makefile-tiedostoon "AVRDUDE = " jälkeen.


    Nopea huomautus: Makefile-tiedoston kaikki sisennykset tehdään sarkainmerkeillä (sarkainnäppäin). Jos tekstieditori korvaa nämä merkit välilyönneillä, make-komento kieltäytyy rakentamasta projektia.

    Luodaan nyt tiedosto main.c- ohjelmamme varsinainen teksti, jossa perinteisesti vilkutamme LEDiä.

    #sisältää #sisältää #define LED_PIN 5 int main() ( DDRB |= 1<< LED_PIN; while(1) { PORTB |= 1 << LED_PIN; _delay_ms(1000); PORTB &= ~(1 << LED_PIN); _delay_ms(1000); } return 0; }

    Projektimme on valmis. Avataan konsoli projektihakemistossamme ja kirjoitetaan "make"-komento:


    Kuten näet, tuloksena olevan laiteohjelmiston koko on vain 180 tavua. Samanlainen Arduino-luonnos vie ohjaimen muistista 1116 tavua.

    Palataan nyt konsoliin ja kirjoitetaan "make flash" ladataksesi käännetyn tiedoston ohjaimeen:


    Jos lataus onnistui ilman virheitä, levyn nastaan ​​13 kytketty LED vilkkuu iloisesti. Joskus avrdude ei löydä levyä tai putoaa aikakatkaisun vuoksi - tässä tapauksessa USB-kaapelin kiertäminen voi auttaa. Älä myöskään unohda sulkea Arduino IDE ennen "make flash" -komentoa välttääksesi kortin käyttöristiriidat.

    Ehkä monet tässä artikkelissa kuvatuista asioista näyttävät ilmeisiltä kokeneille kehittäjille. Yritin kuvata prosessia aloittelevalle Arduino-käyttäjälle mahdollisimman ymmärrettävällä kielellä ja kerätä yhteen paikkaan eri lähteistä saamani ja empiirisesti todentamani tiedot. Ehkä tämä artikkeli säästää jonkun pari tuntia aikaa.

    Onnea mikro-ohjainten hallitsemiseen!

    28 09.2016

    Oletko koskaan ajatellut helpottaa elämääsi kotona? Jotta sinulla olisi asioita, jotka ratkaisevat arjen rutiinitehtävät. Älylaite, joka suorittaisi hyödyllistä toimintaa, esimerkiksi kastelee puutarhaa, siivoaa huoneen tai kantaa kuormaa. Nämä ongelmat voidaan ratkaista. Mutta pelkkä ostaminen ei riitä. Mikä tahansa teollinen logiikkaohjain tai siru tarvitsee "aivot" suorittaakseen tietyn toimintosarjan. Toimintojen suorittamiseen tapauksessamme Arduino-ohjelmointikieli sopii.

    Tästä artikkelista opit:

    Tervehdys ystävät! Niille, jotka eivät tunne minua, nimeni on Gridin Semyon. Voit lukea minusta. Tämän päivän artikkeli on omistettu kahdelle pääohjelmalle, joita ilman meillä ei ole lisäliikettä ja keskinäistä ymmärrystä.

    Ohjelmointikielien yleiskuvaus

    Kuten edellä kirjoitin, harkitsemme kahta suosittua kehitysympäristöä. Analogisesti kanssa, voidaan jakaa graafiseen editoriin ja "älykkääseen muistilehtiöön". Nämä ovat Arduino IDE- ja FLprog-ohjelmia.

    Kehitysympäristön perusta on Processing/Wiring - tämä on tavallinen C++, jota on täydennetty funktioilla ja erilaisilla kirjastoilla. Windows-, Mac OS- ja Linux-käyttöjärjestelmille on useita versioita.

    Mikä niiden perustavanlaatuinen ero on?? Arduino IDE on kehitysympäristö, joka kuvaa ohjelmakoodia. Ja FLprog on samanlainen kuin CFC CoDeSyS, jonka avulla voit piirtää kaavioita. Kumpi ympäristö on parempi? Molemmat ovat hyviä ja käteviä omalla tavallaan, mutta jos haluat ottaa ohjaimia vakavasti, on parasta oppia SI:n kaltaisia ​​kieliä. Niiden tärkein etu on algoritmin joustavuus ja rajoittamaton luonne. Pidän todella Arduino IDE:stä.

    Arduino IDE:n kuvaus

    Jakelun voi ladata osoitteesta virallinen verkkosivusto. Lataa arkisto, se vie hieman yli 100 Mt. Asennus on vakio, kuten kaikki Windows-sovellukset. Kaikentyyppisten levyjen ajurit on asennettava pakkaukseen. Ja tältä ohjelman työikkuna näyttää.

    Arduino-kehitysympäristö koostuu:

    • ohjelmakoodieditori;
    • viestialueet;
    • tekstitulostusikkunat;
    • työkalurivit painikkeilla usein käytettyjä komentoja varten;
    • useita valikoita

    Arduino IDE -asetukset

    Arduino-kehitysympäristössä kirjoitettu ohjelma on nsluonnos. Luonnos kirjoitetaan tekstieditorilla, jossa on värikorostus luodusta ohjelmakoodista. Esimerkki yksinkertaisesta ohjelmasta alla olevassa kuvassa.

    Lisätoimintoja voidaan lisätä käyttämälläkirjastot,edustavat erityisellä tavalla suunniteltua koodia. Pohjimmiltaan se ei ole kehittäjän käytettävissä. Ympäristön mukana tulee yleensä vakiosarja, jota voi täydentää vähitellen. Ne ovat alihakemistossakirjastot Arduino hakemisto.

    Monissa kirjastoissa on kansiossa esimerkkejäesimerkki.Kirjaston valitseminen valikosta lisää seuraavan rivin lähdekoodiin:

    Arduino

    #sisältää

    #sisältää

    Tämä on ohje - eräänlainen käsky, otsikkotiedosto, joka kuvaa objekteja, toimintoja ja kirjastovakioita. Useimpia toimintoja varten on jo kehitetty monia toimintoja. Usko minua, tämä helpottaa ohjelmoijan elämää.

    Kun olemme yhdistäneet elektroniikkakortin tietokoneeseen. Teemme seuraavat asetukset - valitse Arduino-kortti ja Com-portti, jonka kautta muodostamme yhteyden.

    Arduino

    void setup() ( // alusta digitaalinen nasta 13 lähdöksi. pinMode(13, OUTPUT); ) void loop() ( digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000) );

    void setup() (

    // alustaa digitaalinen nasta 13 lähdöksi.

    pinMode(13, OUTPUT);

    void loop() (

    digitalWrite(13, KORKEA);

    viive (1000);

    digitalWrite(13, LOW);

    viive (1000);

    Joten muuten on kätevää tarkistaa kaupasta tulleen levyn toimivuus. Nopeaa ja helppoa.

    On vielä yksi kätevä asia. Sitä kutsutaanSarjaportin näyttö (Sarjainen näyttö). Näyttää alustalle lähetetyt tiedotArduino.Yleensä katson, mitä signaaleja piirilevyyn liitetyt eri anturit antavat minulle.

    Kirjastojen yhdistäminen

    On olemassa erilaisia ​​tapoja lisätä mukautettuja ominaisuuksia. Voit yhdistää kirjastoja kolmella tavalla:

    1. Kirjastonhallinnan käyttäminen
    2. Tuontia käytetään .zip-tiedostona
    3. Manuaalinen asennus.

    1. Kirjastonhallinnan käyttäminen.Valitse ohjelman työikkunasta Sketch-välilehti. Napsauta sen jälkeen Yhdistä kirjasto -painiketta. Kirjastonjohtaja avaa edessämme. Ikkuna näyttää jo asennetut tiedostot allekirjoituksellaasennettuja ne, jotka voidaan asentaa.

    2. Tuonnin käyttäminen .zip-tiedostona.Usein Internetistä löytyy kirjastotiedostoja, jotka on pakattu arkistoon zip-tunnisteella. Se sisältää otsikon file.h ja koodin file.cpp. Arkistoa ei tarvitse purkaa asennuksen aikana. Siirry vain Sketch-valikkoon - Yhdistä kirjasto - Lisää .ZIP-kirjasto

    3. Manuaalinen asennus.Sulje ensin Arduino IDE -ohjelma. Puramme ensin arkistomme. Ja siirrämme tiedostot, joiden tunniste on .h ja .cpp, kansioon, jolla on sama nimi kuin arkistolla. Aseta kansio juurihakemistoon.

    Omat asiakirjat\Arduino\kirjastot

    FLPprogin kuvaus

    FLprog on riippumattomien kehittäjien ilmainen projekti, jonka avulla voit työskennellä toimintolohkojen tai tikapuukaavioiden kanssa. Tämä ympäristö on kätevä ihmisille - ei ohjelmoijille. Sen avulla voit nähdä algoritmin visuaalisesti ja selkeästi käyttämällä kaavioita ja toiminnallisia lohkoja. Voit ladata jakelun osoitteesta virallinen verkkosivusto.

    Olen seurannut projektia melko pitkään. Kaverit kehittyvät, lisäävät jatkuvasti uusia toimintoja ja vaihtavat vanhoja. Näen lupauksen tässä ympäristössä. Koska se suorittaa kaksi tärkeää toimintoa:yksinkertaisuus ja helppokäyttöisyys.

    Yritetään luoda yksinkertainen projekti. Vaihdamme lähdön 13 LEDiksi.

    Luodaan uusi projekti. Lisää yläikkunaan tarvittava määrä tuloja ja lähtöjä, aseta nimi ja määritä kortille fyysinen tulo tai lähtö.

    Vedämme tarvitsemamme elementit objektipuusta ja tarvitsemme muokkauskankaalle. Meidän tapauksessamme voimme käyttää yksinkertaista RS-liipaisinta sen kytkemiseksi päälle ja pois.

    Kun olet luonut algoritmin, napsauta kääntämispainiketta, ohjelma tarjoaa valmiin luonnoksen IDE:ssä.

    Olemme tarkastelleet Arduino-sarjan ohjaimen algoritmien kehittämiseen tarkoitettujen ohjelmien ominaisuuksia ja mukavuutta. On myös ohjelmia, joiden avulla voit luoda rakennekaavioita ja visuaalisia kuvia. Mutta suosittelen käyttämään tekstieditoria, koska se on sinulle helpompaa myöhemmin. Kerro mikä ympäristö on sinulle sopivin ja miksi??

    Syyskuun 22. päivänä osallistuin seminaariin Krasnodarissa "Kosketuspaneeliohjaimet OVEN SPK." Konferenssi pidettiin muodikkaassa ja kauniissa Bristol-hotellissa. Se oli erittäin mielenkiintoista ja siistiä.

    Seminaarin ensimmäisessä osassa kerrottiin OWEN-tuotteiden ominaisuuksista ja eduista. Sen jälkeen oli kahvitauko munkkien kera. Poimin joukon tavaroita, munkkeja, keksejä ja karkkeja, koska olin hyvin nälkäinen =)

    Seminaarin toisessa osassa lounaan jälkeen meidät esiteltiin. He kertoivat meille paljon Web-visualisoinnista. Tämä trendi alkaa vahvistua. No, tietenkin, ohjaa laitteita millä tahansa Internet-selaimella. Tämä on todella siistiä. Muuten, itse varusteet ovat matkalaukussa.

    Julkaisen lähitulevaisuudessa artikkelisarjan CoDeSyS 3.5:stä. Joten jos jotakuta kiinnostaa, tilaa tai tule vain käymään. Tulen aina olemaan iloinen!!!

    Muuten, melkein unohdin, seuraava artikkeli käsittelee Arduino-elektroniikkalevyä. Siitä tulee mielenkiintoista, älä missaa sitä.

    Nähdään seuraavissa artikkeleissa.

    Ystävällisin terveisin, Gridin Semyon.