Вы находитесь на странице: 1из 50

Arduino

Estrutura de hardware e software

11/04/2018
Campus Mossoró, Eng Msc Kleber Jacinto

12/04/2018 1
Arduino
hardware

12/04/2018 2
Arduino
Hardware

Oficiais

12/04/2018 3
Arduino
Hardware

Clones

12/04/2018 4
Arduino
Hardware

Clones

12/04/2018 5
Arduino
Hardware

Clones

12/04/2018 6
Arduino
Hardware

Clones

12/04/2018 7
Arduino
Hardware

Clones

12/04/2018 8
Arduino
Hardware

Clones

12/04/2018 9
Arduino
Hardware

Clones

12/04/2018 10
Arduino
Hardware

Clones

12/04/2018 11
Arduino
Hardware

Componentes

https://www.circuitar.com.br/tutoriais/esquema-eletrico-do-arduino-o-guia-definitivo/
12/04/2018 12
Arduino
Hardware

Shields

12/04/2018 13
Arduino
Hardware

Shields

12/04/2018 14
Arduino
Hardware

Shields

12/04/2018 15
Arduino
Software

12/04/2018 16
Arduino
Software

IDE

Versão em 04/2018: 1.8.5 https://www.arduino.cc/en/main/software


12/04/2018 17
Arduino
Software

Ardublock

https://www.circuitar.com.br/tutoriais/ardublock-programacao-grafica-para-arduino/
12/04/2018 18
Arduino
Software

Programino

http://programino.com/download-programino-ide-for-arduino.html
12/04/2018 19
Arduino
Software

Codeblocks

http://arduinodev.com/codeblocks/#download

12/04/2018 20
Arduino
Software

fritzing

http://fritzing.org/download/

12/04/2018 21
Arduino
Software

Programação

#include <Ethernet.h> // Bibliotecas adicionais

void setup() {
// Inicialização: este código roda apenas uma vez

void loop() {
// Repetição: este código rodara indefinidamente

12/04/2018 22
Arduino
Software

Programação

Operadores Aritméticos
% (módulo)
* (multiplicação)
+ (adição)
- (subtração)
/ (divisão)
= (operador de atribuição)

12/04/2018 23
Arduino
Software

Programação

Operadores de Comparação
!= (diferente de)
< (menor que)
<= (menor que ou igual a)
== (igual a)
> (maior que)
>= (maior que ou igual a)

12/04/2018 24
Arduino
Software

Programação

Operadores Boleanos
! (NÃO lógico)
&& (E lógico)
|| (OU lógico)

12/04/2018 25
Arduino
Software

Programação

Constantes
Constantes
Constantes Inteiras
Constantes de Ponto Flutuante

12/04/2018 26
Arduino
Software

Programação
Tipos de Dados
String()
bool
boolean
byte
char
double
float
int
long
short
string
unsigned char
unsigned int
unsigned long
vetor
void
word
12/04/2018 27
Arduino
Software

Programação

Conversão de tipos de dados


byte()
char()
float()
int()
long()
word()

12/04/2018 28
Arduino
Software

Programação

Funções Matemáticas Funções Trigonométricas


abs() cos()
constrain() sin()
map() tan()
max()
min()
pow() Números Aleatórios
sq() random()
sqrt() randomSeed()

12/04/2018 29
Arduino
Software

Programação

Entradas e Saídas Digitais Entradas e Saídas Avançadas


digitalRead() noTone()
digitalWrite() pulseIn()
pinMode() shiftIn()
shiftOut()
Entradas e Saídas Analógicas tone()
analogRead()
analogReference()
analogWrite()

12/04/2018 30
Arduino
Software

Programação

Estruturas de Controle Funções Temporizadoras


break delay()
continue delayMicroseconds()
do...while micros()
else millis()
for
goto
if...else
return
switch...case
while

12/04/2018 31
Arduino
Software
Programação Exemplos
const int analogPin = A0;
const int ledPin = 13;
const int threshold = 400;

void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}

void loop() {
int analogValue = analogRead(analogPin);
if (analogValue > threshold) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
Serial.println(analogValue);
delay(1);
}
12/04/2018 32
Arduino – Entradas e Saídas
Conversando com o mundo exterior

12/04/2018 33
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas
Digitais
~ PWM

Portas
Analógicas

12/04/2018 34
Arduino – Entradas e saídas
Configuração e funcionalidades

Sinais digitais

12/04/2018 35
Arduino – Entradas e saídas
Configuração e funcionalidades

Sinais Analógicos

12/04/2018 36
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas digitais
• 13 pinos: entradas ou saídas. Padrão: entradas
• Como entrada: Estado de alta impedância (para efeito prático, resistência),
equivalente a um resistor de 100 MegaOhms em serie com o circuito a ser
monitorado. O pino absorve uma corrente muito baixa do circuito que está
monitorando.
• É necessário colocar um resistor de pull up (ligado a +5V) ou um resistor de
pull down (ligado a GND). Valor comum para o resistor: 10Ω

12/04/2018 37
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas digitais
• ATmega328 possui resistores de pull up internos (20KΩ)
• Como saída: baixa impedância.
• O pino pode fornecer ou drenar corrente para um circuito externo.
• Corrente máxima de um pino: 40 mA
• Soma das correntes de todos os pinos: 200 mA.
• Curto-circuitos: dano permanente.

12/04/2018 38
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas digitais: funções associadas


pinMode();
Configurar um pino como entrada ou saída digital. Ela geralmente é utilizada
dentro da função setup().
Sintaxe:
pinMode(pino, modo);

Parâmetros:
pino: Número correspondente ao pino que se deseja configurar, conforme a
placa que está trabalhando. No caso da Arduino UNO pode ser de 0 a 13;

modo: Modo que deseja configurar o pino. INPUT, INPUT_PULLUP, OUTPUT.


INPUT: Entrada digital;
INPUT_PULLUP: Entrada digital com resistor de pull-up (ligado ao VCC) interno
habilitado;
OUTPUT: Saída digital;
12/04/2018 39
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas digitais: funções associadas


digitalRead();
Lê o valor presente em um pino digital. Este valor pode ser HIGH ou LOW.

Sintaxe:
digitalRead(pino);

Parâmetros:
pino: valor correspondente ao pino que se deseja ler.
Retorno:
HIGH ou LOW.

12/04/2018 40
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas digitais: funções associadas


digitalWrite();
Coloca um nível lógico Alto (HIGH, 5V) ou baixo (LOW, 0V) em um pino
configurado como saída digital.

Sintaxe:
digitalWrite(pino, valor)

Parâmetros:
pino: Número correspondente ao pino;
valor: HIGH OU LOW

12/04/2018 41
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas digitais: PWM

Vmédio = Vmax*(Duty Cycle/100)


12/04/2018 42
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas digitais: PWM

• Valores: 0 a 5V
• Representação: 8 bits – 0 a 255
• frequência:
• 490 Hz nos pinos 3, 9 10 e 11
• 980 Hz nos pinos 5 e 6
• Aplicações:
controle de velocidade de motores;
variação da luminosidade de leds;
geração de sinais analógicos;
geração de sinais de áudio.

12/04/2018 43
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas digitais: PWM

analogWrite();
Escreve um valor analógico numa porta digital. Não há conversão Analógico-
digital.

Sintaxe:
analogWrite(pino, valor);

Parâmetros:
Pino: corresponde ao pino que será gerado o sinal PWM;
Valor: corresponde ao duty cycle, ou seja, o valor que permanecerá em nível
alto o sinal. Entre 0 e 255.

12/04/2018 44
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas Analógicas

• Aceita sinais do tipo analógico e converte para valores digitais através de


um conversor analógico digital (ADC ou A/D).
• Valores de entrada: 0 a 5V ou 0 a 1,1V (referencia interna) ou de zero à
tensão no pino Aref
• Valores convertidos: 0 a 1023 (10bits)
• Resolução:
• Para entrada 5V: res = 5/1024 = 4,88mV
• Para entrada 1,1V: res = 1,1/1024 = 1,07mV
• Para uma tensão em Aref: res = Aref/1024

ATENSÃO: alguns modelos de ATMEL podem possuir tensões máximas


diferentes. Essencial sempre olhar o datasheet.

12/04/2018 45
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas Analógicas: Funções associadas


analogReference();
Configura a referência de tensão para a conversão analógica/digital, usando
esse valor como o máximo para a entrada analógica.

Sintaxe:
analogReference(tipo);

Parâmetros:
tipo:
DEFAULT: a tensão padrão para conversão é a tensão de alimentação da placa. 5 V para
placas alimentadas com 5 V e 3,3 V para placas alimentadas com 3,3 V;
INTERNAL: referência interna de 1,1V no Atmega168 e Atmega328, e 2,56 V no
ATmega8;
INTERNAL1V1: referência de 1,1V, apenas no Arduino Mega;
INTERNAL2V56: referência interna de 5,6 V, apenas no Arduino Mega;
EXTERNAL: referência de tensão aplicada no pino AREF (valor entre 0 e 5V).
12/04/2018 46
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas Analógicas Funções associadas


analogRead(pino);
Lê o valor presente em um pino configurado como entrada analógica. O tempo
coleta dura cerca de 100 micro segundos; a máxima frequência de amostragem
é de 10000 vezes por segundo.

Sintaxe:
analogRead(pino);

Parâmetros:
pino: valor do pino configurado como entrada analógica (0 a 5 na maioria da
placas, 0 a 7 na MINI e NANO, 0 a 15 na MEGA).

Retorno
int (0 a 1023)

12/04/2018 47
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas Analógica: Simulação de Sensores

Potenciômetro
Configurado como um divisor de tensão pode “fornecer” a variação de tensão
que simule um sensor.

Vin = Tensão de referencia


Vout = tensão de entrada do pino analógico

= .
+

12/04/2018 48
Arduino – Entradas e saídas
Configuração e funcionalidades

Portas Analógica: Simulação de Sensores

Potenciômetro
Configurado como um divisor de tensão pode “fornecer” a variação de tensão
que simule um sensor.

Vin

Vin = Tensão de referencia


Vout = tensão de entrada do pino analógico

Vout

GND

12/04/2018 49
Estudem!

12/04/2018 50

Вам также может понравиться