kategorier: Utvalgte artikler » Praktisk elektronikk
Antall visninger: 67360
Kommentarer til artikkelen: 7
Koble til og programmerer Arduino for nybegynnere
Virker det å studere mikrokontrollere komplisert og uforståelig? Før utseendet til Arudino var det egentlig ikke lett og krevde et visst sett med programmerere og annet utstyr.
Hva er en Arduino?
Dette er en slags elektronisk konstruktør. Det opprinnelige målet med prosjektet er å la folk enkelt lære å programmere elektroniske enheter, samtidig som de bruker minimal tid til den elektroniske delen.
Montering av de mest kompliserte kretsene og tilkoblingen av brettene kan utføres uten loddejern, og ved hjelp av hoppere med avtakbare forbindelser "far" og "mor". På denne måten kan både vedlegg og utvidelseskort kobles til, som i leksikonet til arduinistene ganske enkelt kalles “Shields”.

Hva er det første Arduino-brettet som kjøper en nybegynner?
Det grunnleggende og mest populære styret blir vurdert Arduino uno. Denne avgiften ligner et kredittkort. Ganske stort. De fleste skjoldene som er til salgs er perfekte for henne. Det er stikkontakter på tavlen for tilkobling av eksterne enheter.

I innenlandske butikker for 2017 er prisen omtrent 4-5 dollar. På moderne modeller er Atmega328 hennes hjerte.
Arduino-tavlebilde og avkoding av funksjonen av hver pin, Arduino UNO pinout
Mikrokontrolleren på dette brettet er en lang brikke i DIP28-pakken, noe som betyr at den har 28 ben.
Det neste mest populære brettet koster nesten to ganger billigere enn det forrige - 2-3 dollar. Dette er styret Arduino nano. Faktiske tavler er bygget av samme Atmega328, de er funksjonelt lik UNO, forskjeller i størrelse og beslutningen om å matche med USB, mer om dette senere. En annen forskjell er at en plugg, i form av nåler, er anordnet for å koble enheter til kretskortet.

Antall pinner (ben) på dette brettet er det samme, men du kan se at mikrokontrolleren er laget i en mer kompakt TQFP32-pakke, ADC6 og ADC7 er lagt til i tilfelle, de to andre “ekstra” benene dupliserer strømbussen. Dimensjonene er ganske kompakte - omtrent på størrelse med tommelen på hånden.
Det tredje mest populære styret er Arduino Pro Mini, den har ikke en USB-port for tilkobling til en datamaskin, jeg vil fortelle deg hvordan du kommuniserer litt senere.

Arduino Nano vs Pro Mini Size Comparison
Dette er det minste styret av alle vurderte, ellers ligner det de to foregående, og Atmega328 er fortsatt hjertet. Vi vil ikke vurdere andre tavler, siden dette er en artikkel for nybegynnere, og sammenligningen av tavler er temaet for en egen artikkel.
Arduino Pro Mini pinout, i den øvre delen, USB-UART-tilkoblingsskjemaet, stift “GRN” - er koblet til mikrokontrollerens tilbakestillingskrets, kan det kalles annerledes, som du trenger å finne ut senere.
resultater:
Hvis UNO er praktisk for prototyping, er Nano og Pro Mini praktisk for de endelige versjonene av prosjektet, fordi de tar liten plass.

Hvordan koble Arduino til en datamaskin?
Arduino Uno og Nano kobles til en datamaskin via USB. Samtidig er det ingen maskinvarestøtte for USB-porten, her brukes en kretsløsning for nivåkonvertering, vanligvis kalt USB-til-seriell eller USB-UART (rs-232). Samtidig blinkes en spesiell Arduino-startlaster inn i mikrokontrolleren, som gjør det mulig å blinke på disse bussene.
I Arduino Uno implementeres denne ligaturen på en mikrokontroller med USB-støtte - ATmega16U2 (AT16U2). Det viser seg at den ekstra mikrokontrolleren på brettet er nødvendig for å blinke hovedmikrokontrolleren.
I Arduino Nano implementeres dette av FT232R-brikken, eller dens analoge CH340. Dette er ikke en mikrokontroller - det er en nivåomformer, dette faktum gjør det enkelt å montere Arduino Nano fra bunnen av med egne hender.
Drivere blir vanligvis installert automatisk når Arduino-kortet er tilkoblet. Men da jeg kjøpte en kinesisk kopi av Arduino Nano, ble enheten gjenkjent, men den fungerte ikke, et rundt klistremerke med data på utgivelsesdatoen ble limt på omformeren, jeg vet ikke om det ble gjort med vilje, men etter å ha skrelt av det så jeg merkingen CH340.
Før dette møtte jeg ikke dette og tenkte at alle USB-UART-omformere var satt sammen på FT232, jeg måtte laste ned drivere, de er veldig enkle å finne på forespørsel fra “Arduino ch340 driver”. Etter en enkel installasjon - det fungerte!
Gjennom den samme USB-porten kan også mikrokontrolleren drives, dvs. Hvis du kobler den til adapteren fra en mobiltelefon, fungerer systemet ditt.
Hva skal jeg gjøre hvis brettet mitt ikke har USB?
Arduino Pro Mini er mindre. Dette ble oppnådd ved å fjerne USB-kontakten for firmware og den samme USB-UART-omformeren. Derfor må den kjøpes separat. Den enkleste omformeren på CH340 (den billigste), CPL2102 og FT232R, for salg koster fra $ 1.
Når du kjøper, må du huske på hvilken spenning denne adapteren er designet for. Pro mini er tilgjengelig i versjoner 3.3 og 5 V, en jumper er ofte plassert på omformerne for å skifte forsyningsspenning.

Når du blinker Pro Mini, rett før den starter, må du klikke på RESET, men i omformere med DTR trenger du ikke å gjøre dette, tilkoblingsskjemaet i figuren nedenfor.

De får selskap av spesielle terminaler "Mama-Mama" (kvinnelig-kvinnelig).

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

Hvordan skrive programmer for Arduino?
For å jobbe med skisser (navnet på firmware er på språket til arduino), er det et spesielt integrert miljø for å utvikle Arduino IDE, du kan laste den ned gratis fra den offisielle nettsiden eller fra en hvilken som helst temaressurs, vanligvis er det ingen problemer med å installere den.
Slik ser programgrensesnittet ut. Du kan skrive programmer på det forenklede C AVR-språket som er spesielt utviklet for arduino, faktisk er det et sett med biblioteker som heter Wiring, samt i ren C AVR. Å bruke den letter koden og fremskynder arbeidet.
Øverst i vinduet er det en kjent meny der du kan åpne filen, innstillinger, velge brettet du jobber med (Uno, Nano og mange, mange andre) og også åpne prosjekter med ferdige kodeeksempler. Nedenfor er et sett med knapper for å jobbe med firmware, tastene du vil se på figuren nedenfor.

Nederst i vinduet er et område for å vise informasjon om prosjektet, statusen til koden, firmware og tilstedeværelsen av feil.
Grunnleggende om programmering av Arduino IDE
I begynnelsen av koden må du deklarere variabler og koble til flere biblioteker, hvis de finnes, gjøres dette som følger:
#include biblioteka.h; // koble biblioteket med navnet "Biblioteka.h"
#definere peremennaya 1234; // Erklær en variabel med en verdi av 1234
Kommandoen Define lar kompilatoren velge typen variabel, men du kan stille den manuelt, for eksempel et heltall eller en flytende punkt.
int led = 13; // opprettet variabelen "ledet" og tildelt den verdien "13"
Programmet kan bestemme pinnens tilstand som 1 eller 0. 1 er en logisk enhet, hvis pinne 13 er 1, vil spenningen på det fysiske benet være lik forsyningsspenningen til mikrokontrolleren (for arduino UNO og Nano - 5 V)
Det digitale signalet blir spilt inn ved hjelp av digitalWrite-kommandoen (pin, value), for eksempel:
digitalWrite (ledet, høyt); // skriv enheten til pinne 13 (vi kunngjorde den ovenfor) logg. Unit.
Som du kan forstå, er tilgangen til portene ved å nummerere på tavlen, tilsvarende figur. Her er et eksempel som ligner på forrige kode:
digitalWrite (13, høy); // sett pinne 13 til en
Ofte blir den ettertraktede tidsforsinkelsesfunksjonen kalt av kommandoen for forsinkelse (), hvis verdi er angitt i millisekunder, mikrosekunder oppnås ved å bruke
forsinkelse Mikrosekunder () Forsinkelse (1000); // mikrokontroller vil vente 1000 ms (1 sekund)
Portinnstillingene for inn- og utdata er angitt i tomromset {} -funksjonen, med kommandoen:
ugyldig oppsett () {
pinMode (NOMERPORTA, OUTPUT / INPUT); // argumenter - variabelt navn eller portnummer, input eller output å velge mellom
}
Void loop {}
Forstå det første Blink-programmet
Som en slags "Hei, verden" for mikrokontrollere, er det et LED-blinkende program, la oss analysere koden:
I begynnelsen, med pinMode-kommandoen, ba vi mikrokontrolleren om å tilordne en port med en LED til utgangen.Du har allerede lagt merke til at koden ikke erklærer variabelen “LED_BUILTIN”, faktum er at i Uno, Nano og andre brett fra fabrikken er den innebygde LED-en koblet til pinne 13 og den er loddet til brettet. Det kan brukes av deg for indikasjon i prosjektene dine eller for enkleste sjekk av dine blinkende programmer.
Deretter setter vi utgangen som LED-enheten er loddet til enhet (5 V), den neste linjen får MK til å vente 1 sekund, og setter deretter LED_BUILTIN-pinnen til null, venter et sekund og programmet gjentar seg i en sirkel, så når LED_BUILTIN er 1 - LED ( og eventuell annen belastning koblet til porten) er slått på når den er 0 slått av på 0.
Fungerer alt og alt er klart? Så gå videre!
Vi leser verdien fra den analoge porten og bruker leste data
Atmega328 AVR-mikrokontrolleren har en innebygd 10-bit analog-digital omformer. 10-biters ADC lar deg lese spenningsverdien fra 0 til 5 volt, i trinn på 1/1024 av hele amplitudeområdet til signalet (5 V).
For å gjøre det tydeligere, vurder situasjonen, antar at spenningsverdien ved den analoge inngangen er 2,5 V, da vil mikrokontrolleren lese verdien fra pinnen "512" hvis spenningen er 0 - "0", og hvis 5 V - (1023). 1023 - fordi tellingen går fra 0, d.v.s. 0, 1, 2, 3 osv. opp til 1023 - totalt 1024 verdier.
Slik ser det ut i koden, og bruk standardskissen “analogInput” som eksempel
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
ugyldig oppsett () {
pinMode (ledPin, OUTPUT);
}
void loop () {
sensorValue = analogRead (sensorPin);
digitalWrite (ledPin, HIGH);
forsinkelse (sensorValue);
digitalWrite (ledPin, LOW);
forsinkelse (sensorValue);
}

Koblingsskjemaet til potensiometeret til Arduino, analogt, den sentrale utgangen du kan koble til hvilken som helst analog inngang.
Angi variabler:
-
Ledpin - tilordne en pinne med en innebygd LED til utgangen og gi et individuelt navn;
-
sensorPin - analog inngang, sett deretter til merkingen på tavlen: A0, A1, A2, etc.;
-
sensorValue - en variabel for lagring av en heltal leseverdi og videre arbeid med den.
Koden fungerer slik: sensorValue lagre den analoge verdien som er lest med sensorPin (analogRead-kommando). - her slutter arbeidet med det analoge signalet, da er alt som i forrige eksempel.
Vi skriver enheten i ledPin, lysdioden slås på og venter en tid lik verdien av sensorValue, d.v.s. fra 0 til 1023 millisekunder. Slå av lysdioden og vent igjen i denne perioden, hvoretter koden gjentas.
Således, ved å plassere potensiometeret, setter vi blinkende frekvens på LED.
Kartfunksjon for Arudino
Ikke alle funksjoner for aktuatorer (jeg vet ikke) støtter “1023” som et argument, for eksempel er servoen begrenset av rotasjonsvinkelen, det vil si med en halv omdreining (180 grader) (halv omdreining) for servomotoren, maksimal argument for funksjonen er “180”
Nå om syntaks: kart (verdien vi oversetter er minimum inngangsverdi, maksimal inngangsverdi, minimum utgangsverdi, maksimal utgangsverdi).
I kode ser det slik ut:
(kart (analogRead (pott), 0, 1023, 0, 180));
Vi leser verdien fra potensiometeret (analogRead (pot)) fra 0 til 1023, og ved utgangen får vi tall fra 0 til 180
Verdikartverdier:
-
0=0;
-
1023=180;
I praksis bruker vi dette på arbeidet med den samme servokoden, ta en titt på koden med Arduino IDE, hvis du leser de forrige avsnittene nøye, trenger det ikke forklaring.

Og tilkoblingsskjemaet.

Konklusjoner Arduino er et veldig praktisk verktøy for å lære å jobbe med mikrokontrollere. Og hvis du bruker ren C AVR, eller som det noen ganger kalles "Pure C", vil du redusere kodevekten betydelig og passe mer i mikrokontrollerens minne, som et resultat, vil du få et utmerket fabrikkprodusert feilsøkingskort med USB-firmware.

Forfatterens mening:
Jeg liker arduino. Det er synd at mange erfarne mikrokontroller-programmerere kritiserer det urimelig, at det er for forenklet. I prinsippet er det bare språket som er forenklet, men ingen tvinger deg til å bruke det, pluss at du kan blinke mikrokontrolleren gjennom ICSP-kontakten og fylle ut koden du ønsker uten noen startlastere du ikke trenger.
For de som vil spille med elektronikk, som en avansert konstruktør, er det perfekt, men for erfarne programmerere vil et brett som ikke krever montering også være nyttig!
Hvis du vil ha mer informasjon om Arduino og funksjonene i bruken av dem i forskjellige ordninger, se e-boken -Arduino for dummies. Illustrert praktisk guide.
Se også på elektrohomepro.com
: