Escolar Documentos
Profissional Documentos
Cultura Documentos
Nome:
1
Arduino UNO
Energia
Viso geral
O Arduino UNO pode receber energia via
O Arduino UNO uma placa conexo USB ou de uma fonte externa. A fonte
microcontroladora baseada em ATmega 328 selecionada automaticamente.
(http://www.atmel.com/dyn/resources/prod_docu
ments/doc2549.pdf). Possui 14 pinos digitais de Energia de uma fonte externa (no-USB) pode
entrada/sada (dos quais 6 podem ser utilizados ser proveniente de um adaptador AC/DC ou
como sadas PWM), 6 entradas analgicas, uma bateria. O adaptador deve ser conectado a um
conexo USB, uma entrada para fonte externa, plug de 2.1 mm, sendo carregado positivamente
um ICSP header, e um boto de reincio. Contm no centro. Cabos de uma bateria devem ser
todos os elementos necessrios para suportar o inseridos nos pinos Gnd e Vin do conector de
microcontrolador; bastando conectar a placa a energia.
um computador atravs de um cabo USB ou a
uma fonte externa com um adaptador AC/DC ou
A placa pode operar com uma tenso de 6 a 20
bateria para iniciar. O UNO compatvel com
Volts. Se receber menos que 7 V, entretanto, o
muitos shields desenvolvidos para Arduino.
pino de 5 V poder fornecer menos que cinco
Volts e a placa pode ficar instvel. Se utilizar mais
que 12 V, o regulador de tenso pode
superaquecer e danificar a placa. A faixa
recomendada entre 7 e 12 volts.
2
Os pinos de energia so os seguintes:
Entradas e Sadas
VIN. Equivale tenso de entrada da
placa Arduino quando utiliza uma fonte Cada um dos 54 pinos digitais do Mega pode ser
externa (diferentemente dos 5 volts da usado como uma entrada ou sada, usando as
conexo USB ou outras fontes funes pinMode (), digitalWrite (), e digitalRead
reguladas). Voc pode fornecer energia (). Eles operam com 5 volts. Cada pino pode
atravs deste pino, ou, se fornecer uma fornecer ou receber um mximo de 40 mA e tem
tenso atravs do plug, obter a mesma um resistor pull-up interno (desconectado por
tenso atravs deste pino. padro) de 20-50 kOhms. Alm disso, alguns
5V. Fornece a tenso regulada para o pinos tm funes especializadas:
microcontrolador e outros componentes
da placa. um segundo depois de abrir a conexo e antes
3V3. Fornece uma tenso de 3.3 Volts de enviar esses dados.
gerada pelo chip FTDI (on-board). A
corrente mxima de 50 mA. A Mega tem uma trilha que pode ser cortada
GND. Pinos-terra. para desabilitar o auto-reset. As almofadas de
cada lado do trao pode ser soldada em
Memria conjunto para reativ-lo. Est identificada como
"RESET-PT". Voc tambm pode ser capaz de
O ATmega 328 possui 32 KB de desativar o auto-reset conectando um resistor
memria flash para armazenar cdigos (dos 110 ohm de 5 V para a linha de reset, veja este
quais 0,5 KB so utilizados para bootloader), 2 tpico do frum para mais detalhes.
KB de SRAM e 1 KB de EEPROM (os quais
podem ser acessados utilizando a EEPROM
library).
4
Outros tipos de Arduino
5
Instalando o Arduino IDE
Colocando seu Arduino para funcionar:
As placas contm um microcontrolador auxiliar que faz a comunicao via porta serial USB com um computador, e que os
microcontroladores j possuem o bootloader que permite a programao fcil da aplicao em si.
Abra a plataforma IDE, na aba File e depois Examples. Voc ver que existem dezenas
de exemplos, inicialmente separados em grupos de 1 a 10. A Figura acima ilustra o
caminho entre barra de ferramentas e abas para chegar nos exemplos.
No Arduino as luzes RX e TX comearo a piscar como sinal de que os dados esto sendo
transmitidos do seu computador para a placa.
Se no tiver nenhum problema no seu sketch aparecero as palavras Done uploading
na barra de status do seu IDE, as luzes RX e TX iro parar de piscar e seu upload estar
completo.
Se o led laranja na placa comeou a piscar com intervalos de 1 segundo, voc obteve xito na
execuo do seu primeiro exemplo.
Protoboard
Para facilitar o desenvolvimento de projetos, costuma-se utilizar placas com furos e conexes
condutoras para montagem de circuitos eltricos experimentais, chamadas protoboards. A
grande vantagem da placa de ensaio na montagem de circuitos eletrnicos a facilidade de
insero de componentes, uma vez que ela no necessita de soldagem.
Uma protoboard comum possui dois tipos de conexo: verticais, presentes nos furos laterais, e
horizontais, presentes nos restantes. A corrente percorre todos os furos da mesma linha,
alimentando todos os fios ou componentes que ali estiverem conectados, conforme pode-se
verificar na Figura abaixo:
Sistemas digitais utilizam o conceito binrio atrelado ao nvel lgico e nvel de tenso. Assim, pode-se
correlacionar:
Linguagem C para Arduino
Montagem sugerida
Programao sugerida
void setup()
{
pinMode (ledPin, OUTPUT); // define o LED como atuador
}
6
Detalhando um pouco mais
Resistor
Um resistor um dispositivo eletrnico capaz de imitarl a passagem de uma corrente eltrica por
um circuito eltrico. Os resistores so identificados atravs de um cdigo de linhas coloridas.
Alterando o cdigo
1 Altere o intervalo de ligar e desligar o LED para um valor definido por voc.
2 Altere o valor do delay para 50 milisegundos. O LED estar desligando e acendendo?
7
9
03. Leitura de um sinal digital no computador
Neste projeto, voc deve construir um circuito que possibilite a leitura do estado de um interruptor
(ligado ou desligado), enviando-o atravs de uma comunicao serial ao computador.
A comunicao serial no computador vista em uma tela parte, que pode ser acessada pelo
atalho Ctrl+Shift+M (Serial monitor).
Montagem sugerida
Programao sugerida
void setup()
{
Serial.begin (9600); // inicia a comunicao serial
pinMode (2, INPUT); // define o pino 2 como entrada de dados
}
void loop()
{
int sensorValue = digitalRead(2); // define varivel e armazena a leitura do sensor
Serial.println (sensorValue, DEC); // envia valor para o serial monitor
delay (1000);
}
10
Explorando a programao
A linha Serial.begin (9600); inicia a leitura serial, a 9600 bauds.
A linha Serial.println (sensorValue, DEC); envia o valor da leitura do sensor para o monitor serial e
salta linha ao final. Para que as entradas fossem publicadas em uma mesma linha, deve-se utilizar o
comando Serial.print em vez de Serial.println.
Neste projeto, o monitor serial dever exibir 0 quando o sensor estiver solto e 1, quando estiver
pressionado.
Baud deriva do sobrenome de J.M.E. Baudot, francs inventor do cdigo telegrfico Baudot. Um Baud
uma medida de velocidade de sinalizao e representa o nmero de mudanas na linha de transmisso
(seja em frequncia, amplitude, fase etc...) ou eventos por segundo. Para se determinar a taxa de
transmisso de um canal em bits por segundo - bps, deve ser levado em considerao o tipo de codificao
utilizada, alm da velocidade de sinalizao do canal de comunicao.
Fonte: http://pt.wikipedia.org/wiki/Baud
Alterando o cdigo
1 Adicione um LED porta 2 do Arduino Uno ou Mega e altere o cdigo para que o LED acenda quando
o boto do interruptor for pressionado.
void setup()
{
Serial.begin (9600);
}
void loop()
{
for (int x=0; x < 8; x++)
{
Serial.print (nome[x]);
delay (500);
}
}
11
04. Leitura de um sinal analgico no computador
Neste projeto, voc deve construir um circuito que possibilite a leitura de um valor analgico (0 a
1023) fornecido por um potencimetro, enviando-o atravs de uma comunicao serial ao computador.
A comunicao serial no computador vista em uma tela parte, que pode ser acessada pelo
atalho Ctrl+Shift+M (Serial monitor).
Montagem sugerida
Programao sugerida
void setup()
{
Serial.begin (9600);
}
void loop()
{
int sensorValue = analogRead (A0);
Serial.println (sensorValue, DEC);
delay (1000);
}
12
05. Controlando um servo com potencimetro
Este um exemplo bsico que demonstra como controlar um Servo motor com o uso de um
potencimetro e o Arduino. As variaes no eixo do potencimetro sero proporcionais ao ngulo com o qual
o servo se move. Isto possvel devido a utilizao da funo map().
Montagem Sugerida
#define pino_pot 0
#include <Servo.h>
void setup()
{
servoldg.attach(9); // conecta o servo ao pino 9
}
void loop()
{
servoldg.write(map(analogRead(pino_pot), 0, 1023, 0, 179));
// analogRead (): Faz a leitura analgica no pino do potencimetro (retorna com um valor de 0 a
1023
// map (): Muda a escala da leitura de 0~1023 para 0~179 (converte em angulo para o servo)
//servoldg.write(): L o valor do angulo dado pelo map() e gera o pulso para movimentar o
servo.
}
Explorando a programao
A linha intsensorValue = analogRead(A0); define a varivel sensorValue e armazena o valor
da porta analgica 0 na varivel sensorValue
Ao girar o potencimetro, o novo valor do sinal analgico ser exibido em tela.
Alterando o cdigo
Altere o cdigo para que alm do valor analgico, seja exibido o valor da resistncia, em ohms. No
final, ajuste o potencimetro para que ele exera resistncia de 220 . (dica: determine a relao entre a
resistncia e uma unidade analgica lembre- se de que o Arduino utiliza 1024 unidades analgica s).
Alterando a montagem
Substitua o potencimetro por um LDR (Light Dependent Resistor) e efetue medidas da
luminosidade ambiente.
13
06. Automao de LED com LDR
Com este exemplo voc aprender como utilizar a Mini Fotoclula (LDR) para fazer uma leitura de
luminosidade do seu ambiente.
Montagem Sugerida
void setup()
{
void loop()
{
else //Seno
{
digitalWrite(led,LOW); //Desliga o LED
}
delay(250); //Delay de 250 milissegundos
}
07. Semforo
Agora ns iremos criar um circuito para simular um semforo de trnsito. O semforo
ser constitudo por trs LEDs: um vermelho, um amarelo e um verde.
Montagem Sugerida
Programao Sugerida
4
void loop()
{
digitalWrite (vermelho, HIGH); // liga o led vermelho
delay (ledDelay); // espera o tempo determinado na varivel ledDelay
digitalWrite (amarelo, HIGH); // liga o led amarelo
delay (2000); // espera 2 segundos
digitalWrite (verde, HIGH); // liga o led verde
digitalWrite (vermelho, LOW); // desliga o led vermelho
digitalWrite (amarelo, LOW); // desliga o led amarelo
delay (ledDelay); // espera o tempo determinado na varivel ledDelay
digitalWrite (amarelo, HIGH); // liga o led amarelo
digitalWrite (verde, LOW); // desliga o led
verde delay (2000); // espera 2 segundos
digitalWrite (amarelo, LOW); // desliga o led amarelo
}
Alterando o cdigo
1 Voc deve ter percebido que o cdigo do semforo ligeiramente diferente do cdigo utilizado nos
semforos brasileiros. Adapte o cdigo para torn-lo semelhante programao de nossos semforos.
15
08. Semforo Interativo
Com este exemplo, conseguir simular o funcionamento de um semforo, utilizando LEDs e um boto
para ativar o semforo de pedestre.
Montagem sugerida
Programao sugerida
void setup()
{
}
void loop()
{
17
09. Usando um termistor para calcular a temperatura
Algumas aplicaes industriais necessitam da leitura da temperatura para manterem seus
processos. O Arduino permite fazer a leitura da temperatura atravs de um termistor conectado a uma porta
analgica.
Montagem sugerida:
Programao sugerida
#include <math.h>
void setup()
{
Serial.begin (115200);
}
void loop ()
{
Serial.print(int (Termistor (analogRead (0)))); // Exibe temperatura em Celsius
Serial.println (" graus Celsius");
delay (1000);
}
Explorando o cdigo
Bibliotecas
Bibliotecas so conjuntos de dados pr-formatados que possibilitam funcionalidade extra a um
programa (por exemplo, funes matemticas mais complexas). Para incluir uma biblioteca, deve-se utilizar
a palavra-chave #include.
Exemplo:
#include <math.h>
Double
Funo que dobra a preciso do ponto decimal, quando se trabalha com outras plataformas. No
cdigo do Arduino, possui exatamente a mesma funo que float.
Return
Finaliza a funo, retornando o valor designado.
Termistor
Um termistor um controlador trmico, que consiste numa resistncia sensvel cuja funo principal
exibir uma mudana grande, previsvel e precisa em resistncia eltrica quando um equipamento ou
produto sofrer uma mudana na temperatura de corpo. Um termistor de Coeficiente de Temperatura
Negativo (NTC) (Negative Temperature Coefficient) exibe uma diminuio em resistncia eltrica quando
submetido a um aumento de temperatura do equipamento e um termistor de Coeficiente de Temperatura
Positivo (PTC) (Positive Temperature Coefficient) exibe um aumento em resistncia eltrica existe um
aumento da temperatura do equipamento.
Alterando o cdigo
1 Adicione um LED ao circuito e altere a programao para que o LED acenda quando a leitura da
temperatura indicar 30 C.
21
10. Alarme de temperatura
Com este alarme por temperatura voc poder definir um range dentro do programa e caso a ela
exceda os limites do mesmo, um alarme ser tocado pelo Buzzer.
#include <Thermistor.h>
#define TEMP_MAX 30
#define TEMP_MIN 24
#define sirene 3
//Instncia o pino A0 como o pino onde o sensor de temperatura estar conectado
Thermistor temp(0);
void setup()
{
Serial.begin(9600);
Serial.println("Alarme de temperatura");
}
void loop()
{
int temperatura = temp.getTemp();
delay(2000); // delay para garantir no minimo 2s entre cada uma das leituras
if (temperatura > TEMP_MIN && temperatura < TEMP_MAX)
{
noTone(sirene);
}
else
{
tone (sirene,440,1000);
Serial.println("PERIGO!!! TEMPERATURA FORA DO ESPERADO");
Serial.print("Temperatura deve estar entre ");
Serial.print(TEMP_MIN);
Serial.print(" e ");
Serial.println(TEMP_MAX);
}
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" *C\n");
}
11. Acionando lmpada por comandos via monitor serial
Neste projeto, Vamos mostrar neste tutorial como controlar uma lmpada ligada na rede eltrica via
comandos enviados via serial, utilizando Arduino e o mdulo rel.
ATENO CUIDADO: Evite manusear o mdulo rele enquanto o mesmo estiver conectado na rede
eltrica e remova qualquer tipo de objeto condutivo ou inflamvel de perto. Voc pode causar um acidente e
se machucar, tome cuidado.
Montagem sugerida
Programao sugerida
#define rele 8
char leitura;
void setup()
{
Serial.begin(9600);
3
void loop()
{
12. Tacmetro
Com este exemplo voc conseguir saber quantas vezes algo passou em frente a linha de
infravermelho em 1 segundo, conseguindo assim pegar a velocidade em RPM de um motor por exemplo.
Montagem sugerida
Programao sugerida
void setup()
{
void loop()
{
void pegarpm()
{
}
13. Sensor ptico reflexivo com Arduino
Com este exemplo usa o sensor que timo para identificar obstculos a sua frente e possui vrias
aplicaes na robtica. J vimos ele utilizado para a construo de robs seguidores de linhas e tambm em
robs de batalha sumo para evitar que o mesmo saia do campo de batalha. Em ambos casos o sensor ptico
reflexivo utilizado para detectar linhas de marcao que determinam ou o caminho a ser seguido pelo rob
ou os limites do campo de batalha.
Montagem sugerida
Programao sugerida
//variveis
int ledPin = 13; //LED comum para ser aceso ao detectarmos um objeto
int sensorPin = 8; //pino para receber o sinal do fototransistor
int estado; //varivel utilizada armazenar o estado do sensor
}
14. Sensor de estacionamento / r com Arduino e
sensor ultrasnico HC-SR04
Com este exemplo utiliza o Arduino juntamente com o sensor ultrasnico HC-SR04 para montar um
sensor de estacionamento (ou sensor de r), que emite um "bip" conforme o sensor se aproxima de um
obstculo. Quanto mais prximo o obstculo, maior a frequncia do bip.
Montagem sugerida
25
Programao sugerida
//Dados do buzzer
#define tempo 500
int frequencia = 2000;
int Pinofalante = 2;
void setup()
{
pinMode(Pinofalante,OUTPUT); //Pino do buzzer
Serial.begin(9600); //Inicializa a serial
}
void loop()
{
float cmMsec, inMsec;
delay(atraso);
}