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”.

Què és Arduino?

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.

Arduino uno

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.

Arduino uno

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.

Arduino nano

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à.

Pinça nano nano 

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

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.

Arduino per a principiants

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ó.

Arduino Pro Mini

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.

Diagrama de connexió per al firmware

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

Connexió Arduino

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.

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.

Programa per a Arduino

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.

Interfície del programa

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

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ó.

Diagrama de cablejat

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.

Arduino per a principiants

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:

  • Mètodes per llegir i gestionar els ports d'E / S Arduino
  • Quina junta Arduino triar
  • Tipus i ordenació de microcontroladors AVR
  • Control Remot de Microcontrolador: Comandament IR, Arduino, ESP8266, 433 ...
  • Connexió de sensors analògics a Arduino, sensors de lectura

  •  
     
    Comentaris:

    # 1 va escriure: Electromag | [cotització]

     
     

    Quina literatura recomaneu estudiar el codi de programació?

     
    Comentaris:

    # 2 va escriure: Andrey | [cotització]

     
     

    ElectromagUlli Sommer. Programació de taulers de microcontroladors Arduino / Freeduino, de Jeremy Bloom. Estudiem Arduino. Eines i tècniques per a la màgia tècnica, John Boxell. Estudiem Arduino. 65 projectes de tipus propi. Llibres sobre Arduino on ozone: electro-bg.tomathouse.com/arduino_books.php

     
    Comentaris:

    # 3 va escriure: Víctor | [cotització]

     
     

    Material molt interessant i emocionant, gràcies!

     
    Comentaris:

    # 4 va escriure: Ural | [cotització]

     
     

    Gràcies per la informació, la funció "mapa" va ser molt útil, em vaig preguntar com desplaçar-me, tot just començant a aprendre joguines a Arduino.

     
    Comentaris:

    # 5 va escriure: Dima | [cotització]

     
     

    Alguna cosa que no trobo en els escuts arduino per compartir-los a mil-std-1553b, tot i que per a autobusos informàtics - heaps, una interfície molt popular. Llança on podeu cercar-comprar.

    pàg. no es mostra la data de l'article, potser té deu anys i no hauria d'escriure comentaris?

     
    Comentaris:

    # 6 va escriure: Eremino | [cotització]

     
     

    Com es pot fer un repetidor de senyal d’entrada a Arduino per a 4 o qualsevol nombre de sortides.

    De la mateixa manera ho fem amb 4 canals d’entrada a 16 canals de sortida. En aquest cas, heu de canviar l'entrada a 4 sortides simultàniament a cada canal d'entrada.

     
    Comentaris:

    # 7 va escriure: Oleg | [cotització]

     
     

    Nois, digueu-me, on heu après a programar? Vaig revisar molta informació i ningú no va escriure amb claredat. Aquí, tota la informació no és per a un principiant, realment moltes no són clares. S’han escrit moltes paraules sobre les quals no hi ha cap paraula, per exemple, l’autor escriu al començament que haureu d’anunciar la biblioteca i introduïu #include biblioteka.h; // però sobre aquesta paraula no va escriure res #inclou per què és possible entendre tot això. Ja em falta paciència, ningú pot explicar-se de la manera normal, i expliqueu el que passaria aquí és necessari escriure això. Bé, per descomptat, és zero, però intento llegir, no veig res incomprensiblement, cosa que no explica gaire superflu. I puc dir que no sóc un ximple ximple, puc reparar gairebé qualsevol electrònica, és a dir, sóc amic amb el cap, però no ho entenc perquè escriuen els que ho saben, però se’ls va oblidar dels matisos, ja que ells mateixos hi van aprofundir.