Arduino – Parte 2
TREINAMENTO PROF. WELLINGTON TELLES CUNHA
Projeto 3 – Luz Pulsante
 Material:
 Arduino
 1 LED vermelho
 1 Resistor de 180 ohms
 Protoboard
 Jumpers
Projeto 3
MONTAGEM
Projeto 3
Código
int LED = 9;
float seno;
int intensidade;
void setup()
{
pinMode(LED, OUTPUT);
}
void loop()
{
for (int i = 0; i < 180; i++){
seno = sin (i*(3.1416 / 180));
intensidade = int (seno * 255);
analogWrite (LED, intensidade);
delay (25);
}
}
Projeto 4 – Controle de LED
 Material
 Arduino
 1 LED vermelho
 1 resistor de 180 ohms
 1 potenciômetro de 10k ohms
 Protoboard
 Jumpers
Projeto 4
MONTAGEM
Projeto 4
Código
int POT = A1;
int LED = 13;
int valor = 0;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(POT, INPUT);
}
void loop()
{
valor = analogRead(POT);
digitalWrite(LED,HIGH);
delay (valor);
digitalWrite(LED,LOW);
delay (valor);
}
Projeto 5 - PWM
 Material
 Arduino
 1 LED vermelho
 1 resistor de 220 ohms
 1 potenciômetro de 10k ohms
 Protoboard
 Jumpers
Projeto 5
MONTAGEM
Projeto 5
Código
int LED = 3;
int POTE = A0;
int valor = 0;
void setup()
{
pinMode (LED, OUTPUT);
pinMode (POTE, INPUT);
}
void loop()
{
valor = analogRead(POTE);
analogWrite (LED, valor/4);
delay(1000);
}
Console de
Comunicação
 Este experimento visa permitir que se verifique que a
instalação o ambiente de programação do Arduino
está funcionando corretamente no seu computador.
 Visa também fazer com que você aprenda como
usar as funções:
 Serial.read() : permite que você use o teclado do PC
para mandar entradas(inputs) para o Arduino
 Serial.write() : permite que o Arduino “escreva” na tela
do PC
Serial
Código
int LED = 3;
int POTE = A0;
int valor = 0;
void setup()
{
pinMode (LED, OUTPUT);
pinMode (POTE, INPUT);
Serial.begin(9600);
}
void loop()
{
valor = analogRead(POTE);
analogWrite (LED, valor/4);
Serial.println (valor);
delay(1000);
}
Projeto 6 - LED Controle de
Luminosidade por botão
 Material
 Arduino
 1 LED vermelho
 1 resistor de 180 ohm
 1 Botão push-button
 1 resistor de 10k ohm
 Protoboard
 Jumper
Projeto 6
MONTAGEM
Projeto 6
Código
int LED = 9; // Pino do LED
int BOTAO = 7; // Pino do Botão
int valor = LOW;
int valorAnterior = LOW;
int estado =0; // 0 = apagado, 1 = aceso
int brilho = 128;
unsigned long inicio;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(BOTAO, INPUT);
}
void loop()
{
valor = digitalRead(BOTAO);
if ((valor == HIGH) && (valorAnterior == LOW)){
estado = 1 - estado;
inicio = millis(); // Tempo Arduino iniciado (ms)
delay (10);
}
if ((valor == HIGH) && (valorAnterior == HIGH)){
// mais de meio segundo 500ms
if (estado == 1 && (millis()-inicio)>500){
brilho++;
delay (10);
if (brilho>255) brilho = 0;
}
}
valorAnterior = valor;
if (estado == 1)
analogWrite(LED, brilho); // Define o Brilho
else
analogWrite(LED,0); // Apaga o LED
}
LED RGB
Projeto 7 – RGB
 Material:
 Arduino
 1 LED RGB
 3 resistores de 330 ohms
 Protoboard
 Jumpers
Projeto 7
MONTAGEM
Projeto 7
Código
int RED = 11;
int GREEN = 10;
int BLUE = 9;
int sRED = 0; // Sorteia cor
int sGREEN = 0;
int sBLUE = 0;
void setup()
{
pinMode (RED, OUTPUT);
pinMode (GREEN, OUTPUT);
pinMode (BLUE, OUTPUT);
}
void loop()
{
analogWrite(RED,sRED);
analogWrite(GREEN, sGREEN);
analogWrite(BLUE, sBLUE);
delay (500);
sRED = random (256);
sGREEN = random (256);
sBLUE = random (256);
}
Projeto
7b
MONTAGEM
Projeto 7b
Código
int RED = 11;
int GREEN = 10;
int BLUE = 9;
int sRED = 0; // Sorteia cor
int sGREEN = 0;
int sBLUE = 0;
unsigned long int tempo = 0;
void setup()
{
pinMode (RED, OUTPUT);
pinMode (GREEN, OUTPUT);
pinMode (BLUE, OUTPUT);
}
void loop()
{
analogWrite(RED,sRED);
analogWrite(GREEN, sGREEN);
analogWrite(BLUE, sBLUE);
delay (100);
sRED = sin(tempo*tempo/50000.0)*128+128;
sGREEN = sin(tempo*tempo/10000.0)*128+128;
sBLUE = sin(tempo*tempo/70000.0)*128+128;
tempo += 10;
}
Projeto
7c
MONTAGEM
Projeto 7c
int RED = 11;
int GREEN = 10;
int BLUE = 9;
int sRED = 0; // Sorteia cor
int sGREEN = 0;
int sBLUE = 0;
void setup()
{
pinMode (RED, OUTPUT);
pinMode (GREEN, OUTPUT);
pinMode (BLUE, OUTPUT);
}
void loop()
{
analogWrite(RED,sRED);
analogWrite(GREEN, sGREEN);
analogWrite(BLUE, sBLUE);
delay (500);
sRED = random (256);
sGREEN = random (256);
sBLUE = random (256);
}
Projeto 8 – LED RGB +
Potenciômetro
 Material
 Arduino
 1 LED RGB
 3 resistores de 220 ohms
 1 potenciômetro de 10k ohms
 Protoboard
 Jumpers
Projeto 8
MONTAGEM
Projeto 8
Código
int POT = A0;
int vPOT = 0;
int RED = 11;
int GREEN = 10;
int BLUE = 9;
int sRED = 0; // colors
int sGREEN = 0;
int sBLUE = 0;
void setup()
{
pinMode (RED, OUTPUT);
pinMode (GREEN, OUTPUT);
pinMode (BLUE, OUTPUT);
pinMode (POT, INPUT);
}
void loop()
{
vPOT = analogRead (POT);
sRED = vPOT / 4;
sGREEN = vPOT / 8;
sBLUE = vPOT / 16;
analogWrite(RED,sRED);
analogWrite(GREEN, sGREEN);
analogWrite(BLUE, sBLUE);
delay (20);
}
Projeto 9 – Semáforo 2
 Objetivo: Criar um sistema semafórico através de botões (Push Button);
 Material:
 1 Arduino
 3 Resistores de 220 ohms (vermelho, vermelho, marrom)
 3 Botões tipo Push Button
 1 LED RBG
 3 Resistores 10K ohms
 1 Protoboard
 Jumpers
Projeto 9
MONTAGEM
Projeto 9
Código
int RED = 11; // Cores
int GREEN = 10;
int BLUE = 9;
int BRED = 7; // Botões
int BYELLOW = 6;
int BGREEN = 5;
int vver = LOW; // Ler Botões
int vama = LOW;
int vverd = LOW;
void setup()
{
pinMode (RED, OUTPUT);
pinMode (GREEN, OUTPUT);
pinMode (BLUE, OUTPUT);
pinMode (BRED, INPUT);
pinMode (BYELLOW, INPUT);
pinMode (BGREEN, INPUT);
}
void loop()
{
vver = digitalRead(BRED);
vama = digitalRead(BYELLOW);
vverd = digitalRead(BGREEN);
if (vver == HIGH) {
analogWrite(RED,255); analogWrite(GREEN,0); analogWrite(BLUE,0);
}
if (vama == HIGH) {
analogWrite(RED,255); analogWrite(GREEN,0); analogWrite(BLUE,255);
}
if (vverd == HIGH) {
analogWrite(RED,0); analogWrite(GREEN,0); analogWrite(BLUE,255);
}
delay (50);
}
Projeto 10 – Entrada Serial
 Material:
 Arduino
 1 LED verde
 1 Resistor de 220 ohms
 Protoboard
 Jumpers
Projeto
10
MONTAGEM
Projeto 10
Código
int LED = 13;
int entrada = 0;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
Serial.println("Digite 1 para acender o LED ou 0 para apagar:");
}
void loop()
{
if (Serial.available() > 0){
entrada = Serial.read();
Serial.print ("Recebido: ");
Serial.println (entrada, DEC);
if (entrada=='0')
digitalWrite (LED, LOW);
else if (entrada=='1')
digitalWrite (LED, HIGH);
else
Serial.println ("Por favor, digite apenas 0 ou 1!");
}
}
Projeto 10b
Código
int LED = 13;
int entrada = 0;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
Serial.println("Digite 1 para acender o LED ou 0 para apagar:");
}
void loop()
{
if (Serial.available() > 0){
entrada = Serial.read();
Serial.print ("Recebido: ");
Serial.println (entrada, DEC);
Serial.print ("Em caractere:");
Serial.print ((char) entrada);
if (entrada=='0')
digitalWrite (LED, LOW);
else if (entrada=='1')
digitalWrite (LED, HIGH);
else
Serial.println ("Por favor, digite apenas 0 ou 1!");
}
}
Projeto 11 - Bip simples utilizando
um Buzzer
 Material
Arduino
1 Buzzer
1 resistor de 220 ohms
Protoboard
Jumpers
Projeto
11
MONTAGEM
Projeto 11
Código
// Pino do buzzer
int BUZZER = 8;
void setup()
{
pinMode(BUZZER, OUTPUT);
}
void loop()
{
// pino e a frequência
tone (BUZZER, 1200);
delay (500);
// Para o toque
noTone(BUZZER);
delay (500);
// pino, frequência e duração
tone (BUZZER, 1200, 500);
delay(500);
}
Projeto 12 – “Música”
 Material
Arduino
1 Buzzer
1 resistor de 220 ohms
Protoboard
Jumpers
Projeto
12
MONTAGEM
Projeto 12
Código
// Pino do buzzer
int BUZZER = 8;
int numNotas = 10;
// notas C C# D D# E F F# G G# A
int notas[] = {261, 277, 294, 311, 330,
349, 370, 392, 415, 440};
void setup()
{
pinMode(BUZZER, OUTPUT);
}
void loop()
{
for (int i = 0; i < numNotas; i++){
tone (BUZZER, notas[i]);
delay (500);
}
noTone (BUZZER);
delay (1000);
}
Sensor de
Temperatura
DHT11
 Veja que no módulo já vem
um resistor de 10k ohms que
facilita a montagem
 Mede entre -20ºC e 60ºC
aproximadamente
DHT11
 Funciona como um botão,
ou seja, terá um resistor de
10K ohms para a nossa
ligação
Para instalar no
arduino o DHT
Montagem
Código
#include <Adafruit_Sensor.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
DHT dht = DHT(DHTPIN, DHTTYPE); // inicializar o sensor para Arduino 16MHz
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000); // Dois segundos leitura de temperatura e 250 ms para humidade
float h = dht.readHumidity(); // humidade em %
float t = dht.readTemperature(); // Temperatura em graus Celsius
float f = dht.readTemperature(true); // Temperatura em graus Fahrenheit
// Se alguma leitura falhou ele retorna
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Falha ao ler o sensor DHT!");
return;
}
Serial.print("Humidade: "); Serial.print(h); Serial.print(" % ");
Serial.print("Temperatura: "); Serial.print(t); Serial.print(" xC2xB0");
Serial.print("C | ");
Serial.print(f); Serial.print(" xC2xB0"); Serial.println("F ");
}
Projeto 13 – Alarme Temperatura
 Material:
 1 Arduino
 1 Resistor de 220 ohms (vermelho, vermelho, marrom)
 1 Buzzer
 1 Termistor ou sensor de temperatura NTC
 1 Protoboard
 Jumpers
Projeto 13
MONTAGEM
Projeto 13
Código
int pinotermistor = A0;
int BUZZER = 8;
int valor;
int T;
int mV;
void setup()
{
pinMode(pinotermistor, INPUT);
pinMode(BUZZER, OUTPUT);
Serial.begin(9600);
}
void loop()
{
valor = analogRead(pinotermistor);
mV = map(valor,0,1023,0,5000);
T = (mV/10)-50;
Serial.println("Valor em mV");
Serial.println(mV);
Serial.println("Valor em grau C");
Serial.println(T);
if (T>30) {
tone (BUZZER, 1200);
delay (500);
noTone (BUZZER);
delay (500);
} else {
noTone (BUZZER);
}
delay(50);
}
Desafio – Projeto 14
CRIAR UM SEMÁFORO COMPLETO DE UM CRUZAMENTO
Solução
desafio
Projeto 15 - Sensor de Distância
Material
Arduino
Sensor de distância HC-SR04
Protoboard
Jumpers
Projeto15
MONTAGEM
Projeto 15
Código
int ECHO = 7; //Pino 7 recebe o pulso
int TRIG = 8; //Pino 8 envia o pulso
long duracao = 0;
long distancia = 0;
void setup()
{
Serial.begin (9600);
pinMode(ECHO, INPUT);
pinMode(TRIG, OUTPUT);
}
void loop()
{
digitalWrite (TRIG, LOW);
delay(10);
digitalWrite (TRIG, HIGH);
delay(10);
digitalWrite (TRIG, LOW);
duracao = pulseIn (ECHO, HIGH);
distancia = duracao / 58;
Serial.print ("Distancia em cm: ");
Serial.println (distancia);
delay (100);
}
Projeto 16 – Sensor de
Estacionamento 1
 Material
 Arduino
 1 Resistor de 330 ohms
 1 Buzzer
 1 Sensor de distância ultrassônico
 Protoboard
 Jumpers
Projeto
16
MONTAGEM
Projeto 16
Código
int TRIG = 13;
int ECHO = 10;
int BUZZ = 2;
long duracao = 0;
long distancia = 0;
void setup()
{
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(BUZZ, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite (TRIG, LOW);
delay(10);
digitalWrite (TRIG, HIGH);
delay(10);
digitalWrite (TRIG, LOW);
duracao = pulseIn (ECHO, HIGH);
distancia = duracao / 58;
Serial.println (distancia);
if (distancia <= 80)
{
tone (BUZZ, 1200, 500);
} else
{
noTone(BUZZ);
}
delay (100);
}
Projeto 16b – Sensor de
Estacionamento 2
 Materiais
 Arduino
 Cinco LEDs vermelhos
 Cinco resistores de 330 ohms
 Sensor de distância ultrassônico HC-SR04
 Protoboard
 Jumpers
Projeto
16b
MONTAGEM
Projeto 16b
Código
// Leitura HC-SR04
const uint8_t trig_pin = 10;
const uint8_t echo_pin = 9;
uint32_t print_timer;
void setup() {
Serial.begin(9600); // Habilita Comunicação Serial a uma taxa de 9600 bauds.
// Configuração do estado inicial dos pinos Trig e Echo.
pinMode(trig_pin, OUTPUT);
pinMode(echo_pin, INPUT);
digitalWrite(trig_pin, LOW);
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
}
void loop() {
// Espera 0,5s (500ms) entre medições.
if (millis() - print_timer > 500) {
print_timer = millis();
// Pulso de 5V por pelo menos 10us para iniciar medição.
digitalWrite(trig_pin, HIGH);
delayMicroseconds(11);
digitalWrite(trig_pin, LOW);
/* Mede quanto tempo o pino de echo ficou no estado alto, ou seja,
o tempo de propagação da onda. */
uint32_t pulse_time = pulseIn(echo_pin, HIGH);
/* A distância entre o sensor ultrassom e o objeto será proporcional a velocidade
do som no meio e a metade do tempo de propagação. Para o ar na
temperatura ambiente Vsom = 0,0343 cm/us. */
double distance = 0.0172312 * pulse_time;
// Imprimimos o valor na porta serial;
Serial.print(distance);
Serial.println(" cm");
if (distance>200) {digitalWrite(6, LOW);} else {digitalWrite(6, HIGH);}
if (distance>160) {digitalWrite(5, LOW);} else {digitalWrite(5, HIGH);}
if (distance>120) {digitalWrite(4, LOW);} else {digitalWrite(4, HIGH);}
if (distance>80) {digitalWrite(3, LOW);} else {digitalWrite(3, HIGH);}
if (distance>40) {digitalWrite(2, LOW);} else {digitalWrite(2, HIGH);}
}
}
Projeto 17 – Sensor de
Luminosidade
 Material
 Arduino
 1 LED vermelho
 1 Resistor de 220 ohms
 1 Fotorresistor (LDR)
 1 Resistor de 10k ohms
Projeto
17
MONTAGEM
Projeto 17
Código
int LED = 13;
int LDR = A0;
int entrada = 0; // Valor do LDR
void setup()
{
pinMode(LED, OUTPUT);
pinMode(LDR, INPUT);
}
void loop()
{
entrada = analogRead(LDR);
delay(500);
if (entrada < 100)
digitalWrite(LED, HIGH);
else
digitalWrite(LED, LOW);
delay(100);
}
Projeto 18 – Acionando um servo
motor
 Material
 Arduino
 1 Micro servo
 1 potenciômetro de 10K ohms
 Protoboard
 Jumpers
Acionamento
Servo Motor
 Servos de aeromodelismo
são controlados por um sinal
PWM (Pulse Width
Modulation) de período
20ms e largura entre 1ms a
2ms.
 A largura define a posição
do servo, entre 0 grau(1ms) e
seu valor máximo (2ms), em
geral, 120 graus
Projeto
18
MONTAGEM
Projeto 18
Código
#include "Servo.h"
Servo servo;
int POT = 0;
int SERVO = 6;
int valorPot;
int valorMotor = 0;
void setup()
{
servo.attach(SERVO);
Serial.begin(9600);
}
void loop()
{
valorPot = analogRead(POT);
valorMotor = map(valorPot,0,1023,0,180);
servo.write (valorMotor);
Serial.print (valorMotor);
delay (20);
}
Projeto 19 – Servo com serial
 Material
Arduino
1 Micro servo
Protoboard
Jumpers
Projeto
19
MONTAGEM
Projeto 19
Código
#include <Servo.h>
#define SERVO 6
Servo servo;
int ang;
char ch;
void setup () {
pinMode (SERVO, OUTPUT);
servo.attach(SERVO);
Serial.begin(9600);
ang = 0;
Serial.print("Setup completo");
}
void loop() {
// Le caracter
ch = 50;
if (Serial.available() > 0) {
ch = Serial.read();
}
// s: aumenta e d: diminui
if (ch == 's') {
ang = ang + 5;
if (ang > 100) {
ang = 100;
}
}
if (ch == 'd') {
ang = ang - 5;
if (ang < 0) {
ang = 0;
}
}
// muda o ângulo
servo.write(ang);
}
Display de 7
Segmentos
Código Descrição
PHD500
Display de Catodo
Comum, cor Vermelha
PHD507
Display de Anodo
Comum, cor Vermelha
PHD560
Catodo comum, cor
vermelha de alta
intensidade
PHD567
Anodo comum, cor
vermelha de alta
intensidade
Cátodo
e Ânodo
Display de 7
Segmentos
Catodo
Comum
https://e-radionica.com/productdata/LD3361BS.pdf
Projeto 20 – Display de 7
Segmentos
 Material
 Arduino
 Display de sete segmentos com catodo comum
 1 Resistor de 220 ohms
 Protoboard
 Jumpers
Projeto 20
MONTAGEM
Projeto 20
Código
int SEG_A = 2;
int SEG_B = 3;
int SEG_C = 4;
int SEG_D = 5;
int SEG_E = 6;
int SEG_F = 7;
int SEG_G = 8;
int PONTO = 9;
int ATRASO = 1000;
void setup()
{
pinMode(SEG_A, OUTPUT);
pinMode(SEG_B, OUTPUT);
pinMode(SEG_C, OUTPUT);
pinMode(SEG_D, OUTPUT);
pinMode(SEG_E, OUTPUT);
pinMode(SEG_F, OUTPUT);
pinMode(SEG_G, OUTPUT);
pinMode(PONTO, OUTPUT);
}
void loop()
{
digitalWrite(SEG_B, HIGH);
digitalWrite(SEG_C, HIGH);
}
Projeto 21 - Display 4511
 Materiais
 Arduino
 Display de 7 segmentos – Catodo comum
 Decodificador de 7 segmentos 4511
 1 Resistor de 150 ohms
 Protoboard
 Jumpers
Projeto
21
MONTAGEM
Projeto 21
Código
const int A = 4; // Primeiramente setamos os 4 pinos do CI 4511
const int B = 5;
const int C = 6;
const int D = 7;
void setup(){
pinMode(A, OUTPUT); // seta todos as portas que estão os leds do display como saída
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
}
void loop(){
digitalWrite(A, 0); //acende os leds que representam o número 0
digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 1
digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 2
digitalWrite(B, 1); digitalWrite(C, 0); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 3
digitalWrite(B, 1); digitalWrite(C, 0); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 4
digitalWrite(B, 0); digitalWrite(C, 1); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 5
digitalWrite(B, 0); digitalWrite(C, 1); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 6
digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 7
digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 8
digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 1);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 9
digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 1);
delay(1000);
digitalWrite(A, 1); // limpa a tela (todos segmentos desligados
digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 1);
delay(1000);

Arduino - Parte 2.pdf

  • 1.
    Arduino – Parte2 TREINAMENTO PROF. WELLINGTON TELLES CUNHA
  • 2.
    Projeto 3 –Luz Pulsante  Material:  Arduino  1 LED vermelho  1 Resistor de 180 ohms  Protoboard  Jumpers
  • 3.
  • 4.
    Projeto 3 Código int LED= 9; float seno; int intensidade; void setup() { pinMode(LED, OUTPUT); } void loop() { for (int i = 0; i < 180; i++){ seno = sin (i*(3.1416 / 180)); intensidade = int (seno * 255); analogWrite (LED, intensidade); delay (25); } }
  • 5.
    Projeto 4 –Controle de LED  Material  Arduino  1 LED vermelho  1 resistor de 180 ohms  1 potenciômetro de 10k ohms  Protoboard  Jumpers
  • 6.
  • 7.
    Projeto 4 Código int POT= A1; int LED = 13; int valor = 0; void setup() { pinMode(LED, OUTPUT); pinMode(POT, INPUT); } void loop() { valor = analogRead(POT); digitalWrite(LED,HIGH); delay (valor); digitalWrite(LED,LOW); delay (valor); }
  • 8.
    Projeto 5 -PWM  Material  Arduino  1 LED vermelho  1 resistor de 220 ohms  1 potenciômetro de 10k ohms  Protoboard  Jumpers
  • 9.
  • 10.
    Projeto 5 Código int LED= 3; int POTE = A0; int valor = 0; void setup() { pinMode (LED, OUTPUT); pinMode (POTE, INPUT); } void loop() { valor = analogRead(POTE); analogWrite (LED, valor/4); delay(1000); }
  • 11.
    Console de Comunicação  Esteexperimento visa permitir que se verifique que a instalação o ambiente de programação do Arduino está funcionando corretamente no seu computador.  Visa também fazer com que você aprenda como usar as funções:  Serial.read() : permite que você use o teclado do PC para mandar entradas(inputs) para o Arduino  Serial.write() : permite que o Arduino “escreva” na tela do PC
  • 12.
    Serial Código int LED =3; int POTE = A0; int valor = 0; void setup() { pinMode (LED, OUTPUT); pinMode (POTE, INPUT); Serial.begin(9600); } void loop() { valor = analogRead(POTE); analogWrite (LED, valor/4); Serial.println (valor); delay(1000); }
  • 13.
    Projeto 6 -LED Controle de Luminosidade por botão  Material  Arduino  1 LED vermelho  1 resistor de 180 ohm  1 Botão push-button  1 resistor de 10k ohm  Protoboard  Jumper
  • 14.
  • 15.
    Projeto 6 Código int LED= 9; // Pino do LED int BOTAO = 7; // Pino do Botão int valor = LOW; int valorAnterior = LOW; int estado =0; // 0 = apagado, 1 = aceso int brilho = 128; unsigned long inicio; void setup() { pinMode(LED, OUTPUT); pinMode(BOTAO, INPUT); } void loop() { valor = digitalRead(BOTAO); if ((valor == HIGH) && (valorAnterior == LOW)){ estado = 1 - estado; inicio = millis(); // Tempo Arduino iniciado (ms) delay (10); } if ((valor == HIGH) && (valorAnterior == HIGH)){ // mais de meio segundo 500ms if (estado == 1 && (millis()-inicio)>500){ brilho++; delay (10); if (brilho>255) brilho = 0; } } valorAnterior = valor; if (estado == 1) analogWrite(LED, brilho); // Define o Brilho else analogWrite(LED,0); // Apaga o LED }
  • 16.
  • 17.
    Projeto 7 –RGB  Material:  Arduino  1 LED RGB  3 resistores de 330 ohms  Protoboard  Jumpers
  • 18.
  • 19.
    Projeto 7 Código int RED= 11; int GREEN = 10; int BLUE = 9; int sRED = 0; // Sorteia cor int sGREEN = 0; int sBLUE = 0; void setup() { pinMode (RED, OUTPUT); pinMode (GREEN, OUTPUT); pinMode (BLUE, OUTPUT); } void loop() { analogWrite(RED,sRED); analogWrite(GREEN, sGREEN); analogWrite(BLUE, sBLUE); delay (500); sRED = random (256); sGREEN = random (256); sBLUE = random (256); }
  • 20.
  • 21.
    Projeto 7b Código int RED= 11; int GREEN = 10; int BLUE = 9; int sRED = 0; // Sorteia cor int sGREEN = 0; int sBLUE = 0; unsigned long int tempo = 0; void setup() { pinMode (RED, OUTPUT); pinMode (GREEN, OUTPUT); pinMode (BLUE, OUTPUT); } void loop() { analogWrite(RED,sRED); analogWrite(GREEN, sGREEN); analogWrite(BLUE, sBLUE); delay (100); sRED = sin(tempo*tempo/50000.0)*128+128; sGREEN = sin(tempo*tempo/10000.0)*128+128; sBLUE = sin(tempo*tempo/70000.0)*128+128; tempo += 10; }
  • 22.
  • 23.
    Projeto 7c int RED= 11; int GREEN = 10; int BLUE = 9; int sRED = 0; // Sorteia cor int sGREEN = 0; int sBLUE = 0; void setup() { pinMode (RED, OUTPUT); pinMode (GREEN, OUTPUT); pinMode (BLUE, OUTPUT); } void loop() { analogWrite(RED,sRED); analogWrite(GREEN, sGREEN); analogWrite(BLUE, sBLUE); delay (500); sRED = random (256); sGREEN = random (256); sBLUE = random (256); }
  • 24.
    Projeto 8 –LED RGB + Potenciômetro  Material  Arduino  1 LED RGB  3 resistores de 220 ohms  1 potenciômetro de 10k ohms  Protoboard  Jumpers
  • 25.
  • 26.
    Projeto 8 Código int POT= A0; int vPOT = 0; int RED = 11; int GREEN = 10; int BLUE = 9; int sRED = 0; // colors int sGREEN = 0; int sBLUE = 0; void setup() { pinMode (RED, OUTPUT); pinMode (GREEN, OUTPUT); pinMode (BLUE, OUTPUT); pinMode (POT, INPUT); } void loop() { vPOT = analogRead (POT); sRED = vPOT / 4; sGREEN = vPOT / 8; sBLUE = vPOT / 16; analogWrite(RED,sRED); analogWrite(GREEN, sGREEN); analogWrite(BLUE, sBLUE); delay (20); }
  • 27.
    Projeto 9 –Semáforo 2  Objetivo: Criar um sistema semafórico através de botões (Push Button);  Material:  1 Arduino  3 Resistores de 220 ohms (vermelho, vermelho, marrom)  3 Botões tipo Push Button  1 LED RBG  3 Resistores 10K ohms  1 Protoboard  Jumpers
  • 28.
  • 29.
    Projeto 9 Código int RED= 11; // Cores int GREEN = 10; int BLUE = 9; int BRED = 7; // Botões int BYELLOW = 6; int BGREEN = 5; int vver = LOW; // Ler Botões int vama = LOW; int vverd = LOW; void setup() { pinMode (RED, OUTPUT); pinMode (GREEN, OUTPUT); pinMode (BLUE, OUTPUT); pinMode (BRED, INPUT); pinMode (BYELLOW, INPUT); pinMode (BGREEN, INPUT); } void loop() { vver = digitalRead(BRED); vama = digitalRead(BYELLOW); vverd = digitalRead(BGREEN); if (vver == HIGH) { analogWrite(RED,255); analogWrite(GREEN,0); analogWrite(BLUE,0); } if (vama == HIGH) { analogWrite(RED,255); analogWrite(GREEN,0); analogWrite(BLUE,255); } if (vverd == HIGH) { analogWrite(RED,0); analogWrite(GREEN,0); analogWrite(BLUE,255); } delay (50); }
  • 30.
    Projeto 10 –Entrada Serial  Material:  Arduino  1 LED verde  1 Resistor de 220 ohms  Protoboard  Jumpers
  • 31.
  • 32.
    Projeto 10 Código int LED= 13; int entrada = 0; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); Serial.println("Digite 1 para acender o LED ou 0 para apagar:"); } void loop() { if (Serial.available() > 0){ entrada = Serial.read(); Serial.print ("Recebido: "); Serial.println (entrada, DEC); if (entrada=='0') digitalWrite (LED, LOW); else if (entrada=='1') digitalWrite (LED, HIGH); else Serial.println ("Por favor, digite apenas 0 ou 1!"); } }
  • 33.
    Projeto 10b Código int LED= 13; int entrada = 0; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); Serial.println("Digite 1 para acender o LED ou 0 para apagar:"); } void loop() { if (Serial.available() > 0){ entrada = Serial.read(); Serial.print ("Recebido: "); Serial.println (entrada, DEC); Serial.print ("Em caractere:"); Serial.print ((char) entrada); if (entrada=='0') digitalWrite (LED, LOW); else if (entrada=='1') digitalWrite (LED, HIGH); else Serial.println ("Por favor, digite apenas 0 ou 1!"); } }
  • 34.
    Projeto 11 -Bip simples utilizando um Buzzer  Material Arduino 1 Buzzer 1 resistor de 220 ohms Protoboard Jumpers
  • 35.
  • 36.
    Projeto 11 Código // Pinodo buzzer int BUZZER = 8; void setup() { pinMode(BUZZER, OUTPUT); } void loop() { // pino e a frequência tone (BUZZER, 1200); delay (500); // Para o toque noTone(BUZZER); delay (500); // pino, frequência e duração tone (BUZZER, 1200, 500); delay(500); }
  • 37.
    Projeto 12 –“Música”  Material Arduino 1 Buzzer 1 resistor de 220 ohms Protoboard Jumpers
  • 38.
  • 39.
    Projeto 12 Código // Pinodo buzzer int BUZZER = 8; int numNotas = 10; // notas C C# D D# E F F# G G# A int notas[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440}; void setup() { pinMode(BUZZER, OUTPUT); } void loop() { for (int i = 0; i < numNotas; i++){ tone (BUZZER, notas[i]); delay (500); } noTone (BUZZER); delay (1000); }
  • 40.
    Sensor de Temperatura DHT11  Vejaque no módulo já vem um resistor de 10k ohms que facilita a montagem  Mede entre -20ºC e 60ºC aproximadamente
  • 41.
    DHT11  Funciona comoum botão, ou seja, terá um resistor de 10K ohms para a nossa ligação
  • 42.
  • 43.
  • 44.
    Código #include <Adafruit_Sensor.h> #include <DHT.h> #defineDHTPIN 2 #define DHTTYPE DHT11 // DHT 11 DHT dht = DHT(DHTPIN, DHTTYPE); // inicializar o sensor para Arduino 16MHz void setup() { Serial.begin(9600); dht.begin(); } void loop() { delay(2000); // Dois segundos leitura de temperatura e 250 ms para humidade float h = dht.readHumidity(); // humidade em % float t = dht.readTemperature(); // Temperatura em graus Celsius float f = dht.readTemperature(true); // Temperatura em graus Fahrenheit // Se alguma leitura falhou ele retorna if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Falha ao ler o sensor DHT!"); return; } Serial.print("Humidade: "); Serial.print(h); Serial.print(" % "); Serial.print("Temperatura: "); Serial.print(t); Serial.print(" xC2xB0"); Serial.print("C | "); Serial.print(f); Serial.print(" xC2xB0"); Serial.println("F "); }
  • 45.
    Projeto 13 –Alarme Temperatura  Material:  1 Arduino  1 Resistor de 220 ohms (vermelho, vermelho, marrom)  1 Buzzer  1 Termistor ou sensor de temperatura NTC  1 Protoboard  Jumpers
  • 46.
  • 47.
    Projeto 13 Código int pinotermistor= A0; int BUZZER = 8; int valor; int T; int mV; void setup() { pinMode(pinotermistor, INPUT); pinMode(BUZZER, OUTPUT); Serial.begin(9600); } void loop() { valor = analogRead(pinotermistor); mV = map(valor,0,1023,0,5000); T = (mV/10)-50; Serial.println("Valor em mV"); Serial.println(mV); Serial.println("Valor em grau C"); Serial.println(T); if (T>30) { tone (BUZZER, 1200); delay (500); noTone (BUZZER); delay (500); } else { noTone (BUZZER); } delay(50); }
  • 48.
    Desafio – Projeto14 CRIAR UM SEMÁFORO COMPLETO DE UM CRUZAMENTO
  • 49.
  • 50.
    Projeto 15 -Sensor de Distância Material Arduino Sensor de distância HC-SR04 Protoboard Jumpers
  • 51.
  • 52.
    Projeto 15 Código int ECHO= 7; //Pino 7 recebe o pulso int TRIG = 8; //Pino 8 envia o pulso long duracao = 0; long distancia = 0; void setup() { Serial.begin (9600); pinMode(ECHO, INPUT); pinMode(TRIG, OUTPUT); } void loop() { digitalWrite (TRIG, LOW); delay(10); digitalWrite (TRIG, HIGH); delay(10); digitalWrite (TRIG, LOW); duracao = pulseIn (ECHO, HIGH); distancia = duracao / 58; Serial.print ("Distancia em cm: "); Serial.println (distancia); delay (100); }
  • 53.
    Projeto 16 –Sensor de Estacionamento 1  Material  Arduino  1 Resistor de 330 ohms  1 Buzzer  1 Sensor de distância ultrassônico  Protoboard  Jumpers
  • 54.
  • 55.
    Projeto 16 Código int TRIG= 13; int ECHO = 10; int BUZZ = 2; long duracao = 0; long distancia = 0; void setup() { pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); pinMode(BUZZ, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite (TRIG, LOW); delay(10); digitalWrite (TRIG, HIGH); delay(10); digitalWrite (TRIG, LOW); duracao = pulseIn (ECHO, HIGH); distancia = duracao / 58; Serial.println (distancia); if (distancia <= 80) { tone (BUZZ, 1200, 500); } else { noTone(BUZZ); } delay (100); }
  • 56.
    Projeto 16b –Sensor de Estacionamento 2  Materiais  Arduino  Cinco LEDs vermelhos  Cinco resistores de 330 ohms  Sensor de distância ultrassônico HC-SR04  Protoboard  Jumpers
  • 57.
  • 58.
    Projeto 16b Código // LeituraHC-SR04 const uint8_t trig_pin = 10; const uint8_t echo_pin = 9; uint32_t print_timer; void setup() { Serial.begin(9600); // Habilita Comunicação Serial a uma taxa de 9600 bauds. // Configuração do estado inicial dos pinos Trig e Echo. pinMode(trig_pin, OUTPUT); pinMode(echo_pin, INPUT); digitalWrite(trig_pin, LOW); pinMode (2, OUTPUT); pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT); pinMode (6, OUTPUT); } void loop() { // Espera 0,5s (500ms) entre medições. if (millis() - print_timer > 500) { print_timer = millis(); // Pulso de 5V por pelo menos 10us para iniciar medição. digitalWrite(trig_pin, HIGH); delayMicroseconds(11); digitalWrite(trig_pin, LOW); /* Mede quanto tempo o pino de echo ficou no estado alto, ou seja, o tempo de propagação da onda. */ uint32_t pulse_time = pulseIn(echo_pin, HIGH); /* A distância entre o sensor ultrassom e o objeto será proporcional a velocidade do som no meio e a metade do tempo de propagação. Para o ar na temperatura ambiente Vsom = 0,0343 cm/us. */ double distance = 0.0172312 * pulse_time; // Imprimimos o valor na porta serial; Serial.print(distance); Serial.println(" cm"); if (distance>200) {digitalWrite(6, LOW);} else {digitalWrite(6, HIGH);} if (distance>160) {digitalWrite(5, LOW);} else {digitalWrite(5, HIGH);} if (distance>120) {digitalWrite(4, LOW);} else {digitalWrite(4, HIGH);} if (distance>80) {digitalWrite(3, LOW);} else {digitalWrite(3, HIGH);} if (distance>40) {digitalWrite(2, LOW);} else {digitalWrite(2, HIGH);} } }
  • 59.
    Projeto 17 –Sensor de Luminosidade  Material  Arduino  1 LED vermelho  1 Resistor de 220 ohms  1 Fotorresistor (LDR)  1 Resistor de 10k ohms
  • 60.
  • 61.
    Projeto 17 Código int LED= 13; int LDR = A0; int entrada = 0; // Valor do LDR void setup() { pinMode(LED, OUTPUT); pinMode(LDR, INPUT); } void loop() { entrada = analogRead(LDR); delay(500); if (entrada < 100) digitalWrite(LED, HIGH); else digitalWrite(LED, LOW); delay(100); }
  • 62.
    Projeto 18 –Acionando um servo motor  Material  Arduino  1 Micro servo  1 potenciômetro de 10K ohms  Protoboard  Jumpers
  • 63.
    Acionamento Servo Motor  Servosde aeromodelismo são controlados por um sinal PWM (Pulse Width Modulation) de período 20ms e largura entre 1ms a 2ms.  A largura define a posição do servo, entre 0 grau(1ms) e seu valor máximo (2ms), em geral, 120 graus
  • 64.
  • 65.
    Projeto 18 Código #include "Servo.h" Servoservo; int POT = 0; int SERVO = 6; int valorPot; int valorMotor = 0; void setup() { servo.attach(SERVO); Serial.begin(9600); } void loop() { valorPot = analogRead(POT); valorMotor = map(valorPot,0,1023,0,180); servo.write (valorMotor); Serial.print (valorMotor); delay (20); }
  • 66.
    Projeto 19 –Servo com serial  Material Arduino 1 Micro servo Protoboard Jumpers
  • 67.
  • 68.
    Projeto 19 Código #include <Servo.h> #defineSERVO 6 Servo servo; int ang; char ch; void setup () { pinMode (SERVO, OUTPUT); servo.attach(SERVO); Serial.begin(9600); ang = 0; Serial.print("Setup completo"); } void loop() { // Le caracter ch = 50; if (Serial.available() > 0) { ch = Serial.read(); } // s: aumenta e d: diminui if (ch == 's') { ang = ang + 5; if (ang > 100) { ang = 100; } } if (ch == 'd') { ang = ang - 5; if (ang < 0) { ang = 0; } } // muda o ângulo servo.write(ang); }
  • 69.
    Display de 7 Segmentos CódigoDescrição PHD500 Display de Catodo Comum, cor Vermelha PHD507 Display de Anodo Comum, cor Vermelha PHD560 Catodo comum, cor vermelha de alta intensidade PHD567 Anodo comum, cor vermelha de alta intensidade
  • 70.
  • 71.
  • 72.
    Projeto 20 –Display de 7 Segmentos  Material  Arduino  Display de sete segmentos com catodo comum  1 Resistor de 220 ohms  Protoboard  Jumpers
  • 73.
  • 74.
    Projeto 20 Código int SEG_A= 2; int SEG_B = 3; int SEG_C = 4; int SEG_D = 5; int SEG_E = 6; int SEG_F = 7; int SEG_G = 8; int PONTO = 9; int ATRASO = 1000; void setup() { pinMode(SEG_A, OUTPUT); pinMode(SEG_B, OUTPUT); pinMode(SEG_C, OUTPUT); pinMode(SEG_D, OUTPUT); pinMode(SEG_E, OUTPUT); pinMode(SEG_F, OUTPUT); pinMode(SEG_G, OUTPUT); pinMode(PONTO, OUTPUT); } void loop() { digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); }
  • 75.
    Projeto 21 -Display 4511  Materiais  Arduino  Display de 7 segmentos – Catodo comum  Decodificador de 7 segmentos 4511  1 Resistor de 150 ohms  Protoboard  Jumpers
  • 76.
  • 77.
    Projeto 21 Código const intA = 4; // Primeiramente setamos os 4 pinos do CI 4511 const int B = 5; const int C = 6; const int D = 7; void setup(){ pinMode(A, OUTPUT); // seta todos as portas que estão os leds do display como saída pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); } void loop(){ digitalWrite(A, 0); //acende os leds que representam o número 0 digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 0); delay(1000); digitalWrite(A, 1); //acende os leds que representam o número 1 digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 0); delay(1000); digitalWrite(A, 0); //acende os leds que representam o número 2 digitalWrite(B, 1); digitalWrite(C, 0); digitalWrite(D, 0); delay(1000); digitalWrite(A, 1); //acende os leds que representam o número 3 digitalWrite(B, 1); digitalWrite(C, 0); digitalWrite(D, 0); delay(1000); digitalWrite(A, 0); //acende os leds que representam o número 4 digitalWrite(B, 0); digitalWrite(C, 1); digitalWrite(D, 0); delay(1000); digitalWrite(A, 1); //acende os leds que representam o número 5 digitalWrite(B, 0); digitalWrite(C, 1); digitalWrite(D, 0); delay(1000); digitalWrite(A, 0); //acende os leds que representam o número 6 digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 0); delay(1000); digitalWrite(A, 1); //acende os leds que representam o número 7 digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 0); delay(1000); digitalWrite(A, 0); //acende os leds que representam o número 8 digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 1); delay(1000); digitalWrite(A, 1); //acende os leds que representam o número 9 digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 1); delay(1000); digitalWrite(A, 1); // limpa a tela (todos segmentos desligados digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 1); delay(1000);