Categorias: Artigos em destaque » Eletrônica prática
Número de visualizações: 67360
Comentários sobre o artigo: 7

Conectando e programando o Arduino para iniciantes

 

Estudar microcontroladores parece complicado e incompreensível? Antes do aparecimento de Arudino, realmente não era fácil e exigia um certo conjunto de programadores e outros equipamentos.


O que é um Arduino?

Este é um tipo de construtor eletrônico. O objetivo inicial do projeto é permitir que as pessoas aprendam facilmente como programar dispositivos eletrônicos, enquanto dedicam um tempo mínimo à parte eletrônica.

A montagem dos circuitos mais complicados e a conexão das placas podem ser realizadas sem ferro de soldar e com a ajuda de jumpers com conexões destacáveis ​​"pai" e "mãe". Dessa forma, tanto os anexos quanto as placas de expansão podem ser conectadas, o que, no léxico dos arduinistas, é chamado simplesmente de "Escudos".

O que é o Arduino?

Qual é a primeira placa Arduino a comprar para um novato?

A placa base e mais popular é considerada Arduino uno. Essa taxa se assemelha a um cartão de crédito. Bem grande. A maioria dos escudos que estão à venda são perfeitos para ela. Existem soquetes na placa para conectar dispositivos externos.

Arduino uno

Nas lojas domésticas para 2017, seu preço é de cerca de 4-5 dólares. Nos modelos modernos, Atmega328 é o seu coração.

Arduino uno

Imagem da placa Arduino e decodificação de função de cada pino, pinagem do Arduino UNO

O microcontrolador nesta placa é um chip longo no pacote DIP28, o que indica que possui 28 pernas.

O próximo conselho mais popular custa quase duas vezes mais barato que o anterior - 2 a 3 dólares. Este é o conselho Arduino nano. As placas reais são construídas pelo mesmo Atmega328, são funcionalmente semelhantes ao UNO, existem diferenças de tamanhos e uma solução compatível com USB, mais sobre isso mais tarde. Outra diferença é que são fornecidos plugues para conectar os dispositivos à placa, na forma de agulhas.

Arduino nano

O número de pinos (pernas) desta placa é o mesmo, mas você pode observar que o microcontrolador é fabricado em um pacote TQFP32 mais compacto, ADC6 e ADC7 são adicionados no caso, as outras duas pernas "extras" duplicam o barramento de força. Suas dimensões são bastante compactas - do tamanho de um polegar da sua mão.

Aruino nano pinagem 

O terceiro fórum mais popular é Arduino Pro Mini, ele não possui uma porta USB para conectar-se a um computador. Vou lhe dizer como se comunicar um pouco mais tarde.

Arduino Nano vs Pro Mini comparação de tamanho

Arduino Nano vs Pro Mini comparação de tamanho

Esta é a menor placa-mãe de todas as consideradas, caso contrário, é semelhante às duas anteriores, e o Atmega328 ainda é o seu coração. Não consideraremos outros painéis, pois este é um artigo para iniciantes, e a comparação de painéis é o tópico de um artigo separado.

Pinagem do Arduino Pro Mini, na parte superior, o diagrama de conexão USB-UART, pino “GRN” - é conectado ao circuito de redefinição do microcontrolador, podendo ser chamado de maneira diferente, que você precisará descobrir mais tarde.

Resumo:

Se o UNO for conveniente para a criação de protótipos, o Nano e o Pro Mini serão convenientes para as versões finais do seu projeto, pois ocupam pouco espaço.

Arduino para iniciantes

Como conectar o Arduino a um computador?

O Arduino Uno e o Nano se conectam ao computador via USB. Ao mesmo tempo, não há suporte de hardware para a porta USB, uma solução de circuito de conversão de nível, geralmente chamada USB-Serial ou USB-UART (rs-232), é usada aqui. Ao mesmo tempo, um carregador de inicialização especial do Arduino é inserido no microcontrolador, o que permite o uso nesses barramentos.

No Arduino Uno, essa ligadura é implementada em um microcontrolador com suporte USB - ATmega16U2 (AT16U2). Acontece que o microcontrolador adicional na placa é necessário para piscar o microcontrolador principal.

No Arduino Nano, isso é implementado pelo chip FT232R ou seu analógico CH340. Este não é um microcontrolador - é um conversor de nível, esse fato facilita a montagem do Arduino Nano do zero com suas próprias mãos.

Normalmente, os drivers são instalados automaticamente quando a placa Arduino está conectada. No entanto, quando comprei uma cópia em chinês do Arduino Nano, o dispositivo foi reconhecido, mas não funcionou, um adesivo redondo com dados da data de lançamento foi colado no conversor, não sei se foi feito de propósito, mas depois de descolá-lo, vi a marcação CH340.

Antes disso, eu não tinha encontrado isso e pensei que todos os conversores USB-UART estavam montados no FT232, tive que baixar drivers, eles são muito fáceis de encontrar mediante solicitação do "Arduino ch340 driver". Após uma instalação simples - funcionou!

Através da mesma porta USB, o microcontrolador também pode ser alimentado, ou seja, se você conectá-lo ao adaptador a partir de um telefone celular, seu sistema funcionará.


O que devo fazer se minha placa não possuir USB?

O Arduino Pro Mini é menor. Isso foi conseguido removendo o conector USB do firmware e o mesmo conversor USB-UART. Portanto, ele deve ser adquirido separadamente. O conversor mais simples do CH340 (o mais barato), CPL2102 e FT232R, para venda custa a partir de US $ 1.

Ao comprar, preste atenção para qual voltagem este adaptador foi projetado. O Pro mini está disponível nas versões 3.3 e 5 V, um jumper geralmente está localizado nos conversores para alternar a tensão de alimentação.

Arduino Pro Mini

Ao piscar o Pro Mini, pouco antes de iniciar, você deve clicar em RESET, no entanto, nos conversores com DTR, não é necessário fazer isso, o diagrama de conexão na figura abaixo.

Diagrama de conexão para firmware

Eles são unidos por terminais especiais "Mama-Mama" (mulher-mulher).

Conexão do Arduino

Na verdade, todas as conexões podem ser feitas usando esses terminais (Dupont), ambos nos dois lados, com soquetes e plugues, e em um lado do soquete e no outro plugue.

Plug

Como escrever programas para o Arduino?

Para trabalhar com esboços (o nome do firmware está no idioma do arduino), existe um ambiente integrado especial para o desenvolvimento do IDE do Arduino, você pode baixá-lo gratuitamente no site oficial ou em qualquer recurso temático, geralmente não há problemas com a instalação.

Programa para Arduino

É assim que a interface do programa se parece. Você pode escrever programas na linguagem C AVR simplificada, especialmente desenvolvida para o arduino, na verdade, é um conjunto de bibliotecas chamado Wiring, bem como no C AVR puro. Seu uso facilita o código e acelera seu trabalho.

Na parte superior da janela, há um menu familiar onde você pode abrir o arquivo, as configurações, selecionar o painel com o qual está trabalhando (Uno, Nano e muitos outros) e também abrir projetos com exemplos de código prontos. Abaixo está um conjunto de botões para trabalhar com firmware, as teclas que você verá na figura abaixo.

Interface do programa

Na parte inferior da janela, há uma área para exibir informações sobre o projeto, o status do código, o firmware e a presença de erros.


Noções básicas de programação do Arduino IDE

No início do código, você precisa declarar variáveis ​​e conectar bibliotecas adicionais, se elas existirem, isso é feito da seguinte maneira:

#include biblioteka.h; // conecte a biblioteca com o nome "Biblioteka.h"

#define peremennaya 1234; // Declara uma variável com um valor de 1234

O comando Definir permite que o compilador escolha o tipo de variável, mas você pode configurá-lo manualmente, por exemplo, um número inteiro int ou um ponto flutuante flutuante.

int led = 13; // criou a variável “led” e atribuiu a ela o valor “13”

O programa pode determinar o estado do pino como 1 ou 0. 1 é uma unidade lógica, se o pino 13 for 1, a tensão em sua perna física será igual à tensão de alimentação do microcontrolador (para arduino UNO e Nano - 5 V)

O sinal digital é gravado usando o comando digitalWrite (pino, valor), por exemplo:

digitalWrite (led, alto); // escreva a unidade no pino 13 (anunciamos acima) log. Unidades.

Como você pode entender, o acesso às portas é numerado na placa, figura correspondente. Aqui está um exemplo semelhante ao código anterior:

digitalWrite (13, alto); // coloque o pino 13 em um

Freqüentemente, a função de atraso de tempo procurado é chamada pelo comando delay (), cujo valor é definido em milissegundos, microssegundos é alcançado usando

delayMicroseconds () Atraso (1000); // microcontrolador aguarda 1000 ms (1 segundo)

As configurações de porta para entrada e saída são definidas na função void setup {}, com o comando:

configuração nula () {

pinMode (NOMERPORTA, OUTPUT / INPUT); // argumentos - nome da variável ou número da porta, entrada ou saída para escolher

}

Loop nulo {}


Compreendendo o primeiro programa Blink

Como uma espécie de "Olá, mundo" para microcontroladores, existe um programa de LED piscando, vamos analisar seu código:

No começo, com o comando pinMode, pedimos ao microcontrolador para atribuir uma porta com um LED à saída.Você já notou que o código não declara a variável “LED_BUILTIN”, o fato é que, no Uno, Nano e em outras placas da fábrica, o LED embutido é conectado ao pino 13 e é soldado à placa. Pode ser usado por você para indicação em seus projetos ou para a verificação mais simples de seus programas intermitentes.

Em seguida, configuramos a saída na qual o LED é soldado à unidade (5 V), a próxima linha faz o MK esperar 1 segundo e, em seguida, define o pino LED_BUILTIN como zero, aguarda um segundo e o programa se repete em círculo, então quando LED_BUILTIN é 1 - o LED ( e qualquer outra carga conectada à porta) é ativada quando, em 0, é desativada.

Tudo funciona e tudo está claro? Então siga em frente!



Lemos o valor da porta analógica e usamos os dados lidos

O microcontrolador Atmega328 AVR possui um conversor analógico-digital de 10 bits embutido. O ADC de 10 bits permite ler o valor da tensão de 0 a 5 volts, em incrementos de 1/1024 de toda a faixa de amplitude do sinal (5 V).

Para tornar mais claro, considere a situação, suponha que o valor da tensão na entrada analógica seja 2,5 V, então o microcontrolador lerá o valor do pino "512" se a tensão for 0 - "0" e se 5 V - (1023). 1023 - porque a contagem passa de 0, ou seja, 0, 1, 2, 3, etc. até 1023 - um total de 1024 valores.

Aqui está como fica o código, usando o esboço padrão "analogInput" como exemplo

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

configuração nula () {

pinMode (ledPin, OUTPUT);

}

loop vazio () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

atraso (sensorValue);

digitalWrite (ledPin, LOW);

atraso (sensorValue);

}

O esquema de conexão do potenciômetro ao Arduino, por analogia, a saída central que você pode conectar a qualquer entrada analógica

O esquema de conexão do potenciômetro ao Arduino, por analogia, a saída central que você pode conectar a qualquer entrada analógica.

Declarar variáveis:

  • Ledpin - atribua independentemente um pino com um LED embutido à saída e dê um nome individual;

  • sensorPin - entrada analógica, ajustada de acordo com a marcação na placa: A0, A1, A2, etc;

  • sensorValue - uma variável para armazenar um valor inteiro de leitura e continuar trabalhando com ele.

O código funciona assim: sensorValue salva o valor analógico lido com sensorPin (comando analogRead). - aqui termina o trabalho com o sinal analógico, então tudo é como no exemplo anterior.

Escrevemos a unidade em ledPin, o LED acende e aguarda um tempo igual ao valor de sensorValue, ou seja, de 0 a 1023 milissegundos. Desligue o LED e aguarde novamente por esse período de tempo, após o qual o código se repete.

Assim, pela posição do potenciômetro, configuramos a frequência de intermitência do LED.


Função de mapa para Arudino

Nem todas as funções dos atuadores (eu não conheço nenhuma) suportam "1023" como argumento, por exemplo, o servo é limitado pelo ângulo de rotação, ou seja, por meia revolução (180 graus) (meia revolução) do servo motor, o argumento máximo da função é "180"

Agora, sobre a sintaxe: map (o valor que estamos traduzindo é o valor mínimo de entrada, o valor máximo de entrada, o valor mínimo de saída, o valor máximo de saída).

No código, fica assim:

(map (analogRead (pote), 0, 1023, 0, 180));

Lemos o valor do potenciômetro (analogRead (pot)) de 0 a 1023, e na saída obtemos números de 0 a 180

Valores do mapa de valores:

  • 0=0;

  • 1023=180;

Na prática, aplicamos isso ao trabalho do mesmo código servo, dê uma olhada no código com o Arduino IDE, se você ler atentamente as seções anteriores, ele não precisará de explicação.

E o diagrama de conexão.

Diagrama de fiação

Conclusões O Arduino é uma ferramenta muito conveniente para aprender a trabalhar com microcontroladores. E se você usar o C AVR puro, ou como às vezes é chamado de "Pure C", reduzirá significativamente o peso do código e ajustará mais a memória do microcontrolador, como resultado, você obterá uma excelente placa de depuração de fábrica com firmware USB.

Arduino para iniciantes

Opinião do autor:

Eu gosto de arduino. É uma pena que muitos programadores de microcontroladores experientes o critiquem irracionalmente, porque é muito simplificado. Em princípio, apenas o idioma é simplificado, mas ninguém o obriga a usá-lo. Além disso, você pode fazer o flash do microcontrolador através do conector ICSP e preencher o código desejado sem os gerenciadores de inicialização desnecessários.

Para quem quer brincar com a eletrônica, como construtor avançado, é perfeito, mas para programadores experientes, uma placa que não requer montagem também será útil!

Para obter mais informações sobre o Arduino e os recursos de seu uso em vários esquemas, consulte o e-book -Arduino para manequins. Guia prático ilustrado.

Veja também em e.imadeself.com:

  • Métodos para ler e gerenciar portas de E / S do Arduino
  • Qual placa Arduino escolher
  • Tipos e disposição dos microcontroladores AVR
  • Microcontrolador Controle Remoto: IR Remote, Arduino, ESP8266, 433 ...
  • Conectando sensores analógicos ao Arduino, sensores de leitura

  •  
     
    Comentários:

    # 1 escreveu: Electromag | [citação]

     
     

    Que literatura sobre o código de programação você recomenda?

     
    Comentários:

    # 2 escreveu: Andrey | [citação]

     
     

    ElectromagUlli Sommer. Programação da placa do microcontrolador Arduino / Freeduino, de Jeremy Bloom. Nós estudamos Arduino. Ferramentas e Técnicas para Magia Técnica, John Boxell. Nós estudamos Arduino. 65 projetos faça você mesmo. Livros sobre Arduino no ozônio: e.imadeself.com/arduino_books.php

     
    Comentários:

    # 3 escreveu: Victor | [citação]

     
     

    Material muito interessante e emocionante, obrigado!

     
    Comentários:

    # 4 escreveu: Ural | [citação]

     
     

    Obrigado pela informação, a função "map" foi muito útil, eu me perguntava como se locomover, apenas começando a aprender brinquedos no Arduino.

     
    Comentários:

    # 5 escreveu: Dima | [citação]

     
     

    Algo que não encontro nos escudos do arduino para compartilhar no mil-std-1553b, embora nos barramentos de comp - heaps, uma interface muito popular. Pique onde você pode pesquisar-comprar.

    p.s. a data do artigo não é exibida - talvez ela tenha 10 anos e não valha a pena escrever comentários?

     
    Comentários:

    # 6 escreveu: Eremino | [citação]

     
     

    Como criar um repetidor de sinal de entrada no Arduino para 4 ou qualquer número de saídas.

    Da mesma forma, faça com 4 canais de entrada para 16 canais de saída. Nesse caso, você precisa alternar a entrada para quaisquer 4 saídas simultaneamente em cada canal de entrada.

     
    Comentários:

    # 7 escreveu: Oleg | [citação]

     
     

    Gente, me diga, onde você aprendeu a programar? Revisei muitas informações e ninguém escreveu claramente. Aqui, toda a informação não é para um iniciante, realmente não é muito claro, eufemismos. Muitas palavras foram escritas sobre as quais não há uma palavra; por exemplo, o autor escreve no início que você precisa anunciar a biblioteca e inserir #include biblioteka.h; // mas sobre essa palavra, ele não escreveu nada #include por que é possível entender tudo isso. Eu já estou com falta de paciência, ninguém pode explicar da maneira normal e, então, o que aconteceria aqui, é necessário escrever isso. Bem, é claro que é zero, mas eu tento ler, não vejo nada incompreensível, o que não explica muito supérfluo. E posso dizer que não sou um tolo estúpido, posso reparar quase todos os aparelhos eletrônicos, ou seja, sou amigo da minha cabeça, mas não o entendo porque escrevem para quem sabe, mas se esqueceram das nuances à medida que se aprofundavam nela.