Você está na página 1de 70

Mini-curso Arduino

Mini-curso Arduino

Temas abordados:

 Apresentação do Arduino para iniciantes.


 Uso e interações do Arduino.
 Noções básicas de como programá-lo.
Mini-curso Arduino

 Arduino: O que é?

O Arduino é uma plataforma de


prototipagem eletrônica open-


source que se baseia em
hardware e software flexível e fácil
de usar.

 Por ser open: Perminte


constução caseira e software
livre.

 Caráter colaborativo
Mini-curso Arduino

 O que ele faz?

 Recebe, Gera e Interpreta Dados.

 Permite desenvolver:
 Controle residencial

 Robótica

 Design interativo

 Quase tudo que sonhar esta


ferramenta pode tornar
realidade.
Mini-curso Arduino

Como é estruturado seu Hardware

 Analog Reference pin-REF(Laranja).

 Digital Ground (Verde Claro)

 Digital Pins 2-13 (Verde)

 Digital Pins 0-1/Serial In/Out -


TX/RX (Verde Escuro) – Estes Pinos
não podem ser usados para digital i/o
(digitalRead e digitalWrite) se estiver
usando comunicação serial (
Serial.begin).

 Botão de Reset - S1 (Azul Escuro)

 In-circuit Serial Programmer -ICSP


(Azul-Verde)
Mini-curso Arduino

Como é estruturado seu


hardware:
 Analog In Pins 0-5 (Azul Claro)

 Power and Ground Pins (power:


orange, grounds: light Laranja
Claro)

 Suprimento Externo de energia In


(9-2VDC) - X1 (Rosa)

 SV1- Jumper: Determina


alimentação da USB ou Esterna X1
(Roxo)

 USB: Usada para gravar os


programas; Comunicação serial
entre placa e computador;
Alimentação da placa (Amarelo)
Mini-curso Arduino

Outras coisas importantes no Arduino:

 Led Serial: 0 (RX) e 1 (TX). Usado para


Receber (RX) transmitir (TX) TTL dados
seriais.
 Chip FTDI(comunicação serial USB)
Mini-curso Arduino

Outras coisas importantes no


Arduino:

 Saida com PWM(Pulse


Width Modulation):
Usa-se pinos: 3, 5, 6, 9, 10,
e 11.
analogWrite()
Mini-curso Arduino

 Arduino...! So quadrado assim ?

 8k,16k ou 32k?

 USB?
Mini-curso Arduino

Não!
Tem varios modelos para aplicações diversas.

Arduino Mega- 126k (Flash Memory)


54 Pinos de I/O
Mini-curso Arduino

Não!
Temos varios modelos para
aplicações diversas.

Arduino Pro

Arduino BT (Bluetooth)
Arduino Mini

Mini-curso Arduino

 O que são Shields?


“Escudos”. Extentenções do
arduino que permitem interagir
com tecnologias diversas com
facilidade.
 Ex:

Ethernet shield

Xbee shield

Mini-curso Arduino

 SD shield
 O que são Shields?
“Escudos”. Extentenções do
arduino que permitem interagir
com tecnologias diversas com
facilidade.
Ex:

LCD shield

Motor shield
Mini-curso Arduino

 Como usar as Shields?


 Conecta-se sobre o
Arduino quantas quiser.
Mini-curso Arduino

Gostou? Então vamos


Saber como usar?
 Esta é a IDE .
 E os botões para comando.

Verify: Para Verificar se o


programa está sem erros.

Upload: Carrega o programa no


Microcontrolador.

Serial Monitor: Ativa a leitura


da porta serial. Mostra
valores.
Mini-curso Arduino

 O Programa.
 C/C++ .
 Funções facilitadas.

Após compilar temos os


dados na tela preta abaixo:
Mini-curso Arduino

 Entendendo o Programa.

int ledPin = 13; // Diz: Vou usar o Pino de número 13 do Arduino e ele será chamado
"ledPin" e será uma variável inteira.

void setup() //Função chamada automaticamente na primeira vez que o código é


lido.
//Devemos dizer como o Pino deve se comportar.

{
pinMode(ledPin, OUTPUT); // PinMode diz:
O comportamento do pino(Nome desse pino, ENTRADA ou
SAÍDA).
// Temos OUTPUT=Saída e INPUT=Entrada.
// E o nome do pino é LedPIN.
// É importante notar a vírgula( , ) e que usa-se letra
maiúscula.
}
Mini-curso Arduino

 Entendendo o Programa.

void loop() // Função onde tudo acontece. Chama-se Loop


porque está executando repetidas vezes.
{
digitalWrite(ledPin, HIGH); // Temos HIGH= LIGADO e LOW=DESLIGADO
// E o nome do pino é LedPIN, que é o mesmo Pino 13
delay(1000); // Atraso de 1 segundo
digitalWrite(ledPin, LOW); // Temos LOW=DESLIGADO
delay(1000); // Atraso de 1 segundo
}
Mini-curso Arduino

 Praticando o Programa.

Instalar a interface(
IDE).

 Reconhecer os botões.

Abrir arquivo com o


programa Blink.

Ler o programa
identificar os comandos.
Mini-curso Arduino

Vamos compliar e ver o que


acontece?
Conecte a USB ao PC e ao Arduino

É preciso indicar o modelo de arduino e


a porta USB que ele está conectado.

Vá em TOOLs > Board> “Modelo”


TOOLs > Serial PORT> “porta usada”



Mini-curso Arduino

 Entendendo o Programa.
Agora vamos modificar os
valores no Deley(10)

Observar o que acotece


 Espere alguns segundos.

Conecte um LED como indicado


na figura ao lado.
Mini-curso Arduino

 Entendendo o Programa.
Algumas funções digitais importantes:

pinMode()

 Diz se o comportamento será INPUT


ou OUTPUT

digitalWrite()

 Gera HIGH ou LOW no pino

digitalRead()

 Recebe HIGH ou LOW do pino


Mini-curso Arduino

 Entendendo o Programa.
Funções analógicas.

Gera e recebe valores de 0 a 1023.


Permitindo medir além do LIGADO e
DESLIGADO.

AnalogRead()

 Faz leitura do pino analógico. Valor


entre 0 a 1023

AnalogWrite()

 Gera valor analógico entre 0 e 1023.


Onda PWM.
Mini-curso Arduino

 Aprendendo com exemplos:


Vistar site www.arduino.cc
Principal fonte dedocumentação.

Tópico: LEARNING

 Executar programas: Analog I/O


 Analog Input
 Calibration
 Fading
 Smoothing
Térmica inteligente
Mini-curso Arduino

 Porta serial.
É a forma como comunicar computador com Arduino em tempo real.

Serial.begin(9600);

 Ajusta velocidade em 9600 bps

Serial.println("TEXTO");

 Para escrever na tela.


Mini-curso Arduino

 Serial Port. Vamos praticar?

void setup() // run once, when the sketch starts


{
Serial.begin(9600); // set up Serial library at 9600 bps

Serial.println("Olá! Sou o Arduino!"); // prints hello with ending line break


}

void loop() // run over and over again


{
// do nothing!
}
Mini-curso Arduino

 Serial Port: Agora mudando o programa.

void setup() // run once, when the sketch starts


{
Serial.begin(9600); // set up Serial library at 9600 bps

void loop() // run over and over again


{
Serial.println("Olá! Sou o Arduino!"); // prints hello with ending line
break
}
Mini-curso Arduino

 Serial Port: Agora mudando o programa.

void setup() // run once, when the sketch starts


{
Serial.begin(9600); // set up Serial library at 9600 bps

void loop() // run over and over again


{
Serial.println("Olá! Sou o Arduino!"); // prints hello with ending line break
}
Mini-curso Arduino

 Serial Port: Incrementando mais uma vez.

void setup() // run once, when the sketch starts


{
Serial.begin(9600); // set up Serial library at 9600 bps

void loop() // run over and over again


{
Serial.println("Olá! Sou o Arduino!"); // prints hello with ending line break

delay(1000);

}
Mini-curso Arduino

Termômetro Digital
Materiais
 Arduino Uno

 LM35 (Sensor analógico de temperatura)

 Jumper

 Protoboard.
Mini-curso Arduino

Protoboard
Mini-curso Arduino

Protoboard
Mini-curso Arduino

LM35

 sensor de precisão
 apresenta uma saída de tensão
linear relativa à temperatura
 alimentação de 4-20Vdc e GND
 saída um sinal de 10mV para cada
Grau Celsius de temperatura.
 -55ºC a 150°C
 ¼ °C
Mini-curso Arduino

Montagem

 Vs ligado no pino 5v
do Arduino
 GND no pino Gnd do

Arduino
 Vout ligado no pino

analógico A0 do
Arduino
Mini-curso Arduino

Tipos de variáveis
 byte – esse tipo armazena 8 bits (0 a 255);

 int – armazena números inteiros até 16 bits;

 long - armazena números inteiros até 32 bits;

 float – podem armazenar números fracionários


até 32 bits.
Mini-curso Arduino

Como ler o LM35


 Arduino trabalha com 10 bits 2^10 = 1024
 Sensor é alimentado com 5 volts
 Então temos 5/1023=0,004875
 Cada 1°C corresponde a 10mV=10.10-3
 =10-2 = 1/100
 Então temos(5/1023)*100
 Temperatura=valorLido*0.00488*100
Mini-curso Arduino

Codigo
// termômetro digital arduino
int pinoSensor = 0;
int valorLido = 0;
float temperatura = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
valorLido = analogRead(pinoSensor);
temperatura = (valorLido * 0.488);
Serial.print("Temperatura actual: ");
Serial.println(temperatura);
delay(1000);
}
Mini-curso Arduino

Acionamento de Led’s

Aula 3
Mini-curso Arduino

1- Preparar o circuito para um


LED
Na placa placa arduino,
alguns pinos digitais estão
marcados com as iniciais
PWM [pulse width
modulation] que permite
gerar um sinal analógico
(entre 0 e 255). O pino que
escolhemos para este
exemplo é nº 11 e, a partir
deste, iremos controlar a
intensidade do LED de
forma variável.
Mini-curso Arduino

 Ligue o pino gnd do arduino à linha ground do protoboard, que na maioria


dos casos é representada por uma linha azul.

 Conecte o pino +5v do arduino à linha (+) da matriz, geralmente assinalada


a vermelho. - Introduza a resistência (220R ou 330R) e e o LED.

 O LED é um componente polarizado, por essa razão, certifique-se que a


perna maior é ligada ao pino nº11 do arduino enquanto que a perna menor
é conectada à linha ground (-) da matriz através da resistência.
Mini-curso Arduino

2- Variar a intensidade do brilho do LED.


int LED=11;

void setup() {
pinMode(LED, OUTPUT);
}

void loop() {
analogWrite(LED, 0);
delay(1000);
analogWrite(LED, 50);
delay(1000);
analogWrite(LED, 100);
delay(1000);
analogWrite(LED, 150);
delay(1000);
analogWrite(LED, 200);
delay(1000);
analogWrite(LED, 250);
delay(1000);
}
Mini-curso Arduino

3- Incrementar o brilho do led


int LED=11;
void setup() {
pinMode(LED, OUTPUT);
}
int v=0;
int incremento=1;
void loop() {
v=v+incremento;
if (v==255) incremento=-1;
if (v==0) incremento=1;
delay(1);
analogWrite(LED,v);
}
Mini-curso Arduino

4- Ligando o Led pela serial


int ledPin = 11; //define o pino em que o led está ligado
char leitura; //define a variavel que corresponde a uma letra o teclado
//definido por char

void setup() {
pinMode(ledPin, OUTPUT); //define que o pino 13 será uma saida
Serial.begin(9600);
}
void loop() {
leitura = Serial.read(); // a variavel leitura será obtida através do
teclado
if (leitura == 'L') {
digitalWrite(ledPin, LOW);}
else if (leitura == 'H') {
digitalWrite(ledPin, HIGH);}
}
Mini-curso Arduino

Push Button
Mini-curso Arduino

 1 – Arduino Uno
 1 - Push button
 1 – Led
 1 - Resistor de 1 K
 1 – Protoboard
Mini-curso Arduino
Mini-curso Arduino

int ledPin = 13; // porta 13 em output para o LED

int inPin = 7; // porta 7 em input (para o push button)

int val = 0; // variável para ler o status do pino

void setup() {

pinMode(ledPin, OUTPUT); // declare LED como output

pinMode(inPin, INPUT); // declare pushbutton como input

void loop(){

val = digitalRead(inPin); // ler a entrada de valor

if (val == HIGH) {// verificar se a entrada é alta

digitalWrite(ledPin, LOW); // LED OFF

} else {

digitalWrite(ledPin, HIGH); // LED ON

}
Mini-curso Arduino

SENSOR ULTRA SOM

A distância do sensor de ultra-som comum de


medição é de cerca de 2 cm a 3-5m. O módulo
sensor funciona mais ou menos assim:
Mini-curso Arduino

Sensor Ultra-Sônico (HC-SR04) Ele contem 4


pinos, sendo eles:

 VCC : alimentação de 5V
 TRIG : pino de gatilho
 ECHO : pino de eco
 GND : terra
Mini-curso Arduino
Mini-curso Arduino

#define echoPin 12 //Pino 12recebe o pulso do echo


#define trigPin 13 //Pino 13 envia o pulso para gerar o echo

void setup() {
pinMode(echoPin, INPUT); // define o pino 13 como entrada (recebe)
pinMode(trigPin, OUTPUT); // define o pino 12 como saida (envia)
Serial.begin(9600); // inicia comunicação serial em 9600bps
}
void loop() {
#
digitalWrite(trigPin, LOW); // delay de 2 microssegundos
delayMicroseconds(2); //seta o pino 12 com pulso alto "HIGH" ou ligado ou
ainda 1
digitalWrite(trigPin, HIGH); //delay de 10 microssegundos
delayMicroseconds(10); //seta o pino 12 com pulso baixo novamente
digitalWrite(trigPin, LOW); //pulseInt lê o tempo chamada e o pino entrar em
high
long duration = pulseIn(echoPin,HIGH);
float distancia = duration /29 / 2 ;
Serial.print(“distancia: ");
Serial.print(distancia);
Mini-curso Arduino
Mini-curso Arduino
Mini-curso Arduino
Mini-curso Arduino

 Tensão de Entrada Lógica: 6-12v


 Tensão de Saída: 4,8-35v
 Corrente de Entrada Lógica: 36mA
 Corrente de Saída: 2A
 Energia Máx. Dissipada: 25W (75°C)
 Nível de Sinal de Controle: 2,3v ≤ Vin ≤ Vss
(Alto); -0.3v ≤ Vin ≤ 1,5v (Baixo)
 Faixa de Temperatura: -25°C ~ +130°C
Mini-curso Arduino

SERVO MOTOR são motores de posição


frequentemente usados em aeromodelos,
carrinhos e outros veículos radio-controlados
são muito utilizados em automação e robótica.
Mini-curso Arduino

Um servomotor consiste essencialmente em um


motor de corrente contínua com um circuito de
controle de posição acoplado.
Os servomotores não dão uma volta completa
em seu eixo, eles possuem uma faixa ou de 90
ou 180 graus em seu eixo.
Do servomotor sai três cabos: preto, vermelho e
branco ou amarelo.
Os cabos preto e vermelho são para alimentação
e o branco ou amarelo é o cabo de controle.
Mini-curso Arduino
Mini-curso Arduino

Internamente, para que o servomotor funcione,


consiste de um circuito de controle que recebe
um sinal de controle para que o servomotor se
posicione em um determinado ângulo.
Mini-curso Arduino
Mini-curso Arduino

int PotenPino = 0;
int valor =0;

void setup(){
Serial.begin(9600);
}
void loop(){
valor = analogRead(PotenPino);
Serial.println(valor);
delay(1000);
}
Mini-curso Arduino

#include <Servo.h>

Servo servo1;
int PotenPino = 0;
int valor =0;

void setup(){
servo1.attach(9); // servo será ligado na porta 9
}
void loop(){
valor = analogRead(PotenPino);
valor = map(valor, 0, 1023, 0, 179); // transforma de 1023 para 180º

servo1.write(valor);
delay(1);
}
Mini-curso Arduino
Mini-curso Arduino
Mini-curso Arduino
Mini-curso Arduino
Mini-curso Arduino
Mini-curso Arduino
Mini-curso Arduino
Mini-curso Arduino

Você também pode gostar