Você está na página 1de 44

WorkShop Introduo ao

Arduino

Formador: Daniel Costa

01-01-2014

Objectivos
No final da formao estaro aptos a:
Configurar de forma correcta os diferentes
mdulos Arduino;
Configurar e utilizar pinos de I/O;
Configurar e utilizar portos de comunicaes;
Utilizar funes especiais;
Utilizar o software de desenvolvimento
Arduino-IDE;
Formador: Daniel Costa

O que o Arduino??
Plataforma baseada em
microcontrolador
Programvel atravs de
USB
Com uma vasta
comunidade de
utilizadores
Preo muito abaixo de
equipamentos
semelhantes (20)
Formador: Daniel Costa

Caractersticas

Formador: Daniel Costa

Caractersticas
Placa de microcontrolador baseada no
ATmega328
14 pinos de entrada/sada digital (dos quais 6
podem ser usados como sadas analgicas
PWM)
6 entradas analgicas
Cristal oscilador de 16 MHz
Ligao USB
Entrada para alimentao
Boto de reset.

Caractersticas

Formador: Daniel Costa

Alimentao
O Arduino Uno pode ser alimentado pela ligao
USB ou por qualquer fonte de alimentao externa.

A fonte de alimentao seleccionada automaticamente.

Alimentao externa (no-USB) pode ser tanto de uma


fonte ou de uma bateria.

A placa pode operar com uma alimentao externa de 6 a


20 volts.
Formador: Daniel Costa

Alimentao
Os pinos de alimentao so:
VIN. Entrada de alimentao para a placa
Arduino quando uma fonte externa for
utilizada.
5V. A fonte de alimentao utilizada para o
microcontrolador e para outros componentes
da placa.
3V3. Alimentao de 3,3 volts fornecida pelo
chip FTDI. A corrente mxima de 50 mA.
GND. Pino terra.
Formador: Daniel Costa

Memria
O ATmega328 tem 32 KB de memria flash
para armazenar cdigo

2 KB so utilizados pelo bootloader


2 KB de SRAM e 1 KB de EEPROM (que pode
ser lida e escrita atravs da

I/0 Entradas e Sadas


Cada um dos 14 pinos digitais do Uno
pode ser usado como entrada
ou sada.
Operam com 5 volts.
Cada pino pode fornecer ou receber um
mximo de 40 mA.
Tem uma resistncia de pull-up interna
(normalmente desligada) de 20-50 kOhms.

Formador: Daniel Costa

I/0 Especiais
Comunicao Srie:
Pinos: 0 (RX) e 1 (TX).

Usados para receber (RX)

Transmitir (TX) dados srie TTL.

Estes pinos so ligados aos pinos


correspondentes do chip srie FTDI USB-toTTL.

Formador: Daniel Costa

I/0 Especiais
Interrupes
Pinos 2 e 3.

Estes pinos podem ser configurados para


disparar uma interrupo por:

um valor LOW - 0

uma valor HIGH 1

transio descendente

uma mudana de valor.

Formador: Daniel Costa

I/0 Especiais
PWM Pulse Width Modulation
Pinos: 3, 5, 6, 9, 10, e 11. Fornecem uma
sada analgica PWM de 8-bit .
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13
(SCK). Estes pinos suportam comunicao
SPI, que embora compatvel com o hardware,
no est includa na linguagem do Arduino.
Formador: Daniel Costa

Entradas Analgicas
O Uno tem 6 entradas
analgicas
Cada uma delas tem;

uma resoluo de 10 bits (i.e. 1024


valores diferentes)
Por padro, elas medem de 0 a 5
volts.
Formador: Daniel Costa

Entradas Analgicas Especiais


I2C: 4 (SDA) and 5 (SCL). Suportam
comunicao I2C (TWI)
H ainda alguns outros pinos na placa:
AREF. Referncia de voltagem para
entradas analgicas.
Reset.
Formador: Daniel Costa

DUVIDAS??
Formador: Daniel Costa

Mdulos Extra
SHIELDS

Ethernet Shield

Formador: Daniel Costa

Motor Shield

Formador: Daniel Costa

Bluetooth Shield

Formador: Daniel Costa

XBee Shield

Formador: Daniel Costa

PROGRAMAO

Software

Formador: Daniel Costa

Barra de Ferramentas

Formador: Daniel Costa

Estrutura do Programa
void setup()
Progra
ma

Formador: Daniel Costa

Executado apenas no
arranque do Arduino

void loop()
Executado
ciclicamente

Estrutura do Programa
void setup()
A funo setup() evocada
sempre que um sketch
arranca.
utilizada para inicializar
variveis, pinos de entrada,

Estrutura do Programa
int buttonPin = 3;
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop()
{
//
...
}
Formador: Daniel Costa

Estrutura do Programa
void loop()
Depois de criar o mtodo setup(), a
funo loop() executa todas as
instrues ciclicamente.
Depois de iniciada esta funo no
mais pra.

Formador: Daniel Costa

Estrutura do Programa
int buttonPin = 3;
void setup()
{
// ...
}
void loop()
{
if (digitalRead(buttonPin) == HIGH)
serialWrite('H');
else
serialWrite('L');
delay(1000);
}
Formador: Daniel Costa

Programa - Instrues
Categorias:
Estruturas de controlo;
Digital I/O;
Analog I/O;
Advanced I/O;
Time;
Communication

Formador: Daniel Costa

Estruturas de Controlo
if
if...else
for
switch case
while
do... while
break
continue
returnFormador: Daniel Costa

Digital I/O
pinMode(pin, mode)
digitalWrite(pin, value)
int digitalRead(pin)

Formador: Daniel Costa

Analog I/O
int analogRead(pin)

analogWrite(pin, value) - PWM

Formador: Daniel Costa

Advanced I/O
int analogRead(pin)

analogWrite(pin, value) - PWM

Formador: Daniel Costa

Time
unsigned long millis()
unsigned long micros()
delay(ms)
delayMicroseconds(us)
Formador: Daniel Costa

Serial Communication
begin()
available()
read()
flush()
print()
println()
write()
Formador: Daniel Costa

DUVIDAS??
Formador: Daniel Costa

Exerccios-Projectos

Exerccio1
LED Pisca Pisca
Colocar o led do pino 13 a piscar com uma
frequncia de 1Hz;

Colocar o led do pino 13 a piscar com uma


frequncia de 10Hz;
Formador: Daniel Costa

Projecto 1
Sequncia de leds

Formador: Daniel Costa

Exerccio2
Ler interruptores ligados nos pinos 5, 6 e 7 e:
Acender LED do pino 3 caso pinos 5 e 7
estejam a ON;
Acender LED do pino 4 caso pino 6 esteja a
ON;
Formador: Daniel Costa

Projecto 2
Controlo de um servo motor

Formador: Daniel Costa

Exerccio 3
Ler o valor de um sensor analgico
(potencimetro) e enviar o valor do mesmo
via comunicao srie.

Formador: Daniel Costa

Projectos:
-Elaborar um relgio que actualiza as horas
ao segundo.(Nota: enviar os valores para a
porta srie de modo a visualizar a hora no
PC.)
-DIMMER-Canrios
-Parque de estacionamento
-Central de alarme de incndios
-etc

Formador: Daniel Costa

Você também pode gostar