Você está na página 1de 27

Iniciação ao Arduino uno

https://lucinio.wixsite.com/lucinioprezaaraujo
Blocos do Arduino
Entradas e saídas digitais

Conversor
Serial ↔ USB

Jack
USB

Cristal

CPU
Fonte de Atmel
alimentação
Microcontrolador

Jack
Alimentação

Terminais de alimentação Entradas analógicas


5V – 3,3V e Terra (0 V) ou saídas digitais
https://lucinio.wixsite.com/lucinioprezaaraujo
Resumo da placa Arduino uno

https://lucinio.wixsite.com/lucinioprezaaraujo
Arquitetura do Arduino

https://lucinio.wixsite.com/lucinioprezaaraujo
O microcontrolador
Um microcontrolador, ao contrário de um microprocessador, é desenhado e
construído de forma a integrar diversos componentes (CPU, RAM, ROM,
Porta série, Porta paralela, etc.) num único circuito integrado.
Microcontrolador: ATmega328 (datasheet)

https://lucinio.wixsite.com/lucinioprezaaraujo
Arduino uno - Caraterísticas
• Microcontrolador: ATmega328
• Tensão de operação: 5V
• Tensão recomendada (entrada): 7-12V
• Limite da tensão de entrada: 6-20V
• Pinos digitais: 14 (seis pinos com saída PWM)
• Entrada analógica: 6 pinos
• Corrente contínua por pino de entrada e saída: 40 mA
• Corrente para o pino de 3.3 V: 50 mA
• Quantidade de memória FLASH: 32 KB (ATmega328) onde
0.5 KB usado para o bootloader
• Quantidade de memória SRAM: 2 KB (ATmega328)
• Quantidade de memória EEPROM: 1 KB (ATmega328)
• Velocidade de clock (cristal): 16 MHz

https://lucinio.wixsite.com/lucinioprezaaraujo
Arduino uno - Alimentação
Internamente, o circuito do Arduino é alimentado
com uma tensão de 5V.
O Arduino UNO pode ser alimentado pela porta USB
ou por uma entrada do tipo “Power Jack” (com o
positivo ao centro) através de uma fonte externa
DC.
A recomendação é que a fonte externa seja de 7 V
a 12 V e pode ser ligada diretamente no conector de
fonte ou nos pinos Vin e Gnd.
A seguir são exibidos os conectores de alimentação para conexão de shields e módulos
na placa Arduino UNO:

3,3 V.  - Fornece tensão de 3,3V. para


alimentação de shield e módulos externos.
Corrente máxima de 50 mA.
 
5 V - Fornece tensão de 5 V para alimentação de
shields e circuitos externos.
 
GND  - pinos de referência, terra.
 
VIN - pino para alimentar a placa através de
shield ou bateria externa. Quando a placa é
alimentada através do conector Jack, a tensão da
fonte estará nesse pino.
https://lucinio.wixsite.com/lucinioprezaaraujo
Software
O 1º passo consiste em efectuar o download do respectivo software de
desenvolvimento, o Arduino IDE 1.0.5, através do site oficial Arduino
O 2º passo consiste em descompactar o ficheiro “.ZIP” para uma pasta à sua
escolha.
O 3º passo consiste em ligar a placa Arduino ao computador através do cabo
USB e instalar os drivers FTDI, para permitir uma conversão de USB para série.

O 4º passo consiste em configurar a porta série


a ser utilizada e qual o tipo de modelo Arduino,
que nos encontramos a utilizar. Para tal,
necessitamos de abrir o Software de
desenvolvimento e escolher na barra de
separadores a opção “Tools”.

O 5º passo para a utilização do Software


consiste em elaborar o seu Sketch (programa),
compilar e, caso não tenha erros, fazer o
uploading para a placa Arduino.

https://lucinio.wixsite.com/lucinioprezaaraujo
Arduino IDE
O monitor serial é utilizado para
comunicação entre o Arduino e
o computador (PC).

As principais funcionalidades do IDE do


Arduino são:
- Escrever o código do programa
- Salvar o código do programa
- Compilar um programa
- Transportar o código compilado para a
placa do Arduino

https://lucinio.wixsite.com/lucinioprezaaraujo
Ciclo de desenvolvimento

https://lucinio.wixsite.com/lucinioprezaaraujo
Funções base
void setup() - Esta função apenas é executada uma vez e é normalmente utilizada para
executar a inicialização de variáveis, a inicialização da utilização bibliotecas, a definição dos
pinos (como input ou output), o início do uso de comunicação série, entre outros. Esta função
apenas volta a ser executada novamente ao ser efectuado o reset ou quando se desligar e
volta a ligar a placa de desenvolvimento Arduino.

void loop() - Esta função faz um “loop” sucessivo (como o próprio nome indica), ou seja,
todos os comandos existentes no interior desta função são sucessivamente repetidos, o que
pode permitir a leitura sucessiva de portas, a leitura sucessiva de parâmetros provenientes de
sensores externos e actuar de acordo com as condições estabelecidas.

https://lucinio.wixsite.com/lucinioprezaaraujo
Programar no Arduino
Comentários

Muitas vezes é importante comentar alguma parte do código do programa.


Existem duas maneiras de adicionar comentários a um programa em
Arduino.

A primeira é usando //, como no exemplo abaixo:


// Este é um comentário de linha

A segunda é usando /* */, como no exemplo abaixo:


/* Este é um comentário de bloco. Permite acrescentar comentários com
mais de uma linha */

Nota: Quando o programa é compilado os comentários são automaticamente suprimidos do


arquivo executável, aquele que será gravado na placa do Arduino.

https://lucinio.wixsite.com/lucinioprezaaraujo
Programar no Arduino

Constantes

No Arduino existem algumas constantes previamente definidas e são


consideradas palavras reservadas.

As constantes definidas são:


true – indica valor lógico verdadeiro
false – indica valor lógico falso
HIGH – indica que uma porta está ativada, ou seja, está em 5V.
LOW – indica que uma porta está desativada, ou seja, está em 0V.
INPUT – indica que uma porta será de entrada de dados.
OUTPUT – indica que uma porta será de saída de dados.

https://lucinio.wixsite.com/lucinioprezaaraujo
Entradas analógicas e digitais
Portas digitais e analógicas
O Arduino possui tanto portas digitais como portas
analógicas.
As portas servem para comunicação entre o Arduino e
dispositivos externos, por exemplo: ler um botão,
acender um led ou uma lâmpada.
Conforme já mencionado, o Arduino UNO, possui 14
portas digitais e 6 portas analógicas (que também
podem ser utilizadas como portas digitais).
Os conversores analógicos-digitais (ADC) do Arduino
são de 10 bits.
Os valores lidos numa porta analógica variam de 0 a
1023 (10 bits), onde 0 representa 0V e 1023
representa 5V.

Portas digitais
As portas digitais trabalham com valores bem definidos, ou seja, no caso do Arduino esses
valores são 0V e 5V.
0V indica a ausência de um sinal e 5V indica a presença de um sinal.
Para escrever numa porta digital basta utilizar a função digitalWrite(pin, estado).
Para ler um valor numa porta digital basta utilizar a função digitalRead(pin).

https://lucinio.wixsite.com/lucinioprezaaraujo
Saídas PWM

O que é PWM?
 
PWM, do inglês Pulse Width Modulation,
é uma técnica utilizada por sistemas
digitais para variação do valor médio de
uma forma de onda periódica. A técnica
consiste em manter a frequência de
uma onda quadrada fixa e variar o
tempo que o sinal fica em nível lógico
alto. Esse tempo é chamado de duty
cycle, ou seja, o ciclo ativo da forma de
onda. No gráfico ao lado são exibidas
algumas modulações PWM.

https://lucinio.wixsite.com/lucinioprezaaraujo
Entradas analógica
Portas Analógicas

As portas analógicas são utilizadas para entrada de


dados.
O Arduino UNO possui 6 (seis) portas analógicas.
As portas analógicas no Arduino UNO são
identificadas como A0, A1, A2, A3, A4 e A5. Estas
portas também podem ser identificadas por 14 (A0),
15 (A1), 16 (A2), 17 (A3), 18 (A4) e 19 (A5).
Por padrão todas as portas analógicas são definidas
como entrada de dados, desta forma não é
necessário fazer esta definição na função setup().
Os valores lidos numa porta analógica variam de 0V
a 5V.
Para ler uma valor numa porta analógica basta
utilizar a função analogRead(pin).

https://lucinio.wixsite.com/lucinioprezaaraujo
Programar no Arduino

Para definir uma porta como entrada ou saída é necessário explicitar


essa situação no programa.
A função pinMode(pin, estado) é utilizada para definir se a porta será de
entrada ou saída de dados.

Exemplo:

Define que a porta 13 será de saída


pinMode(13, OUTPUT)

Define que a porta 7 será de entrada


pinMode(7, INPUT)

https://lucinio.wixsite.com/lucinioprezaaraujo
Programa explicado
/*
-----------------------------------
1º Exercício
-----------------------------------
Ligar e desligar um LED por um segundo
*/
//------------------------------------
//Função principal
//------------------------------------
void setup() // Executa-se quando o arduino é ligado
{
pinMode(13,OUTPUT); // Inicializa o pin 13 como uma saída
}
//------------------------------------
//Função repetitiva
//------------------------------------
void loop() // Esta função executa-se o instante todo
// quando está ligado o Arduino
{
digitalWrite(13,HIGH); // Liga o LED
delay(1000); // Temporiza um segundo (1s = 1000ms)
digitalWrite(13,LOW); // Desliga o LED
delay(1000); // Temporiza um segundo (1s = 1000ms)
}
https://lucinio.wixsite.com/lucinioprezaaraujo
Programar no Arduino
Numa linguagem de programação existem vários operadores que
permitem operações do tipo: Aritmética, Relacional, Lógica e Composta.

https://lucinio.wixsite.com/lucinioprezaaraujo
Programar no Arduino

https://lucinio.wixsite.com/lucinioprezaaraujo
Programar no Arduino

https://lucinio.wixsite.com/lucinioprezaaraujo
Programar no Arduino

https://lucinio.wixsite.com/lucinioprezaaraujo
https://lucinio.wixsite.com/lucinioprezaaraujo
Shields
É possível agregar novas
funcionalidades a uma placa do
Arduino.
As extensões das placas do Arduino
são chamadas de shields.
Existem shields para as mais diversas
funcionalidades, por exemplo:
Comunicação ethernet
Comunicação wifi
Comunicação bluethooth Ethernet Shield
Ponte H
Banco de relês

https://lucinio.wixsite.com/lucinioprezaaraujo
Adicionar uma biblioteca
Possivelmente algum dia vai precisar de adicionar uma biblioteca para trabalhar
com algum sensor ou outro componente no Arduino. Existem diversas bibliotecas
disponíveis na internet, que pode baixar e utilizar. Entretanto tem que adicioná-las
ao seu IDE para que o mesmo reconheça os comandos que está a utilizar.

Para mostrar como proceder, vamos adicionar a biblioteca MsTimer2.h como


exemplo. Primeiro vamos baixá-la na página do Arduino
(http://arduino.cc/playground/Main/MsTimer2). Feito isso, descompacte o
arquivo.zip que foi baixado. Agora vá até à pasta onde “instalou” o seu IDE para o
Arduino e procure pela pasta libraries. Dentro deste diretório copie a pasta que foi
extraída anteriormente.

Por fim, vamos verificar se a biblioteca foi mesmo detectada pelo IDE. Vá a Files
> Examples e verifique se a biblioteca que acabamos de adicionar está ali. Se
sim, a instalação ocorreu bem e já pode começar a utilizar a sua nova biblioteca.
Agora é só “chamá-la” no seu código, que neste caso ficaria: #include
<MsTimer2.h>. Vale a pena destacar que na própria página onde baixou a
biblioteca, possui as instruções de como utilizar a mesma.

https://lucinio.wixsite.com/lucinioprezaaraujo
Exercícios propostos
1.Faça um circuito onde três LEDs acendam em sequência, com um atraso
de um segundo entre eles, e depois apaguem igualmente em sequência.

2.Usando um LED vermelho, um amarelo e um verde, crie um semáforo de


transito – ou seja, o LED verde deve ficar ligado por um determinado
intervalo de tempo, seguido pelo amarelo, depois o vermelho, voltando
para o verde.

3.Crie um LED inteligente: ou seja, utilizando um sensor de luminosidade,


faça-o ligar se o ambiente estiver escuro demais.

4.Projete o protótipo de uma fechadura com senha - ou seja, a porta só


abre se a senha digitada for correta. Para facilitar, utilize um LED
vermelho para representar a porta fechada e um LED verde para indicar
que a senha digitada foi aceite.

5.Melhore seu protótipo adicionando um atuador sonoro, que avisa caso a


senha esteja errada, caso ela esteja certa, e denuncie caso alguém erre a
senha mais de três vezes Utilize sons diferentes para cada caso.
https://lucinio.wixsite.com/lucinioprezaaraujo
Fontes de informação
Site oficial Arduino
http://www.arduino.cc
Para comandos, consultar o guia de referências em
http://arduino.cc/en/Reference/HomePage
Biblioteca MsTimer2
http://arduino.cc/playground/Main/MsTimer2

Simulador de Arduino: Virtual Breadboard


http://www.virtualbreadboard.com/Main.aspx?TAB=Downloads

https://lucinio.wixsite.com/lucinioprezaaraujo

Você também pode gostar