Básico - Projeto 00
Usando o Arduino pela primeira vez
Objetivo
Instruir os iniciantes no mundo da eletrônica e da prototipagem sobre como utilizar a plataforma do Arduino. O artigo apresentará uma visão geral da plataforma do Arduino e suas peculiaridades técnicas, ensinará como instalar o IDE do Arduino, mostrará a estrutura básica de programação do IDE e exemplificará sua utilização com um projeto simples, como o blink porta 13.
O objetivo final é incentivar os iniciantes a se interessarem pela plataforma Arduino e proporcionar uma base sólida para que possam explorar e criar seus próprios projetos no futuro.
Observação: é importante mencionar que existem várias placas de Arduino disponíveis no mercado, cada uma com suas especificidades e recursos. No entanto, para simplificar o artigo e ajudar os iniciantes a se familiarizarem com a plataforma, podemos nos concentrar em uma das placas mais populares e acessíveis, como a Arduino UNO. Dessa forma, os leitores podem se sentir mais confiantes ao seguir as instruções e exemplos apresentados no artigo.
Aplicação
Para fins didáticos e projetos gerais com Arduino.
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Arduino UNO R3 |
Arduino UNO |
1 |
|
Você poderá utilizar uma placa Arduino UNO original ou similar
|
Breve apresentação da plataforma Arduino
O que é Arduino?
Arduino é uma plataforma eletrônica de prototipagem baseada em hardware e software de código aberto (open source). Ela permite que os usuários criem dispositivos interativos e inteligentes usando componentes eletrônicos simples e uma linguagem de programação fácil de aprender.
O Arduino é amplamente utilizado por entusiastas, profissionais e estudantes de engenharia e programação em todo o mundo para criar projetos e sistemas eletrônicos de todos os tipos. Com o Arduino, é possível criar desde projetos simples, como um semáforo de trânsito, até projetos mais complexos, como robôs autônomos, sistemas de automação residencial e até mesmo instrumentos musicais.
O Arduino foi criado em 2005, na Itália, por um grupo de 5 pesquisadores: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis, com o objetivo de desenvolver uma ferramenta adaptável e de baixo custo para servir como base em seus projetos educacionais interativos. (Wikipédia)
A facilidade de uso do Arduino, juntamente com sua flexibilidade e versatilidade, tornam-no uma ferramenta ideal para iniciantes que desejam aprender eletrônica e programação. Além disso, sua baixa complexidade permite que até mesmo crianças possam se envolver em projetos educacionais, despertando o interesse em áreas STEM (Ciência, Tecnologia, Engenharia e Matemática).
A plataforma é composta por uma placa controladora (hardware), que pode ser programada para realizar diversas funções, e um ambiente de desenvolvimento integrado (IDE) (Software) que permite a criação de programas para essa placa de forma simples e intuitiva.
Com a possibilidade de utilizar diversos tipos de sensores, atuadores e componentes eletrônicos, o Arduino pode ser utilizado para criar desde projetos simples, como um semáforo inteligente, até projetos complexos, como robôs autônomos, sistemas de controle e automação de processos, entre outros. Isso faz com que o Arduino seja uma plataforma de grande importância para a eletrônica e programação, tanto para profissionais quanto para amadores.
Características técnicas do Arduino UNO R3 (Hardware)
Placa Arduino UNO R3: O Arduino UNO R3 (terceira revisão) é uma placa microcontroladora baseada no microcontrolador ATmega 328. Ela tem 14 pinos I/O (Input/Output) digitais, 6 entradas analógicas, um oscilador de 16 MHz (cristal), uma conexão USB, uma entrada de alimentação (conector Jack), um header ICSP, e um botão de reset. Ela contém tudo o que é necessário para o suporte do microcontrolador, ligando-a simplesmente a um computador através de um cabo USB, ou alimentando-a com um adaptador AC/AD (ou bateria) para iniciar.
Características Gerais:
Microcontrolador |
ATmega328 |
Tensão Operacional |
5V |
Tensão de entrada (recomendada) |
7-12V |
Tensão de entrada (limites) |
6-20V |
Pinos E/S digitais |
14 (dos quais 6 podems ser saídas PWM) |
Pinos de entrada analógica |
6 |
Corrente Contínua (CC) por pino E/S |
40 mA |
Corrente Contínua (CC) para o pino 3,3V |
50 mA |
Flash Memory |
32 KB (ATmega328) dos quais 0,5KB são utilizados pelo bootloader |
SRAM |
2 KB (ATmega328) |
EEPROM |
1 KB (ATmega328) |
Velocidade de Clock |
16 MHz |
Alimentação da placa Arduino UNO:
Corrente Contínua (CC)
O Arduino UNO opera com corrente contínua (CC), pois a energia fornecida pelas portas USB ou pelo conector de alimentação é proveniente de fontes de corrente contínua, como baterias ou adaptadores de energia.
Ao contrário da corrente alternada (CA), que é comumente usada nas tomadas domésticas, a corrente contínua mantém uma direção constante. Isso é particularmente útil em muitas aplicações eletrônicas, pois muitos dos componentes eletrônicos, como LEDs e transistores, funcionam melhor com corrente contínua.
Essa característica facilita a integração do Arduino UNO em projetos eletrônicos, onde a estabilidade e da direção da corrente e tensão elétrica e é uma consideração importante.
Conexão USB (pelo computador)
O Arduino Uno pode ser alimentado pela conexão USB ou com uma fonte de alimentação externa. A conexão USB é responsável também pela para comunicação com o computador. É por meio da USB que você vai carregar um programa na memória do Arduino.
Quando você alimenta o Arduino através da conexão USB com o computador, a tensão de entrada no Arduino é de 5 volts (5V). A porta USB fornece essa tensão constante. É importante notar que a corrente da porta USB do computador é geralmente limitada a cerca de 500mA (0,5A). Se você precisar de mais corrente, considere uma fonte de alimentação externa.
Fonte de tensão externa
A alimentação externa é feita através do conector DC P4 (Jack), onde o valor de tensão da fonte externa deve estar entre os limites 6V a 20V, porém é altamente recomendada a utilização de uma tensão externa entre 7V e 12V. Tensões abaixo de 7V podem deixar o funcionamento da placa instável e acima de 12V podem sobreaquecer e até danificar a placa controladora.
A fonte de alimentação externa (não USB) pode ser tanto uma fonte chaveada de 7V a 12V, pilhas comuns ou baterias 9V, entre outras opções, por exemplo:
Observação: Qualquer que seja o tipo da fonte de alimentação externa escolhida, a mesma deverá contar com algum tipo de dispositivo ou suporte que inclua um conector DC P4. Isso permitirá uma conexão adequada com a placa do Arduino.
Pinos de tensão de saída da placa Arduino UNO:
Pinos de alimentação (pinos de tensão) são conectores da placa Arduino UNO que fornecem tensão (diferença de potencial elétrico) para alimentação dos circuitos e componentes eletrônicos externos. Para que esses pinos de alimentação possam fornecer energia, é necessário que a placa Arduino UNO esteja alimentada por meio de uma conexão USB ou por uma fonte de tensão externa.
São eles:
- Vin: Fornece tensão quando a placa Arduino é alimentada por uma fonte de alimentação externa. A tensão fornecida pelo pino Vin é a mesma da fonte de alimentação externa. Portanto, se a placa Arduino for alimentada por uma tensão de 12V, o pino Vin irá fornecer 12V também. É importante ter extrema atenção ao utilizar o pino Vin para alimentar outros circuitos ou componentes eletrônicos, a fim de evitar possíveis danos decorrentes de uma tensão inadequada.
- 5V: Fornece tensão contínua de 5V para alimentação dos circuitos externos, outros componentes eletrônicos e shilds (placas de expansão). Essa fonte de alimentação pode ser proveniente da conexão USB, de uma fonte externa ou mesmo do pino Vin, quando alimentamos a placa Arduino. Para manter essa tensão contínua de 5V, o Arduino utiliza um regulador de tensão interno.
- 3,3V: Fornece tensão contínua de 3,3V controlada pelo regulador de tensão interno da placa. A corrente máxima suportada é de 50mA.
- GND: Pinos terra ou "ground".
- RESET: Pino conectado a pino de RESET do microcontrolador. Pode ser utilizado para um reset externo da placa Arduino.
- IOREF: É uma espécie de "indicador" do nível de tensão de referência atual do Arduino UNO e é útil quando você está usando shields que precisam se ajustar automaticamente a diferentes níveis de tensão. Esse pino não fornece tensão, mas é usado para informar a outros dispositivos, principalmente shields (placas de expansão) conectados ao Arduino qual é o nível de tensão de referência da placa, ajustando-o automaticamente.
Memória do Arduino UNO
O componente principal da placa Arduino UNO é o microcontrolador ATMEL ATMEGA328. Ele conta 32 KB de memória flash para armazenar código (dos quais 0,5 KB são utilizados pelo bootloader), além de 2 KB de SRAM e 1 KB de EEPROM (Electrically-Erasable Programmable Read-Only Memory), que pode ser lida e escrita através da biblioteca EEPROM.
Obs.: No Arduino UNO, a memória Flash e a RAM (SRAM) são separadas por razões de arquitetura e eficiência, características típicas dos microcontroladores baseados na arquitetura Harvard, como o ATmega328P usado no Arduino UNO.
Esse microcontrolador possui, portanto, três tipos principais de memória: Flash, SRAM e EEPROM. Cada tipo de memória tem características e funções distintas, essenciais para o funcionamento do Arduino. Vamos detalhar cada um deles:
Memória Flash
A memória Flash no Arduino UNO é usada para armazenar o código do programa (o sketch) que você carrega na placa. Essa memória é não volátil, o que significa que os dados não são perdidos quando a energia é desligada.
Características:
- Capacidade: O Arduino UNO possui 32 KB de memória Flash, dos quais 0,5 KB são reservados para o "bootloader".
- Função: Armazena o código do programa carregado na placa que é executado pelo microcontrolador.
- Não volátil: Mantém os dados armazenados mesmo quando a energia é desligada.
- Escrita/Leitura: A memória Flash tem um número limitado de ciclos de escrever/apagar, em torno de 10.000 ciclos, o que é mais do que suficiente seus projetos.
O bootloader é um programa inicializador e fica armazenado em uma pequena parte da memória Flash. Seu objetivo é carregar novos sketches através da interaface USB sem a necessidade de um gravador externo. No caso do Arduino quando o ligamos a energia, ou pressionamos o botão de reset, o primeiro programa a ser executado é o bootloader.
Memória SRAM
A SRAM (Static Random Access Memory) é a memória de trabalho do microcontrolador, onde variáveis temporárias e dados de execução do programa são armazenados. Diferente da Flash, a SRAM é volátil, ou seja, os dados são perdidos quando a energia é desligada.
Características:
- Capacidade: O Arduino UNO possui 2 KB de SRAM.
- Função: Armazena variáveis temporárias, pilha de execução e buffers de dados.
- Volátil: Perde todos os dados armazenados quando a energia é desligada.
- Acesso Rápido: Acesso rápido para leitura e escrita, essencial para a execução do código.
Uso no Arduino:
- Variáveis: Todas as variáveis declaradas no seu código são armazenadas na SRAM.
- Pilha: A pilha de execução, que mantém o rastreamento das funções chamadas e variáveis locais, é armazenada na SRAM.
- Buffers: Buffers temporários de dados usados em operações como comunicação serial são armazenados na SRAM.
Memória EEPROM
A EEPROM (Electrically Erasable Programmable Read-Only Memory) é usada para armazenar dados que precisam ser preservados entre ciclos de energia. Assim como a Flash, a EEPROM é não volátil.
Características:
- Capacidade: O Arduino UNO possui 1 KB de EEPROM.
- Função: Armazena dados que precisam ser mantidos mesmo quando o microcontrolador é desligado.
- Não volátil: Mantém os dados armazenados mesmo quando a energia é desligada.
- Escrita/Leitura: Tem um número limitado de ciclos de escrita/eliminação, mas suficiente para a maioria dos projetos.
Uso no Arduino:
- Dados Persistentes: Dados como configurações do usuário, contadores ou qualquer informação que precisa ser preservada entre ciclos de energia são armazenados na EEPROM.
Estrutura de Memória do ATmega328P no Arduino UNO
Aqui está um resumo visual das diferentes memórias e suas capacidades:
Tipo de Memória |
Capacidade |
Função Principais |
Flash |
32 KB |
Armazenamento do código do programa (sketch) (30kb) / bootloader (2KB) |
SRAM |
2 KB |
Variáveis temporárias, pilha de execução, buffers. |
EEPROM |
1 KB |
Dados persistentes que precisam ser preservados. |
Entradas e Saídas do Arduino UNO
A placa Arduino UNO possui pinos de entrada e saídas digitais, assim como pinos de entradas e saídas analógicas, abaixo é exibido a "pinagem" conhecida como o padrão Arduino:
Entradas e saídas digitais
Cada um dos 14 pinos digitais (0 a 13) do Arduino pode ser configurado como entrada ou saída, o que é facilmente feito através das funções de programação pinMode(), digitalWrite(), e digitalRead(). Esses pinos operam com uma tensão de 5 volts e têm a capacidade de fornecer ou receber uma corrente máxima de 40 mA cada um. Além disso, eles possuem resistência de pull-up interna (que é desabilitada por padrão, sendo habilitada apenas por programação) com valores típicos na faixa de 50 kΩ.
Além de suas funções gerais, é importante notar que alguns pinos do Arduino têm funções específicas, incluindo:
- Serial: 0 (RX) e 1 (TX): são usados para receber (RX) e transmitir (TX) dados seriais. Eles podem ser utilizados para comunicação serial entre a placa Arduino e o computador. É importante observar que estes pinos são ligados ao microcontrolador que gerencia a comunicação USB com o computador e também são frequentemente utilizados para a comunicação com módulos externos, sensores e outros dispositivos que suportam comunicação serial.
- External Interrupts: 2 e 3: Estes pinos podem ser configurados para ativar uma interrupção quando ocorre uma mudança de valor, uma transição de baixa tensão para alta para baixa, ou seja, de 0 para 5V, denominada "rising", ou uma transição de alta para baixo (de 5V para 0V), denominada "falling". Isto será útil para usar em evnetos externos, como pulsos de sensores ou dispositivos que requerem interrupção imediata. A função attachInterrupt() pode ser usada para configurar esses pinos e definir os detalhes da interrupção, como qual função deve ser chamada quando a interrupção ocorre.
- PWM (Pulse Width Modulation): 3, 5, 6, 9, 10 e 11: Esses pinos (3, 5, 6, 9, 10 e 11) são capazes de fornecer saídas analógicas PWM de 8 bits. O PWM é uma técnica que permite controlar a intensidade luminosa de LEDs, a velocidade de motores e muitos outros dispositivos. A função analogWrite() é utilizada para controlar a largura do pulso PWM gerado por esses pinos. Essa funcionalidade é particularmente útil para criar efeitos de iluminação suave, controle de velocidade de motores, e outros cenários onde o controle analógico é necessário.
- SPI (Serial Peripheral Interface): 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Esses pinos são designados para suportar a comunicação SPI, uma interface serial de alta velocidade que é amplamente utilizada para a troca de dados entre o Arduino e dispositivos externos, como sensores, displays, cartões SD e outros microcontroladores.
- I2C (Inter-Integrated Circuit): 4 (SDA) e 5 (SCL): Esses pinos são projetados para suportar a comunicação I2C, também conhecida como TWI (Two-Wire Interface). A comunicação I2C é uma interface serial que permite que dispositivos se comuniquem entre si usando apenas dois fios: SDA (Serial Data) e SCL (Serial Clock). Ela é amplamente utilizada para conectar sensores, displays, módulos de expansão e outros dispositivos ao Arduino.
- LED (Light-Emitting Diode): 13: O pino digital 13 é notável por ter um LED já montado na placa e conectado de fábrica. Quando o pino está configurado com o valor HIGH, o LED acende, iluminando. Por outro lado, quando o valor está em LOW, o LED se apaga. Isso é útil para realizar testes rápidos e verificar a operação do seu Arduino, bem como para prototipar projetos simples que envolvem iluminação.
- AREF (Analog Reference): Este pino é uma referência de tensão para as entradas analógicas. Ele é usado em conjunto com a função analogReference() para definir a referência de tensão para as leituras analógicas feitas pelo Arduino. Ao conectar uma tensão externa a este pino, você pode calibrar as leituras analógicas para se adaptar às características específicas do seu projeto ou a sensores que operam em faixas de tensão diferentes. O pino AREF é uma ferramenta importante para obter medições precisas e personalizadas em projetos que envolvem sensores analógicos.
Entradas analógicas
O Arduino Uno oferece 6 entradas analógicas, identificadas de A0 a A5. Cada uma dessas entradas possui uma resolução de 10 bits, o que significa que elas são capazes de detectar 1024 valores diferentes. Por padrão, essas entradas estão configuradas para medir no intervalo de 0 a 5 volts (0-5V).
Por padrão elas medem de 0 a 5V, embora seja possível alterar o limite superior utilizando o pino AREF em conjunto com a função analogReference(). Essa capacidade de ajuste torna as entradas analógicas do Arduino Uno versáteis e ideais para a leitura precisa de sensores e medições personalizadas.
Observação:
Os pinos analógicos também podem ser usados como pinos digitais, e isso é uma característica útil que amplia a flexibilidade de sua placa. Para se referir a esses pinos no código, você pode usar números, tanto para as entradas digitais quanto analógicas. Por exemplo, o pino analógico A0 pode ser referenciado simplesmente como 14 quando usado como entrada digital. Da mesma forma, os pinos A0 a A5 podem ser usados como saídas digitais e referenciados de 14 a 19.
Essa capacidade de utilizar pinos analógicos como digitais é especialmente útil quando você precisa de mais pinos digitais para conectar sensores, atuadores ou outros dispositivos em seu projeto. Lembre-se de que ao usar pinos analógicos como digitais, a resolução analógica de 10 bits desses pinos não é aproveitada, mas eles podem realizar operações de entrada e saída digitais como os outros pinos digitais da placa.
ATENÇÃO: É ainda importante referir que a corrente máxima para cada pino analógico e digital é de 40 mA, com exceção da saída de 3,3 V, que permite correntes máximas de 50 mA.
Comunicação
O Arduino Uno oferece várias maneiras de se comunicar com outros dispositivos:
-
Comunicação Serial: O ATmega328 no Arduino Uno suporta comunicação serial UART TTL a 5V, que é acessível pelos pinos digitais 0 (RX) e 1 (TX). O Arduino também inclui um monitor serial para enviar e receber dados textuais da placa, com LEDs nos pinos RX e TX indicando a transmissão de dados.
-
Comunicação Serial em Outros Pinos: A biblioteca SoftwareSerial permite a comunicação serial em qualquer um dos pinos digitais do Arduino Uno, o que amplia as opções de comunicação.
-
Comunicação I2C (TWI) e SPI: O ATmega328 suporta comunicação I2C e SPI. O Arduino oferece bibliotecas, como a "Wire" para I2C e a "SPI" para SPI, que simplificam a implementação dessas interfaces para conectar sensores, dispositivos e outros microcontroladores.
Essas capacidades de comunicação tornam o Arduino Uno uma plataforma versátil para projetos que envolvem troca de dados com outros dispositivos, seja por meio de conexão serial, I2C ou SPI.
Leds de Sinalização
O Arduino Uno possui alguns LEDs de sinalização que desempenham funções importantes. Aqui está a descrição dos principais LEDs de sinalização no Arduino Uno:
-
LED de Alimentação ON (Power LED): Este LED está localizado próximo à porta de alimentação da placa (geralmente, a porta USB). Ele indica que a placa Arduino está recebendo energia. Quando a placa está ligada, este LED permanece aceso.
-
LED de Comunicação (TX e RX): Existem dois LEDs de comunicação no Arduino Uno - TX (Transmitir) e RX (Receber). Esses LEDs piscam quando ocorre comunicação serial entre o Arduino e um computador ou outro dispositivo. O LED TX pisca quando o Arduino envia dados, enquanto o LED RX pisca quando o Arduino recebe dados.
-
LED de Estado (L): O LED de estado (L) está conectado ao pino digital 13 do Arduino Uno. Este LED é frequentemente usado para testes simples e exemplos de código. Quando o pino 13 é configurado para "HIGH" no código, o LED L acende; quando é configurado para "LOW," o LED apaga. É útil para verificar rapidamente se o Arduino está funcionando corretamente.
Esses LEDs de sinalização são valiosos para monitorar o funcionamento do Arduino e podem ser úteis para depuração e diagnóstico de problemas em projetos. Eles fornecem feedback visual sobre o estado e a atividade da placa, facilitando o desenvolvimento e o teste de projetos eletrônicos.
Proteção de sobrecarga
O Arduino Uno possui um fusível para proteger a porta USB do seu computador contra curtos-circuitos. Embora a maioria dos computadores possuírem proteção interna própria, o fusível fornece uma proteção extra. Se uma corrente superior a 500 mA for aplicada na porta USB, o fusível irá interromper automaticamente a conexão até que o curto-circuito ou a sobrecarga seja corrigido.
Programação (Software)
O Arduino pode ser programado usando o software Arduino IDE (download gratuito).
O software Arduino é uma IDE (Integrated Drive Eletronics, ou Ambiente de Desenvolvimento Integrado) que pode ser executado em um computador e é usado para criar o código de programação, conhecido como sketch. O sketch (código de programação) contém as instruções que serão carregadas para a placa Arduino por meio de comunicação serial. Portanto, o scketch, criado pelo projetista, determina as ações que a placa Arduino deve executar durante o seu funcionamento.
A instalação do Arduino IDE pode ser feita nos ambientes operacionais Windows, macOS e Linux, tornando-o acessível a uma ampla gama de usuários. A instalação do software é bastante simples e intuitivo, mas se você tiver dúvidas sobre como fazê-la, recomendamos a leitura do Guia rápido sobre como instalar o IDE 2 em seu sistema operacional ou Como conectar o Arduino no seu computador Windows e rodar o seu primeiro programa.
O Arduino IDE suporta uma linguagem baseada em C/C++ e oferece uma série de bibliotecas e exemplos de código para ajudar os usuários a criarem seus projetos. O ambinete de desenvolvimento inclui um editor de código com destaque de sintaxe, ferramentas de compilação e carregamento de firmware, bem como um monitor serial.
Observações:
Firmware refere-se ao software que é carregado na memória do microcontrolador da placa Arduino para controlar seu funcionamento.
O ATmega328 no Arduino vem pré-gravado com um bootloader que permite enviar novos programas (sketches) sem o uso de um programador de hardware externo. Também poder-se-á programar o ATmega328 através do ICSP header (In-Circuit Serial Programming) em projetos avançados.
O monitor serial é o elo entre o computador e o seu Arduino. Com ele você pode enviar e receber informações na forma de texto, útil para depuração e também para controlar o Arduino pelo teclado do PC.
Arduino IDE 2.0 (versão atual) é uma plataforma de desenvolvimento de código aberto, cujo o seu código-fonte está hospedado no GitHub.
Além disso, o Arduino IDE é altamente modular e expansível, permitindo que você adicione bibliotecas personalizadas e integre facilmente módulos externos para atender às necessidades específicas do seu projeto. Com sua interface intuitiva e recursos poderosos, o Arduino IDE é a principal ferramenta para programar e desenvolver projetos em Arduino.
Ciclo de programação do Arduino
O ciclo de programação do Arduino pode ser dividido nas seguintes etapas:
1. Acessar o IDE: Abrir o software Arduino IDE no computador.
2. Escrever o Sketch: Essa etapa envolve a criação do código do programa, conhecido como sketch. Você usa o Arduino IDE para escrever o código que define o comportamento da placa.
3. Conexão USB: Conecte o cabo USB do Arduino no seu computador, caso ainda não esteja conectado.
4. Verificar o Sketch: Antes de carregar o sketch na placa Arduino, você pode usar a função "Verificar" no Arduino IDE para garantir que não haja erros de sintaxe no código. Isso ajuda a identificar problemas decorrentes da configuração e da programação.
5. Carregar o Sketch: Após a verificação bem-sucedida, você pode carregar o sketch na placa Arduino, usando a função "Carregar". Isso é feito através de uma conexão USB, que transfere o código para o microcontrolador na placa.
6. Executar o Sketch: Uma vez que o sketch é carregado na placa, o Arduino executa o código, seguindo as instruções programadas. Ele interage com sensores, atuadores e outros dispositivos externo conforme especificado no código.
7. Monitorar a Saída: Você pode usar o monitor serial no Arduino IDE para monitorar a saída do sketch. Isso é útil para depurar o código e observar as informações geradas pelo programa.
8. Modificar e Iterar: Com base na saída e no desempenho do seu projeto, você pode fazer alterações no código do sketch, se necessário. Essa é uma parte fundamental do processo de desenvolvimento, que envolve testar, modificar e iterar até obter o comportamento desejado.
9. Salvar: Após carregar um sketch no Arduino, você pode salvar uma cópia do código no seu computador através do IDE do Arduino. Isso é útil para manter um backup do seu trabalho e para futuras edições ou modificações.
Atenção:
Após carregar o Arduino com um sketch (programa), não é mais necessário manter a conexão USB, a menos que você precise alterar o programa novamente. O sketch fica armazenado na memória flash do Arduino, permitindo que ele execute o código de forma autônoma.
Para alimentar o Arduino, você pode usar outras fontes de energia, como baterias, adaptadores de corrente contínua ou uma fonte de alimentação externa de 6V a 12V, como já mencionamos anteriormente, garantindo que o microcontrolador continue funcionando e executando o programa carregado.
Essas etapas formam o ciclo de programação do Arduino e permitem que você desenvolva e teste projetos eletrônicos de maneira iterativa e eficaz.
Base de programação do Arduino
Aqui estão alguns dos principais elementos da base de programação do Arduino:
-
Sketch: Um sketch é o nome dado a um programa escrito para o Arduino. É um conjunto de instruções em linguagem C/C++ que define o comportamento do Arduino.
-
Variáveis: Variáveis são usadas para armazenar dados e valores no Arduino. Elas podem ser de diferentes tipos, como int (inteiro), float (número decimal), boolean (verdadeiro/falso) e outros.
-
Estruturas de Controle: O Arduino suporta estruturas de controle como loops (for, while) e condicionais (if, else) para controlar o fluxo do programa.
-
Funções: Funções são blocos de código que realizam tarefas específicas. O Arduino inclui funções embutidas e você pode criar suas próprias funções para modularizar o código.
-
Pinos e Portas: No Arduino, você interage com dispositivos externos (sensores, atuadores) por meio dos pinos digitais e analógicos. Você pode configurar os pinos como entrada ou saída e ler ou escrever dados neles.
-
Bibliotecas: O Arduino oferece bibliotecas que simplificam a programação de hardware específico. Essas bibliotecas fornecem funções e métodos predefinidos para controlar sensores, displays, motores e outros componentes.
-
Comunicação Serial: O Arduino suporta a comunicação serial com outros dispositivos, como um computador, usando as funções Serial.begin(), Serial.print(), Serial.read(), entre outras.
-
Temporização: Você pode usar funções de temporização, como delay() e millis(), para criar atrasos e controlar a sincronização de eventos.
-
Interrupções: O Arduino permite a configuração de interrupções em pinos específicos para lidar com eventos externos, como pulsos de sensores.
-
Leitura de Sensores: Sensores são amplamente utilizados no Arduino para capturar informações do ambiente. Você pode ler dados de sensores analógicos e digitais para tomar decisões com base nas informações coletadas.
-
Saída para Atuadores: O Arduino pode controlar atuadores, como motores, luzes e displays, enviando sinais para os pinos de saída.
-
Depuração: O monitor serial no Arduino IDE é uma ferramenta valiosa para depurar e monitorar a saída do programa.
Estrutura base da programação do Arduino
A estrutura base da programação do Arduino segue um padrão geral. Aqui está a estrutura típica de um programa Arduino (exemplo):
// Declaração de variáveis e constantes
int pinLED = 13; // Exemplo de declaração de variável
// Inicializações iniciais
void setup() {
pinMode(pinLED, OUTPUT); // Configura o pino do LED como saída
Serial.begin(9600); // Inicia a comunicação serial (opcional)
}
// Código a ser executado repetidamente
void loop() {
// Leitura de sensores, tomada de decisões e controle de atuadores
digitalWrite(pinLED, HIGH); // Liga o LED
delay(1000); // Aguarda 1 segundo
digitalWrite(pinLED, LOW); // Desliga o LED
delay(1000); // Aguarda 1 segundo
}
Onde:
-
Declaração de Variáveis e Constantes: No início do programa, você declara as variáveis que serão usadas, como pinos, valores e outras informações. Você também pode definir constantes.
-
setup(): A função setup() é chamada uma vez no início da execução do programa. É usada para realizar inicializações, como configurar pinos, iniciar a comunicação serial e outras tarefas de configuração.
-
loop(): A função loop() é o coração do programa. O código dentro desta função é executado repetidamente enquanto o Arduino estiver ligado, a menos que exista um motivo específico para interromper sua execução. Aqui, você lê sensores, toma decisões com base nas leituras, controla atuadores e realiza outras ações. um motivo específico para interromper sua execução.
Observação: Note que, nestas duas funções, a palavra reservada void indica que as funções setup() e loop() não apresentam um valor de retorno, sendo usadas exclusivamente para realizar a execução de um conjunto de instruções.
A estrutura base de um programa Arduino é simples, mas permite a execução de tarefas complexas. Você pode criar projetos mais avançados adicionando lógica condicional, funções personalizadas e interagindo com bibliotecas para expandir a funcionalidade do seu programa. A simplicidade do Arduino é uma das razões pelas quais é tão popular para projetos de eletrônica e robótica.
Dicas da linguagem C/C++
1. Na Linguagem C/C++, letras maiúsculas, minúsculas e conjuntos de palavras fazem a diferença (case sensitive). Ou seja, se você for escrever algo como, por exemplo, ledPin não será o mesmo que escrever LedPin.
2. O programa precisa identificar qual é o fim de uma linha de programação para poder seguir rodando o programa, para isso, é necessário ao final de cada linha onde possa ser identificado um comando, o uso de ponto e vírgula (;).
3. Quando desejamos apresentar alguma instrução ou comentário com mais de uma linha, usamos como símbolo /* ao início de um comentário e */ ao término do mesmo.
4. Quando desejamos dar uma instrução breve, pode se usar os símbolo //, assim, quando você iniciar uma nova linha, voltará a escrever / editar o programa novamente.
Testando o primeiro exemplo do Arduino
Vamos agora executar o primeiro exemplo do Arduino UNO. Neste exemplo o Arduino liga e desliga um LED no pino 13 em um loop contínuo, criando um efeito de piscar (pisca-pisca). O resultado será visualizado no led de sinalização da placa do Arduino (led de estado- L).
Passo a passo:
1. Abra o Arduino IDE no seu computador:
2. Conecte o Arduino ao Computador: Conecte o cabo USB ao Arduino e ao seu computador.
3. Defina o modelo da placa Arduino que você está utilizando. Esse procedimento deve ser realizado apenas uma vez, a menos que você mude para um modelo diferente, como o Arduino Mega, por exemplo. Definir o modelo correto da placa assegura que o IDE compile e carregue o código de maneira apropriada para o hardware específico que você está usando.
3.1. Observe que o IDE agora indica qual o modelo você está utilizando.
4. Configure a porta de comunicação serial do computador (Porta COM) com a placa Arduino. Este procedimento também deverá ser feito apenas uma vez no IDE, a menos que você mude a placa utilizada. Muitas vezes, placas do mesmo modelo utilizam portas de comunicação diferentes. Normalmente, utiliza-se as portas de comunicação COM1, COM2, COM3 ou COM4. Clique na porta de comunicação que aparece no menu, no exemplo abaixo é COM3 (Arduino UNO).
4.1. Da mesma forma, o IDE ficará configurado com a porta selecionada.
5. Baixe o código de programação (Sketch): No Arduino IDE, abra o exemplo "Blink". Para isso, vá em "File" -> "Examples" -> "01.Basics" -> "Blink".
6. Pronto, o sketch do programa "Blink" foi baixado e deverá aparecer no editor do seu Arduino IDE.
7. Verifique o Sketch: Clique no ícone de marcação de verificação (Checkmark) na parte superior da janela do Arduino IDE para verificar se não há erros no código. Certifique-se de que a placa Arduino e a porta estejam configuradas corretamente no menu "Tools".
7.1. Observe que aparece uma tela de saída (output) que informa a quantidade de memória utilizada e mensagens de erro se houver. No exemplo abaixo não foi encontrado nenhum erro. Portanto, podemos prosseguir com o nosso teste.
8. Carregue o Sketch no Arduino: Após verificar o sketch, clique no ícone de seta (Upload) na parte superior da janela do Arduino IDE para carregar o código no Arduino. Você verá as luzes TX e RX piscando enquanto o código é carregado.
9. Após o carregamento na placa Arduino bem-sucedido, o LED (L) do Arduino começará a piscar a cada segundo. Ele permanecerá ligado por um segundo e depois desligará por um segundo, criando um efeito de piscar.
9.1. A constante LED_BUILTIN é o número do pino ao qual o LED on-board está conectado. Na maioria das placas e no Arduino UNO, esse LED é conectado ao pino digital 13.
Você concluiu com sucesso o teste do exemplo "Blink". O LED deve estar piscando conforme as configurações do programa. Este é um ótimo ponto de partida para começar a trabalhar com o Arduino, pois é um projeto simples que demonstra os conceitos básicos de entrada e saída.
Agora que você já tem a noção básica de como o Arduino funciona, aprofunde ainda mais seu conhecimento seguindo os projetos do site Squids Arduino. Esses projetos oferecem uma oportunidade excepcional de avançar no seu aprendizado e explorar uma ampla variedade de aplicações com o Arduino.
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários