curso arduino bÁsico - lef.ifsc.usp.br · arduino: é uma plataforma de prototipagem eletrônica...

69
Luiz Antonio de Oliveira Nunes/ Antenor Fabbri Petrilli Filho CURSO ARDUINO BÁSICO Versão 1.0

Upload: dohuong

Post on 16-Oct-2018

224 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Luiz Antonio de Oliveira Nunes/

Antenor Fabbri Petrilli Filho

CURSO ARDUINO BÁSICO

Versão 1.0

Page 2: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Mark I: Primeiro Computador Eletromecânico.O Mark I foi idealizado Howard Aiken da Universidade de Harvard (1937) e

construído pela IBM (1939-1944)

Controlando a Condução Eletricamente

Lee de Forest – 1906

Inventor do Tríodo a Vácuo

Page 3: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

ENIAC Electronic Numerical Integrator and Computer (Computador Integrador Numérico

Eletrônico) foi o Primeiro Computador Digital Eletrônico de grande escala – (Pennsylvania

University)

ENIAC Começou a ser desenvolvido em 1943 durante a Segunda Guerra Mundial

Foco do Projeto: Calculo Balístico

Sua capacidade de processamento era de 5.000 Operações por segundo

possuía 17.468 Válvulas Termiônicas. 30 segundos x 12 horas

ENIACEDVAC

ORDVAC

Page 4: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Transistor

Shockley – Brattain - Bardeen

Page 5: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

EVOLUÇÃO

1958

Page 6: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Microcontrolador é um pequeno computador residente em um único circuito

integrado, o qual contém uma unidade central de processamento, memorias, periféricos

programáveis e portas de entrada e saída.

Partes Internas

CPU

Memoria ROM

Memoria RAM

Portas E/S Dados

Porta Serial

Timer

Conversores AD, DA

Partes Externas

Fonte de Alimentação

Clock

Mercado: Automotivo, Domestico, Hospitalar, etc

Page 7: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Lançado da Década de 90

Page 8: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Basic Stamp Basic Stamp - 1 BS - 2

Dimensões

Basic Stamp – 2

Variantes

Page 9: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Arduino: é uma plataforma de prototipagem eletrônica que permitir o

desenvolvimento de sistemas interativos.

Arduino: foi desenvolvido na Itália, por uma equipe chefiada por

Massimo Banzi em 2005.

Aconselhado para iniciantes:Microcontrolador é o Atmega328

Pode ser conectado ao computador

por meio de uma porta USB.Possui 6 pinos de Entrada analógica

14 pinos digitais (de entrada e saída),

alguns podem operar com PWM

Atualmente a Plataforma Arduino é altamente difundida e tornou-se

uma Comunidade de Compartilhamento.

Page 10: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

ARDUINO UNO E SUAS VARIANTES

Page 11: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

ARDUINO - Shield:

Page 12: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

7 a 12 V

Atm

eg

a 3

28

Auto Reset

Arduino UNO

Page 13: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

https://www.arduino.cc/

(16)3375-7778 - São Carlos/SP

Page 14: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Ambiente de Programação: Download do IDE ARDUINO

Page 15: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido
Page 16: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido
Page 17: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Instalando o IDE ARDUINO

Page 18: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Drivers de Comunicação

Diretório Arduino após a Instalação

Page 19: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Iniciando o IDE

Clicar no Ícone

na Área de

Trabalho

Page 20: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Configurações iniciais do IDE ARDUINO

Desmarcar

Marcar

Page 21: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

• Compila: cria uma versão do programa

em linguagem de maquina;

• Upload: transfere o programa em

linguagem de maquina para o Arduino;

• Serial Monitor: é um monitor que

envia e recebe dados do Arduino. É umainterface Arduino-PC;

• Área de Notificações: é uma área

que apresenta os erros de compilação, se oupload do programa obteve êxito e se acompilação também ocorreu com sucesso.

• Área de Programação: é onde

digitamos o código que será programadono Arduino.

A Interface do IDE

Área de Programação

Page 22: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Configurando o Tipo da Placa Arduino

e sua Porta de Comunicação

Page 23: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

UPLOAD DE SEU PRIMEIRO SKETCH

Page 24: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Viva!!! Consegui fazer alguma coisa!!!

Clicar na seta para

transferir o programa

para o ARDUINO

Page 25: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

• Declaração de Bibliotecas

• Definição de Variáveis

• Definições Pessoais

• void setup(): // Executa uma única vez

Definições de Hardware

• void loop(): // Executa indefinidamente (exit(0))

Programa propriamente dito

Software – Estrutura de Programação

Page 26: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Projeto_01 - Fazendo um Led Piscar

Page 27: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

470Ω

Falar do ProtoBoard

LED

470Ω

D13

LED Vermelho 5mm

R = 150Ω a 1KΩ

Resistor Limitador de Corrente

GND (da Placa do ARDUINO)

Pino 13 (LOW = 0V/ HIGH = 5V)

Projeto_01 - Fazendo um Led Piscar

Page 28: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Salvando nossos Projetos

DICA: Cada Projeto em uma Pasta Diferente

(Criar a pasta e Salvar como Projeto_1)

Page 29: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//************** Projeto_01 *** Saída Digital **************

//DEFINIÇÕES

int SAIDA_DIG = 13;

//CONFIGURANDO O HARDWARE

void setup()

pinMode(SAIDA_DIG, OUTPUT);

//PROGRAMA PRINCIPAL

void loop()

digitalWrite(SAIDA_DIG, HIGH); //COLOCA O PINO 13 EM 5 VOLTS

delay(5000); // EM MSEG //ESPERA UM TEMPO DETERMINADO

//delayMicroseconds(1500);

digitalWrite(SAIDA_DIG, LOW); //COLOCA O PINO 13 EM 0 VOLTS

delay(5000); // ESPERA UM TEMPO DETERMINADO

//delayMicroseconds(600);

Page 30: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Vamos agora trocar o pino 13 para o

pino 10//****** Projeto_01 *** Saída Digital ******

//DEFINIÇÕES

int SAIDA_DIG = 10;

//CONFIGURANDO O HARDWARE

void setup()

pinMode(SAIDA_DIG, OUTPUT);

//PROGRAMA PRINCIPAL

void loop()

digitalWrite(SAIDA_DIG, HIGH); //COL

delay(5000); // EM MSEG //ESP

digitalWrite(SAIDA_DIG, LOW); //COL

delay(5000); //ESP

Page 31: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

S

G

D

2,2KΩ

IRF530

So

len

oid

e

D13

9V

Controlando Maiores Potências com Arduino:

Utilizando Transistor FET

470Ω 2,2KΩ

IRF530

Sole

no

ide

FET

N

12

31 – G = GATE

2 – D = DRAIN

3 – S = SOUCE

IRF530

N -Channel

Page 32: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

D4

10KΩ

Ch1

5V

Projeto_02 - Reconhecendo o Comando de uma Chave

(Salvar na pasta, Projeto_02)

10KΩ

470Ω

LED VM

470Ω

D2

Page 33: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//***** Projeto_02 *** Entrada Digital *****

//DEFINIÇÕES

int SAIDA_DIG = 2; //LED

int ENTRADA_DIG = 4; //CHAVE

int i, estado;

//CONFIGURANDO O HARDWARE

void setup()

pinMode(SAIDA_DIG, OUTPUT);

pinMode(ENTRADA_DIG, INPUT);

//PROGRAMA PRINCIPAL

void loop()

estado = HIGH;

while (estado == HIGH)

estado = digitalRead(ENTRADA_DIG);

for (i=0; i<5; i++)

digitalWrite(SAIDA_DIG, HIGH); //COLOCA O PINO 13 EM 5 VOLTS

delay(500); // EM MSEG //ESPERA 0,5 SEGUNDOS

digitalWrite(SAIDA_DIG, LOW); //COLOCA O PINO 13 EM 0 VOLTS

delay(500); //ESPERA 0,5 SEGUNDOS

Page 34: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

QUAIS APLICAÇÕES PODEMOS TER PARA

CIRCUITOS QUE VIMOS ATÉ AGORA ???

CITEM EXEMPLOS

Page 35: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Projeto_03 - Acoplando um Sensor Ótico no Arduino:

Falar que este circuito pode detectar a luz da sala

LED VD

470Ω

D2

1 2 3 4 5 6 7

14 13 12 11 10 9 85V

D5SINAL

1 2 3 4

12KΩ

5V

D5

470Ω

E

CFOTO-TRANSISTOR

TIL78

Circuito Integrado

40106

LED IR

SINAL

FOTO-TRANSISTOR

E C

LED

INFRAVERMELHO

Page 36: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

SINAL DE ENTRADA

D5

SAÍDA SCHIMITT TRIGGER

LUZ

Page 37: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//***** Projeto_03 *** PHOTO-GATE *****

//DEFINIÇÕES

int SAIDA_DIG = 2; //LED

int ENTRADA_DIG = 5; //SENSOR LUZ

int i, estado;

//CONFIGURANDO O HARDWARE

void setup()

pinMode(SAIDA_DIG, OUTPUT);

pinMode(ENTRADA_DIG, INPUT);

//PROGRAMA PRINCIPAL

void loop()

estado = HIGH;

while (estado == HIGH)

estado = digitalRead(ENTRADA_DIG);

for (i=0; i<5; i++)

digitalWrite(SAIDA_DIG, HIGH); //LED ON - PINO 2 EM 5 VOLTS

delay(300); // EM MSEG //ESPERA 0,3 SEGUNDOS

digitalWrite(SAIDA_DIG, LOW); //LED OFF - PINO 2 EM 0 VOLTS

delay(300); //ESPERA 0,3 SEGUNDOS

1 2 3 4

12KΩ

5V

D5

470Ω

E

C

FOTO-

TRANSISTOR

Circuito

Integrado

40106

LED

IR

SINAL

Page 38: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Cerâmica Piezoeléctrica (PZT)

1 2 3 4 5 6 7

14 13 12 11 10 9 85V

D5SINAL

PTZ

D5

120KΩ

1 2 43SINAL

SINAL DE ENTRADA

D5

SAÍDA SCHIMITT TRIGGER

PTZ

Page 39: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Arduino Reconhecendo Vibração Mecânica

1 2 3 4 5 6 7

14 13 12 11 10 9 85V

D5SINAL

PTZ

D5

120KΩ

1 2 43SINAL

while (estado == LOW)

estado = digitalRead(ENTRADA_DIG);

Page 40: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Desafio: Como medir o tempo de queda de um corpo?

Δt = ?

Page 41: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Desafio: Como medir o tempo de queda de um corpo?

Page 42: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Vamos Assistir um Vídeo:

Vídeo Queda Livre

Youtube: Vídeo Queda Livre

Page 43: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

O microcontrolador é um microprocessador, memória RAM, memória ROM,

temporizadores, contadores, porta serial, conversores e portas de I/O em um único

circuito integrado.

Projeto_04: - Lendo Tensões com Arduino

Page 44: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

+5V GND

SINAL

+5V

GND

A0

Projeto_04: - Lendo Tensões com Arduino

MONTAGEM 0V → 5V

0 → 1023

Potenciômetro 10KΩ

Page 45: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//************** Projeto_04 *** USANDO O CONVERSOR A/D **************

//DEFINIÇÕES DAS VARIÁVEIS

long int pot;

float volt;

//CONFIGURANDO O HARDWARE

void setup()

Serial.begin(9600); //Inicializa a COMUNICAÇÃO SERIAL – SERIAL MONITOR

analogReference(DEFAULT); //Referência de ADC em 5V

//analogReference(INTERNAL); //Referência de ADC em 1,1V

//analogReference(EXTERNAL); //Referência externa em AREF entre 0 e 5V

//PROGRAMA PRINCIPAL

void loop()

pot = analogRead(A0); //Lê a Tensão através do PINO A0

volt = (5.0 * pot) / 1023; //Converte o valor lido para VOLTS

Serial.print("ADC: " ); //Imprime "ADC: “, e continua na mesma linha

Serial.print(pot); //Imprime o Valor Lido – (BITS), e continua na mesma linha

Serial.print(" | VOLT: " ); // //Imprime “VOLT: “, e continua na mesma linha

Serial.println(volt, 3); //Imprime o valor da TENSÂO, com 3 decimais e pula uma linha

delay(1000); //Espera 1 segundo

Page 46: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Desafio:

Como poderíamos medir e/ou plotar a oscilação de um pêndulo???

O que poderíamos fazer com o exemplo mostrado acima?

INICIA

MEDIDA IGNORA

FINALIZA

MEDIDA

1 2 3

LED IR

FOTOSENSOR

Page 47: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Projeto_05: - Medindo Temperatura com LM35 e Arduino

Faixa de medição é de -55 ºC* a +150 ºC

Precisão de ± 0,5 º C

* - requer circuito especifico ( Ver Datasheet)

Page 48: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Por dentro

do LM35

Amplificadores Operacionais

A1 e A2

Page 49: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Projeto_05: - Medindo Temperatura com LM35 e Arduino

2

31

Sensor de

Temperatura

LM35

-

-

-

Page 50: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//*** Projeto_05 *** CONV. A/D – TERMOMETRO – MONITOR SERIAL***

//DEFINIÇÕES DAS VARIÁVEIS

long int pot;

float volt, temp;

//CONFIGURANDO O HARDWARE

void setup()

Serial.begin(9600); //Inicializa a COMUNICAÇÃO SERIAL

analogReference(INTERNAL); //Referência do ADC em 1.1V

//PROGRAMA PRINCIPAL

void loop()

pot = analogRead(A1); //Lê a Tensão ADC, através do PINO A1

volt = (1.1 * pot) / 1023; //Converte o valor lido para VOLTS

temp = volt * 100; //Converte tensão para temperatura

Serial.print( "ADC: "); //Imprime "ADC: “, e continua na mesma linha

Serial.print(pot); //Imprime o Valor Lido do ADC(BITS) e continua na mesma linha

Serial.print(" | TENSÃO: " ); //Imprime “VOLT: “, e continua na mesma linha

Serial.print(volt, 3); //Imprime o valor da TENSÂO em mV e continua na mesma linha

Serial.print(" | TEMP: " ); //Imprime “TEMP: “, e continua na mesma linha

Serial.println(temp, 1); //Imprime o valor da TEMPERATURA e pula uma linha

delay(1000); //Espera 1 segundo

Utilizando o MONITOR SERIAL

Page 51: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//*** Projeto_05 *** CONV. A/D – TERMOMETRO – MONITOR SERIAL***

//DEFINIÇÕES DAS VARIÁVEIS

long int pot;

float volt, temp;

//CONFIGURANDO O HARDWARE

void setup()

Serial.begin(9600); //Inicializa a COMUNICAÇÃO SERIAL

analogReference(INTERNAL); //Referência do ADC em 1.1V

//PROGRAMA PRINCIPAL

void loop()

pot = analogRead(A1); //Lê a Tensão ADC, através do PINO A1

volt = (1.1 * pot) / 1023; //Converte o valor lido para VOLTS

temp = volt * 100; //Converte tensão para temperatura

Serial.print( "ADC: "); //Imprime "ADC: “, e continua na mesma linha

Serial.print(pot); //Imprime o Valor Lido do ADC(BITS), e continua na mesma linha

Serial.print(" | TENSÃO: " ); //Imprime “VOLT: “, e continua na mesma linha

Serial.print(volt, 3); //Imprime o valor da TENSÂO em mV, e continua na mesma linha

Serial.print(" | TEMP: " ); //Imprime “TEMP: “, e continua na mesma linha

Serial.println(temp, 1); //Imprime o valor da TEMPERATURA, e pula uma linha

delay(1000); //Espera 1 segundo

Utilizando o MONITOR SERIAL

Clique aqui para iniciar

o MONITOR SERIAL

Page 52: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//*** Projeto_05a *** CONV. A/D – TERMOMETRO – PLOTTER SERIAL***

//DEFINIÇÕES DAS VARIÁVEIS

long int pot;

float volt, temp

//CONFIGURANDO O HARDWARE

void setup()

Serial.begin(9600); //Inicializa a COMUNICAÇÃO SERIAL

analogReference(INTERNAL); //Referência do ADC em 1.1V

//PROGRAMA PRINCIPAL

void loop()

pot = analogRead(A1); //Lê a Tensão ADC, através do PINO A1

volt = (1.1 * pot) / 1023; //Converte o valor lido para VOLTS

temp = volt * 100; //Converte tensão para temperatura

Serial.print( "ADC: "); //Imprime "ADC: “, e continua na mesma linha

Serial.print(pot); Serial.print(" "); //Imprime o Valor Lido do ADC(BITS) e comando para próxima variável

Serial.print( "| Tensão: " ); //Imprime “VOLT: “, e continua na mesma linha

Serial.print(volt, 3); Serial.print (" "); //Imprime o valor da TENSÂO em mV e comando para próxima variável

Serial.print( "| TEMP: " ); //Imprime “TEMP: “, e continua na mesma linha

Serial.println(temp, 1); Serial.print (" "); //Imprime o valor da TEMPERATURA, e pula uma linha

delay(1000); //Espera 1 segundo

Utilizando o PLOTTER SERIAL

Page 53: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//*** Projeto_05a *** CONV. A/D – TERMOMETRO – PLOTTER SERIAL***

//DEFINIÇÕES DAS VARIÁVEIS

long int pot;

float volt, temp;

//CONFIGURANDO O HARDWARE

void setup()

Serial.begin(9600); //Inicializa a COMUNICAÇÃO SERIAL

analogReference(INTERNAL); //Referência do ADC em 1.1V

//PROGRAMA PRINCIPAL

void loop()

pot = analogRead(A1); //Lê a Tensão ADC, através do PINO A1

volt = (1.1 * pot) / 1023; //Converte o valor lido para VOLTS

temp = volt * 100; //Converte tensão para temperatura

Serial.print( "ADC: "); //Imprime "ADC: “, e continua na mesma linha

Serial.print(pot); Serial.print(" "); //Imprime o Valor Lido do ADC(BITS), e comando para próxima variável

Serial.print( "| Tensão: " ); //Imprime “VOLT: “, e continua na mesma linha

Serial.print(volt, 3); Serial.print (" "); //Imprime o valor da TENSÂO em mV e comando para próxima variável

Serial.print( "| TEMP: " ); //Imprime “TEMP: “, e continua na mesma linha

Serial.println(temp, 1); Serial.print (" "); //Imprime o valor da TEMPERATURA, e pula uma linha

delay(1000); //Espera 1 segundo

Utilizando o PLOTTER SERIAL

Page 54: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Som é uma onda de compressão mecânica tridimensional que se propaga

em meios materiais. Os sons audíveis pelo ouvido humano têm uma frequência

entre 20Hz e 20000Hz

Percepção da Velocidade do Som através da observação de Relâmpagos e Trovões

Velocidade da Luz 3 .108 m/s Velocidade do Som 343m/s

Projeto_06 – Medindo distâncias com Sensor Ultrassônico

Page 55: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Medindo a Velocidade do Som

1636_ Mersenne ( Disparo de canhões (316 m/s))

1666_ Borelli a Viviane, discípulos de Galileo (361 m/s)

1687_ Newton determina a velocidade do som (295 m/s)

1708_ William Derham (Disparo de Canhão a 20Km (348 m/s)

1822_ Prony, Arago, Bouyard, Mathieu, Gay-Lussac e Humboldt (340.9 m/s)

1826_ Colladon e Sturn, Velocidade do som na água (1435 m/s)

1905_ Hebb utilizou o processo de interferência (331,41 m/s)

Page 56: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Medida direta da Velocidade do Som com Arduino

R

T

Page 57: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Projeto_06 – Medindo distâncias com Sensor Ultrassônico

Montagem

ESQUEMA DE LIGAÇÃO

HC-SR04 – ARDUINO

VCC – +5V ARDUINO

TRIGGER – PINO 13

ECHO – PINO 12

GND – GND ARDUINO

Page 58: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//*** Projeto_06 – MEDIDOR DE DISTÂNCIA – HC-SR04***

//DEFINIÇÕES DAS VARIÁVEIS

#define trigPin 13

#define echoPin 12

float distancia; unsigned long tempo;

//CONFIGURANDO O HARDWARE

void setup()

Serial.begin(9600); //Inicializa a COMUNICAÇÃO SERIAL

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

//PROGRAMA PRINCIPAL

void loop()

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duracao = pulseIn(echoPin, HIGH);

distancia = 0.0340 *(tempo/2);

Serial.print(distancia, 1); // Imprime no Monitor Serial a Distância com 1 casa decimal

Serial.println(" cm");

delay(500);

// Calcula a Distância distância x = v.t// x = 340(m/s) . t (pulseIn em 10^-6, micro segundos)

// x = 340.10^2(cm/s) . t.10^-6

// x = 340.10^-4 . t

// x = 0,0340 . t / 2 (cm) (Tempo Divido por 2, IDA e VOLTA do PULSO)

Page 59: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//*** Projeto_06 – MEDIDOR DE DISTÂNCIA – HC-SR04***

//DEFINIÇÕES DAS VARIÁVEIS

#define trigPin 13

#define echoPin 12

float distancia; unsigned long duracao;

//CONFIGURANDO O HARDWARE

void setup()

Serial.begin(9600); //Inicializa a COMUNICAÇÃO SERIAL

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

//PROGRAMA PRINCIPAL

void loop()

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duracao = pulseIn(echoPin, HIGH);

distancia = 0.0340 *(duracao/2);

Serial.print(distancia, 1); // Imprime no Monitor Serial a Distância com 1 casa decimal

Serial.println(" cm");

delay(500);

Page 60: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Exemplos de Aplicações

Page 61: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Exemplos de Aplicações

Page 62: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Exemplos de Aplicação

Page 63: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

OBRIGADO A TODOSFIM!!!!

Page 64: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Luiz Antonio de Oliveira Nunes/

Antenor Fabbri Petrilli Filho

CURSO ARDUINO BÁSICO – MATERIAL COMPLEMENTAR

Versào1.0

Page 65: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Material_Complementar_01 - Controlando Maiores Potencias com o Arduino:

Utilizando o Módulo RELÉS

BARREIRA

ISOLAÇÃO ÓPTICALigação - Módulos Relé Opto-Isolados

Ativado

em LOW

Normalmente Fechado

Comum

Normalmente Aberto

Page 66: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Controlando Maiores Potencias com o Arduino:

Utilizando o Módulo RELÉS

Observe que o Módulo Relé

Ativa com Pulso LOW

Page 67: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

/*** Material_Complementar_01 *** MÓDULO RELÉ CONTROLE DE CARGAS POTENTES ***

//DEFINIÇÕES DAS VARIÁVEIS

int SAIDA_DIG = 10;

//CONFIGURANDO O HARDWARE

void setup()

pinMode(SAIDA_DIG, OUTPUT); //CONFIGURA PINO 10 COMO SAIDA PARA ACIONAR O RELÉ

//PROGRAMA PRINCIPAL

void loop()

digitalWrite(SAIDA_DIG, LOW); //ACIONA O RELE COM NIVEL LÓGICO LOW

delay(500); //ESPERA 0,5 SEGUNDOS

digitalWrite(SAIDA_DIG, HIGH); //DESLIGA O RELÉ COM NÍVEL LOGICO HIGH

delay(500); //ESPERA 0,5 SEGUNDOS

Page 68: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

Material_Complementar_02 – ALARME DE DISTÂNCIA COM SENSOR DE ULTRASOM

Page 69: CURSO ARDUINO BÁSICO - lef.ifsc.usp.br · Arduino: é uma plataforma de prototipagem eletrônica que permitir o desenvolvimento de sistemas interativos. Arduino: foi desenvolvido

//*** Material_Complementar_02 ***

//*** ALARME DE DISÂNCIA * HC-SR04 ULTRASSOM ***

//DEFINIÇÕES DAS VARIÁVEIS

int trigPin=13, echoPin=12, ledvm=11, ledvd 10;

float distancia; unsigned long duracao;

//CONFIGURANDO O HARDWARE

void setup()

Serial.begin (9600);

pinMode(trigPin, OUTPUT); //Trig para pino 13

pinMode(echoPin, INPUT); //Echo para pino 12

pinMode(ledvm, OUTPUT); //LED VM + pino 11

pinMode(ledvd, OUTPUT); //LED VD + pino 10

//PROGRAMA PRINCIPAL

void loop()

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duracao = pulseIn(echoPin, HIGH);

distancia = 0.0340 *(duracao/2);

// Se distância > 2 metros ou distância< 4 centímetros

if (distancia >= 200 || distancia <= 4)

Serial.println("Fora do Alcance");

digitalWrite(ledvm,HIGH); // Sinaliza ERRO pelo LED VM

digitalWrite(ledvd, LOW);

// Se a distância estiver DENTRO do alcance

else

// Imprime no Monitor Serial a Distância com 1 casa decimal

Serial.print(distancia, 1);

Serial.println(" cm");

digitalWrite(ledvm, LOW);

digitalWrite(ledvd, HIGH); // Sinaliza OK pelo LED VD

delay(500);