Escolar Documentos
Profissional Documentos
Cultura Documentos
ORDVAC
ENIAC
EDVAC
1958
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
Dimensões
Basic Stamp – 2
Variantes
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.
7 a 12 V
Auto Reset
Atmega 328
(16)3375-7778 - São Carlos/SP
https://www.arduino.cc/
Ambiente de Programação: Download do IDE ARDUINO
Instalando o IDE ARDUINO
Diretório Arduino após a Instalação
Drivers de Comunicação
Iniciando o IDE
Clicar no Ícone
na Área de
Trabalho
Configurações iniciais do IDE ARDUINO
Marcar
Desmarcar
A Interface do IDE
Área de Programação
• Área de Notificações: é uma área
que apresenta os erros de compilação, se o
upload do programa obteve êxito e se a
compilação também ocorreu com sucesso.
• Declaração de Bibliotecas
• Definição de Variáveis
• Definições Pessoais
Falar do ProtoBoard
D13
Pino 13 (LOW = 0V/ HIGH = 5V)
470Ω
R = 150Ω a 1KΩ
Resistor Limitador de Corrente
470Ω
//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);
}
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
}
Controlando Maiores Potências com Arduino:
Utilizando Transistor FET
9V
Solenoide
Solenoide
IRF530 D
G IRF530
D13
FET
N
S
2,2KΩ
470Ω 2,2KΩ
IRF530 1 – G = GATE
N -Channel 3 2 – D = DRAIN
2
1 3 – S = SOUCE
Projeto_02 - Reconhecendo o Comando de uma Chave
(Salvar na pasta, Projeto_02)
D2 5V
10KΩ 10KΩ
LED VM
D4
470Ω Ch1
470Ω
//***** Projeto_02 *** Entrada Digital ***** //PROGRAMA PRINCIPAL
void loop()
//DEFINIÇÕES {
int SAIDA_DIG = 2; //LED estado = HIGH;
int ENTRADA_DIG = 4; //CHAVE while (estado == HIGH)
int i, estado; {
estado = digitalRead(ENTRADA_DIG);
//CONFIGURANDO O HARDWARE }
void setup()
{ for (i=0; i<5; i++)
pinMode(SAIDA_DIG, OUTPUT); {
pinMode(ENTRADA_DIG, INPUT); 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
}
}
QUAIS APLICAÇÕES PODEMOS TER PARA
CIRCUITOS QUE VIMOS ATÉ AGORA ???
CITEM EXEMPLOS
Projeto_03 - Acoplando um Sensor Ótico no Arduino:
D2 5V
FOTO-TRANSISTOR
LED
INFRAVERMELHO
C
FOTO-TRANSISTOR
LED VD LED IR TIL78
E
1 2 3 4
SINAL D5
Circuito Integrado
470Ω 470Ω 12KΩ 40106
E C
5V
14 13 12 11 10 9 8
SINAL DE ENTRADA
D5
{
pinMode(SAIDA_DIG, OUTPUT);
pinMode(ENTRADA_DIG, INPUT); 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
}
}
Cerâmica Piezoeléctrica (PZT)
SINAL
1 2 3 4
D5
PTZ 120KΩ
PTZ
SINAL DE ENTRADA
D5
1 2 3 4 5 6 7
SINAL D5
Arduino Reconhecendo Vibração Mecânica
SINAL
1 2 3 4
D5
PTZ 120KΩ
5V
14 13 12 11 10 9 8
while (estado == LOW)
{
estado = digitalRead(ENTRADA_DIG);
}
1 2 3 4 5 6 7
SINAL D5
Desafio: Como medir o tempo de queda de um corpo?
Δt = ?
Desafio: Como medir o tempo de queda de um corpo?
Vamos Assistir um Vídeo:
+5V
SINAL
+5V GND A0
FOTOSENSOR
LED IR
1 2 3
INICIA FINALIZA
MEDIDA IGNORA
MEDIDA
Projeto_05: - Medindo Temperatura com LM35 e Arduino
Por dentro
do LM35
Projeto_05: - Medindo Temperatura com LM35 e Arduino
-
-
-
Sensor de
Temperatura
LM35 1 3
2
Utilizando o MONITOR SERIAL
R
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
//*** 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);
} // Calcula a Distância distância ➔ x = v.t
//PROGRAMA PRINCIPAL
void loop() {
// x = 340(m/s) . t (pulseIn em 10^-6, micro segundos)
digitalWrite(trigPin, LOW); // x = 340.10^2(cm/s) . t.10^-6
delayMicroseconds(2); // x = 340.10^-4 . t
digitalWrite(trigPin, HIGH); // x = 0,0340 . t / 2 (cm) ➔ (Tempo Divido por 2, IDA e VOLTA do PULSO)
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);
}
//*** 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);
}
Exemplos de Aplicações
Exemplos de Aplicações
Exemplos de Aplicação
OBRIGADO A
TODOS
FIM!!!!
CURSO ARDUINO BÁSICO – MATERIAL COMPLEMENTAR
BARREIRA
ISOLAÇÃO ÓPTICA
Ligação - Módulos Relé Opto-Isolados
Normalmente Fechado
Comum
Normalmente Aberto
Ativado
em LOW
Controlando Maiores Potencias com o Arduino:
Utilizando o Módulo RELÉS
//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
}
Material_Complementar_02 – ALARME DE DISTÂNCIA COM SENSOR DE ULTRASOM
//*** Material_Complementar_02 *** digitalWrite(trigPin, HIGH);
//*** ALARME DE DISÂNCIA * HC-SR04 ULTRASSOM *** delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//DEFINIÇÕES DAS VARIÁVEIS duracao = pulseIn(echoPin, HIGH);
int trigPin=13, echoPin=12, ledvm=11, ledvd 10; distancia = 0.0340 *(duracao/2);
float distancia; unsigned long duracao; // Se distância > 2 metros ou distância< 4 centímetros
if (distancia >= 200 || distancia <= 4){
//CONFIGURANDO O HARDWARE Serial.println("Fora do Alcance");
void setup() { digitalWrite(ledvm,HIGH); // Sinaliza ERRO pelo LED VM
Serial.begin (9600); digitalWrite(ledvd, LOW);
pinMode(trigPin, OUTPUT); //Trig para pino 13 }
pinMode(echoPin, INPUT); //Echo para pino 12 // Se a distância estiver DENTRO do alcance
pinMode(ledvm, OUTPUT); //LED VM + pino 11 else {
pinMode(ledvd, OUTPUT); //LED VD + pino 10 // Imprime no Monitor Serial a Distância com 1 casa decimal
} Serial.print(distancia, 1);
Serial.println(" cm");
//PROGRAMA PRINCIPAL digitalWrite(ledvm, LOW);
void loop() { digitalWrite(ledvd, HIGH); // Sinaliza OK pelo LED VD
digitalWrite(trigPin, LOW); }
delayMicroseconds(2); delay(500);
}