Categories: Articles destacats » Electrònica pràctica
Nombre de visualitzacions: 67360
Comentaris sobre l'article: 7
Connexió i programació d’Arduino per a principiants
Els estudis de microcontroladors semblen complicats i incomprensibles? Abans de l’aparició d’Arudino, realment no era fàcil i requeria un determinat conjunt de programadors i altres equips.
Què és un Arduino?
Es tracta d’una mena de constructor electrònic. L’objectiu inicial del projecte és permetre a la gent aprendre fàcilment a programar dispositius electrònics, tot dedicant un temps mínim a la part electrònica.
El muntatge dels circuits més complicats i la connexió de les plaques es pot realitzar sense soldar i amb l'ajuda de saltadors amb connexions desmuntables "pare" i "mare". D’aquesta manera, es poden connectar tant fitxers adjunts com expansius, que en el lèxic dels arduinistes s’anomenen simplement “Escuts”.

Quin és el primer consell Arduino que es va comprar per a un principiant?
Es considera la junta base i més popular Arduino uno. Aquesta tarifa s’assembla a una targeta de crèdit. Bastant gran. La majoria dels escuts que estan a la venda són perfectes per a ella. Hi ha endolls a la pissarra per connectar dispositius externs.

A les botigues domèstiques del 2017, el seu preu és d’uns 4-5 dòlars. En els models moderns, Atmega328 és el seu cor.
Imatge del tauler d'Arduino i descodificació de funcions de cada passador, pinça UNO Arduino
El microcontrolador d'aquesta placa és un xip llarg del paquet DIP28, cosa que significa que té 28 potes.
El següent consell més popular costa gairebé dues vegades més barat que l’anterior - 2-3 dòlars. Aquesta és la junta Arduino nano. Les plaques reals estan construïdes pel mateix Atmega328, funcionalment són similars a UNO, les diferències de mida i la decisió de fer coincidir amb USB, més sobre això més tard. Una altra diferència és que es proporciona un connector en forma d’agulles per connectar dispositius a la placa de circuit.

El nombre de pins (potes) d’aquest tauler és el mateix, però podeu observar que el microcontrolador està format en un paquet TQFP32 més compacte, s’hi afegeixen ADC6 i ADC7 al cas, les altres dues potes “extra” dupliquen el bus d’energia. Les seves dimensions són força compactes - aproximadament la mida d’un polze de la mà.
El tercer consell més popular és Arduino Pro Mini, no té un port USB per connectar-se a un ordinador, us diré com comunicar-vos una mica més endavant.

Comparació de mides de Arduino Nano i Pro Mini
Aquest és el tauler més petit de tots els considerats, en cas contrari és similar als dos anteriors, i Atmega328 continua sent el seu cor. No considerarem altres juntes, ja que es tracta d’un article per a principiants, i la comparació de taulers és el tema d’un article a part.
Pintura Arduino Pro Mini, a la part superior, el diagrama de connexió USB-UART, pin “GRN” - està connectat al circuit de restabliment del microcontrolador, que es pot anomenar de manera diferent.
Resum:
Si UNO és convenient per a prototips, Nano i Pro Mini són convenients per a les versions finals del vostre projecte, perquè ocupen poc espai.

Com connectar Arduino a un ordinador?
Arduino Uno i Nano es connecten a un ordinador mitjançant USB. Al mateix temps, no hi ha suport de maquinari per al port USB, s'utilitza aquí una solució de circuit per a la conversió de nivell, normalment anomenada USB a Serial o USB-UART (rs-232). Al mateix temps, un carregador especial d'Arduino és colpejat al microcontrolador, que permet parpellejar en aquests autobusos.
A Arduino Uno, aquesta lligadura està implementada en un microcontrolador amb suport USB - ATmega16U2 (AT16U2). Resulta que el microcontrolador addicional del tauler és necessari per fer palpejar el microcontrolador principal.
A Arduino Nano, això està implementat pel xip FT232R, o el seu analògic CH340. No es tracta d’un microcontrolador: es tracta d’un convertidor de nivell, aquest fet facilita el muntatge de l’Arduino Nano des de zero amb les vostres pròpies mans.
Normalment, els controladors s’instal·len automàticament quan es connecta la placa Arduino. Tanmateix, quan vaig comprar una còpia xinesa de l'Arduino Nano, el dispositiu es va reconèixer, però no funcionava, es va enganxar al convertidor una etiqueta adhesiva rodona amb dades sobre la data de llançament, no sé si es va fer a propòsit, però després de pelar-la, vaig veure la marca CH340.
Abans d’això, no he trobat amb això i he pensat que tots els convertidors USB-UART estaven muntats a FT232, he de descarregar controladors, que són molt fàcils de trobar a petició del “controlador Arduino ch340”. Després d'una senzilla instal·lació, va funcionar.
A través del mateix port USB, el microcontrolador també es pot alimentar, és a dir. si el connecteu a l'adaptador des d'un telèfon mòbil, el vostre sistema funcionarà.
Què he de fer si la meva placa no té USB?
L'Arduino Pro Mini és més petit. Això es va aconseguir eliminant el connector USB del firmware i el mateix convertidor USB-UART. Per tant, s’ha de comprar per separat. El convertidor més senzill del CH340 (el més barat), CPL2102 i FT232R, té un preu de venda des d’1 €.
En comprar, fixeu-vos en quina tensió està pensat per a aquest adaptador. Pro mini està disponible en les versions 3.3 i 5 V, sovint se situa un pont sobre els convertidors per canviar la tensió d'alimentació.

Quan feu palpejar el Pro Mini, just abans de començar, heu de fer clic a RESET, però, en els convertidors amb DTR no cal que ho feu, el diagrama de connexió de la figura següent.

Se'ls uneix els terminals especials "Mama-Mama" (femení-femella).

De fet, totes les connexions es poden fer amb aquests terminals (Dupont), ambdues parts a dos costats amb endolls i amb endolls i a un costat de la presa i a l'altre endoll.

Com escriure programes per a Arduino?
Per treballar amb esbossos (el nom del firmware està en l’idioma de l’arduino), hi ha un entorn integrat especial per desenvolupar l’Arduino IDE, el podeu descarregar gratuïtament des del lloc web oficial o des de qualsevol recurs temàtic, normalment no hi ha problemes per instal·lar-lo.
Així es veu la interfície del programa. Podeu escriure programes en el llenguatge AVR C simplificat especialment desenvolupat per a arduino, de fet és un conjunt de biblioteques anomenades Cablatge, així com en C AVR pur. Utilitzar-lo facilita el codi i accelera el seu treball.
A la part superior de la finestra hi ha un menú familiar on podeu obrir el fitxer, la configuració, seleccionar el tauler amb què treballeu (Uno, Nano i molts, molts altres) i també obrir projectes amb exemples de codi preparats. A continuació es mostra un conjunt de botons per treballar amb el firmware, les tecles que podreu veure a la figura següent.

A la part inferior de la finestra hi ha una àrea per mostrar informació sobre el projecte, l’estat del codi, el firmware i la presència d’errors.
Conceptes bàsics de programació IDE de Arduino
Al principi del codi, heu de declarar les variables i connectar biblioteques addicionals, si existeixen, es fa de la manera següent:
#incloure biblioteka.h; // connecta la biblioteca amb el nom “Biblioteka.h”
#define peremennaya 1234; // Declara una variable amb un valor de 1234
L'ordre Defineix permet al compilador triar el tipus de variable, però podeu definir-lo manualment, per exemple, un int enter o un flotador en punt flotant.
int led = 13; // va crear la variable "led" i li va assignar el valor "13"
El programa pot determinar l’estat del pin com 1 o 0. 1 és una unitat lògica, si el pin 13 és 1, el voltatge de la seva cama física igualarà el voltatge d’alimentació del microcontrolador (per a arduino UNO i Nano - 5 V)
El senyal digital es registra mitjançant la comanda digitalWrite (pin, valor), per exemple:
digitalWrite (led, alt); // escriure la unitat al pin 13 (ja ho vam anunciar a sobre) registre. Unitats.
Com podeu entendre, l’accés als ports és mitjançant una numeració al tauler, xifra corresponent. A continuació, es mostra un exemple similar al codi anterior:
digitalWrite (13, alt); // fixar el pin 13 a un
Sovint s’anomena la funció de retard de temps mitjançant l’ordre delay (), el valor del qual s’estableix en mil·lisegons, i s’obtenen microsegons mitjançant
retard Microsegons () Retard (1000); // El microcontrolador esperarà 1000 ms (1 segon)
La configuració del port d'entrada i sortida es defineix en la funció void setup {}, amb la comanda:
void setup () {
pinMode (NOMERPORTA, OUTPUT / INPUT); // arguments: nom de variable o número de port, entrada o sortida per triar
}
Llaç nul {}
Comprensió del primer programa de parpelleig
Com a una mena de "Hola, món" per a microcontroladors, hi ha un programa que parpelleja LED, analitzem el seu codi:
Al principi, amb la comanda pinMode, vam dir al microcontrolador que assignés un port amb un LED a la sortida.Ja heu notat que el codi no declara la variable "LED_BUILTIN", el fet és que a Uno, Nano i altres plaques de la fàbrica, el LED incorporat està connectat al pin 13 i es solda a la placa. Podeu utilitzar-lo per indicar els vostres projectes o per a la revisió més senzilla dels vostres programes intermitents.
A continuació, establim la sortida a la qual el LED es solda a la unitat (5 V), la següent línia fa que el MK esperi 1 segon, i després estableix el pin LED_BUILTIN a zero, espera un segon i el programa es repeteix en cercle, de manera que quan LED_BUILTIN és 1 - el LED ( i qualsevol altra càrrega connectada al port) està activada, quan a 0 es desactiva.
Tot funciona i tot està clar? Després, endavant!
Llegim el valor del port analògic i fem servir les dades llegides
El microcontrolador AVR Atmega328 té un convertidor analògic-digital digital de 10 bits integrat. L'ADC de 10 bits permet llegir el valor del voltatge de 0 a 5 volts, amb increments d'1 / 1024 de tot l'amplitud del senyal (5 V).
Per fer-ho més clar, considereu la situació, suposeu que el valor de la tensió a l’entrada analògica és de 2,5 V, el microcontrolador llegirà el valor del pin "512" si la tensió és 0 - "0" i si 5 V - (1023). 1023: perquè el recompte va del 0, és a dir. 0, 1, 2, 3, etc. fins a 1023: un total de 1024 valors.
A continuació, es mostra com s'explica el codi utilitzant com a exemple l'esbós estàndard "analogInput"
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
void setup () {
pinMode (ledPin, OUTPUT);
}
void loop () {
sensorValue = analogRead (sensorPin);
digitalWrite (ledPin, HIGH);
retard (sensorValue);
digitalWrite (ledPin, LOW);
retard (sensorValue);
}

L’esquema de connexió del potenciòmetre a Arduino, per analogia, la sortida central que podeu connectar a qualsevol entrada analògica.
Declarar variables:
-
Ledpin: assigna independentment un pin amb un LED incorporat a la sortida i dóna un nom individual;
-
sensorPin - entrada analògica, ajustada en funció del marcatge a la placa: A0, A1, A2, etc .;
-
sensorValue: una variable per emmagatzemar un valor de lectura íntegre i treballar amb ell.
El codi funciona així: sensorValue guarda el valor analògic llegit amb sensorPin (comandament analogRead). - aquí el treball amb el senyal analògic s’acaba, llavors tot és com a l’exemple anterior.
Escrivim la unitat en ledPin, el LED s’encén i esperem un temps igual al valor del sensorValue, és a dir. de 0 a 1023 mil·lisegons. Apagueu el LED i espereu de nou aquest període de temps després del qual es repeteix el codi.
Així, mitjançant la posició del potenciòmetre, establim la freqüència de parpelleig del LED.
Funció del mapa d'Arudino
No totes les funcions dels actuadors (no en conec) suporten "1023" com a argument, per exemple, el servo està limitat per l'angle de gir, és a dir, per mitja revolució (180 graus) (mitja revolució) del servo motor, l'argument màxim de la funció és "180".
Ara sobre la sintaxi: mapa (el valor que estem traduint és l’entrada mínima, l’entrada màxima, la sortida mínima, la sortida màxima).
En codi, es veu així:
(mapa (analogRead (pot)), 0, 1023, 0, 180));
Llegim el valor del potenciòmetre (analogRead (pot)) de 0 a 1023, i a la sortida obtenim números de 0 a 180
Valors del mapa de valor:
-
0=0;
-
1023=180;
A la pràctica, apliquem això al treball del mateix codi servo, mireu el codi amb l'ID Arduino, si llegiu atentament les seccions anteriors, no requereix cap explicació.

I el diagrama de connexió.

Conclusions Arduino és una eina molt convenient per aprendre a treballar amb microcontroladors. I si utilitzeu AVR pur C, o com de vegades s'anomena "Pure C", reduireu significativament el pes del codi i s'adaptarà més a la memòria del microcontrolador, per tant, obtindreu una excel·lent placa de depuració feta amb fàbric USB.

Opinió de l’autor:
M'agrada arduino. És una llàstima que molts programadors experimentats de microcontroladors ho critiquen de manera raonable, que sigui massa simplificat. En principi, només se simplifica el llenguatge, però ningú no t’obliga a utilitzar-lo, a més pots fer flash el microcontrolador a través del connector ICSP i emplenar el codi que vulguis sense els carregadors d’arrencada que no necessitis.
Per a aquells que vulguin jugar amb l'electrònica, com a constructor avançat, és perfecte, però per als programadors experimentats, també serà útil un tauler que no requereixi muntatge!
Per obtenir més informació sobre Arduino i les característiques del seu ús en diversos esquemes, vegeu el llibre electrònic -Arduino per maniquins. Guia pràctica il·lustrada.
Consulteu també a electro-ca.tomathouse.com
: