Vous êtes sur la page 1sur 36

EasyKit

LED Blink
Este o exemplo mais simples que voc pode fazer com um Arduino para
visualizar uma sada fsica (LED do Pino D13).
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
A Montagem

O Sketch

#define LED 13 //Define LED como 13


void setup()
{

pinMode(LED, OUTPUT); //Define

pino

13(LED)

como

sada

}
void loop()
{
digitalWrite(LED, HIGH); //Liga
delay(1000); //Aguarda
digitalWrite(LED, LOW); //Apaga
delay(1000); //Aguarda

o
1
o
1

LED
segundo
LED
segundo

Fade com Arduino


Este outro exemplo simples onde voc visualizar a alterao progressiva do
brilho de um LED usando a funo analogWrite().
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 10k
LED

Alguns Jumpers

A Montagem

O Sketch

int led
=
9; //
pino
onde
o
LED
vai
estar
ligado
int brilho = 0; // varivel que armazena a quatidade de brilho do LED.
int fade = 5; // determina a variao entre cada degrad que o LED ser acesso
void setup()
//
configura
o
pinMode(led, OUTPUT);
}

{
pino

como

sada

digital

void loop()
{
// Envia um PWM proporcional ao valor do brilho para o LED ligado ao pino 9:
analogWrite(led,
brilho);
// Altera o brilho para no prximo loop alterar o brilho do LED
brilho = brilho + fade;
// Inverte a direo do Fade caso ultrapasse os limites da escala do
analogWrite()
if (brilho
==
0
||
brilho
==
255)
{
fade = -fade ;
}
// Espera 30 milisegundos para controlar e dar o efeito de fade
delay(30);
}

Acionando LEDs pelo Serial Monitor


Neste exemplo voc utilizar o Serial Monitor para alterar o estado dos LEDs.
Enviando a letra R (red) voc altera o LED vermelho, com a Letra G (green) o
LED verde e com a letra Y(yellow) o LED amarelo.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 10k
LEDs
Alguns Jumpers

A Montagem

O Sketch

//varavel que guarda o dado vindo da serial


char leitura;
//define os pinos onde os LEDs esto conectados
#define ledRed 8
#define ledGreen 9

#define ledYellow 10
void setup()

//Inicializa
comunicao
Serial.begin(9600);

Serial

//Configura
os
pinos
pinMode(ledRed, OUTPUT);
pinMode(ledGreen, OUTPUT);
pinMode(ledYellow,OUTPUT);

dos

LEDs

9600

como

sada

//Mantm os LEDs desligados assim que iniciar o programa


digitalWrite (ledRed, LOW);
digitalWrite (ledGreen, LOW);
digitalWrite (ledYellow, LOW);
}
void loop()
//Verifica
se
h
algum
while (Serial.available()
>
//L o dado vindo da Serial
leitura = Serial.read();

{
dado
e

no
conector
0)
{
armazena na varivel

serial
leitura

//Se a varivel leitura for igual a 'r' ou 'R' Inverte o valor do LED vermelho
if (leitura == 'r' || leitura =='R'){// As duas || a operao booleana OU
digitalWrite(ledRed,!digitalRead(ledRed));
}
//Se ela for igual a 'g' ou 'G' Inverte o valor do LED Verde
else if (leitura
== 'g' ||
leitura
digitalWrite(ledGreen,!digitalRead(ledGreen));
}
//Se ela for igual a 'y' ou 'Y' Inverte o valor do LED Verde
else if (leitura
== 'y' ||
leitura
digitalWrite(ledYellow,!digitalRead(ledYellow));
}

=='G'){

=='Y'){

Serial.println(leitura);
}
}

Lendo Boto com Serial monitor


Com este exemplo voc aprender como fazer leituras digitais (0/Desligado e
1/Ligado) utilizando uma chave tctil e o Serial Monitor para monitorar o estado
dela.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 10k
Chave Tctil
Alguns Jumpers

A Montagem

O Sketch

#define CHAVE 2 //Define CHAVE como 2

void setup()
{
pinMode(CHAVE, INPUT); //Configura o pino 2 como entrada
Serial.begin(9600); //Habilita a porta Serial com um Baud Rate de 9600
}
void loop()
{
if(digitalRead(CHAVE)) //Se o boto for pressionado
{
Serial.println("Botao Pressionado\n"); //Imprime no Serial Monitor "Boto
Pressionado"
}
else //Seno
{
Serial.println("Botao Despressionado\n"); // Imprime no Serial Monitor "Boto
Despressionado"
}
delay(250); //Delay de 250 milissegundos
}

Operaes lgicas com Arduino


Vamos demonstrar como executar trs operaes lgicas com o Arduino. Vamos
executar a leitura das teclas A e B e em cada um dos LEDs vamos mostrar a sada
das operaes OR, AND e XOR.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400

Resistor 10k
Chave Tctil
Alguns Jumpers

A Montagem

O Sketch

//Definies para os pinos que sero usados


#define botaoA 6 //
pino
onde
ser
conectada
a
entrada
A
#define botaoB 7 //
pino
onde
ser
conectada
a
entrada
B
#define ledXOR 8 // pino que mostrar a sada OU exclusivo (XOR)
#define ledOU 9 //
pino
que
mostrar
a
sada
OU
(OR)
#define ledE 10 //
pino
que
mostrar
a
sada
E
(AND)
// variveis que armazem os valores dos botoes
boolean valA
=
boolean valB
=
void setup()
//
configura
pinMode(ledXOR
pinMode(ledOU, OUTPUT);
pinMode(ledE, OUTPUT);
//
configura
os
pinos
pinMode(botaoA, INPUT);
pinMode(botaoB, INPUT);
}
void loop(){

0;
0;

{
os

onde

pinos
, OUTPUT);

os

botes

dos

LED:

esto

conectados

//
L
o
valA = digitalRead(botaoA);
valB = digitalRead(botaoB);

estado

dos

Botes

//
digitalWrite(ledXOR,
valA
^
digitalWrite(ledOU
,
valA
|
digitalWrite(ledE
,
valA
&

valB); //
valB); //
valB); //

Operador
Operador
Operador

^
|
&

XOR
OU
E

Lendo Potencimetro com Serial Monitor


Com este exemplo voc aprender como fazer leituras analgicas (0 a 1023) a
partir de um potencimetro, onde o mesmo ser variado manualmente a partir de
seu curso.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Potencimetro 10k
Chave Tctil
Alguns Jumpers

A Montagem

O Sketch

#define pot A0 //Define pot como A0


int potvalor; //Cria varivel para armazenar o valor do potencimetro
void setup()
{
Serial.begin(9600); //Inicia a serial com Baud Rate de 9600
}
void loop()
{
potvalor = analogRead(A0); //L o potencimetro e armazena na varivel
potvalor
Serial.print("Valor do Potenciometro = "); //Imprime na serial "Valor do
Potenciometro = "
Serial.println(potvalor); //Imprime na serial o valor lido
delay(250); //Aguarda 250 milissegundos
}

Controlando brilho de LED com o Potencimetro


O dimmer um dispositivo que controla a luminosidade de uma lmpada atrves
de um potencimetro. Neste exemplo vamos exemplificar como este conceito pode
ser aplicado programao do Arduino controlando o brilho de um LED usando a
funo analogWrite().
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 10k
LED
Alguns Jumpers

A Montagem

O Sketch

#define potPin 0 // Define o pino analgico em que o potencimetro vai ser


conectado

#define ledPin 9 // Define o pino que ter um LED e um resistncia ligada ao


terra
int valPot = 0; //Varivel que armazena o valor da leitura do potencimetro
void setup()
pinMode(ledPin,OUTPUT); //

{
Configura

pino

do

LED

como

sada

}
void loop()

valPot = analogRead(potPin); //Faz a leitura analgica do pino em que o


potencimetro
esta
ligado
valPot = map(valPot,0,1023,0,255); //Utilizando a funo map() para transformar
uma
escala
de
0-1023
em
uma
escala
0
a
255
analogWrite(ledPin,valPot ); // Aciona o LED proporcionalmente ao valor da leitura
analgica
}

Lendo a temperatura pelo serial monitor


Utilizando um resistor NTC e a entrada analgica do Arduino, vamos ler a
temperatura do ambiente com a biblioteca Thermistor no serial monitor vamos
imprimir o valor segundo a segundo.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 10k
Termistor NTC 10k

Alguns Jumpers

A Montagem

Biblioteca
Para instalar a biblioteca, abra o
Sketch -> Import Library -> Add Library.

Arduino

IDE

clique

na

aba

Para baixar o aquivo a ser importado para a biblioteca do Arduino: Clique Aqui!

O Sketch

#include <Thermistor.h>
Thermistor temp(0);
void setup()
Serial.begin(9600);

}
void loop()
{
int temperature
Serial.print("Temperatura
Serial.print(temperature);
delay(1000);

=
no

temp.getTemp();
Sensor
eh:
Serial.println("*C");

");

Para visualizar a temperatura abra o serial monitor e clicando neste cone


destacado abaixo:

Automao de LED com LDR


Com este exemplo voc aprender como utilizar a Mini Fotoclula (LDR) para
fazer uma leitura de luminosidade do seu ambiente.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 330
Resistor 10K
LDR
LED Vermelho
Alguns Jumpers

A Montagem

O Sketch

#define LDR A0 //Define LDR como A0


#define led 8 //Define led como 8
float luminosidade; //Varivel para armazenar o valor da luminosidade
float amostra; //Varivel para armazenar o amostratria
void setup()
{
Serial.begin(9600); //Inicia a Serial do Arduino
pinMode(led, OUTPUT); //Configura pino 8 como sada
digitalWrite(led, LOW); //Desliga o LED
}
void loop()
{
amostra = 0; //Zera a varivel amostra
//Pega 1000 amostras
for(int i=0; i < 100 ; i++)
{
luminosidade = analogRead(LDR); //Armazena o valor lido pelo LDR
luminosidade = (luminosidade / 1024) * 100; //Transforma o valor lido em
porcentagem
amostra = amostra + luminosidade; //Armazena na varivel amostra
}

//=================
amostra = amostra/100; //Tira a mdia das amostras
Serial.print("Luminosidade = "); //Imprime na serial "Luminosidade = "
Serial.print(amostra, 0); //Imprime a amostra sem casas decimais
Serial.println("%"); //Imprime o smbolo de porcentagem
if(amostra < 30) //Se a luminosidade estiver abaixo de 30%
{
digitalWrite(led,HIGH); //Liga o LED
}
else //Seno
{
digitalWrite(led,LOW); //Desliga o LED
}
delay(250); //Delay de 250 milissegundos
}

Semforo
Com este exemplo, conseguir simular o funcionamento de um semforo,
utilizando LEDs e um boto para ativar o semforo de pedestre.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 330
Resistor 10K

Chave Tctil
LED Vermelho
LED Amarelo
LED Verde
Alguns Jumpers

A Montagem

O Sketch

#define carroVERDE 2 //Define carroVERDE como 2


#define carroAMARELO 3 //Define carroAMARELO como 3
#define carroVERMELHO 4 //Define carroVERMELHO como 4
#define pedestreVERDE 11 //Define pedestreVERDE como 11
#define pedestreVERMELHO 12 //Define pedestreVERMELHO como 12
#define botao 8 //Define botao como 8
void setup()
{
//Configura os pinos como sada
pinMode(carroVERDE, OUTPUT); //Configura pino 2 como sada
pinMode(carroAMARELO, OUTPUT); //Configura pino 3 como sada
pinMode(carroVERMELHO, OUTPUT); //Configura pino 4 como sada
pinMode(pedestreVERDE, OUTPUT); //Configura pino 11 como sada
pinMode(pedestreVERMELHO, OUTPUT); //Configura pino 12 como
sada//=============================

pinMode(botao, INPUT_PULLUP); //Configura o pino 8 como entrada


//Desliga todos os LEDs do sistema
digitalWrite(carroVERDE, LOW); //Desliga o LED Verde dos carro
digitalWrite(carroAMARELO, LOW); //Desliga o LED Amarelo dos carro
digitalWrite(carroVERMELHO, LOW); //Desliga o LED Vermelho dos carro
digitalWrite(pedestreVERDE, LOW); //Desliga o LED Verde dos pedestre
digitalWrite(pedestreVERMELHO, LOW); //Desliga o LED Verde dos
carro //=================================
}
void loop()
{
while((digitalRead(botao)) //Enquanto o botao do pedestre no for pressionado
{
digitalWrite(carroVERDE, HIGH); //Liga o LED Verde do carro
digitalWrite(pedestreVERMELHO, HIGH); //Liga o LED Vermelho do pedestre
}
digitalWrite(carroVERDE, LOW); //Apaga o LED Verde do carro
digitalWrite(carroAMARELO,HIGH); //Liga o LED Amarelo do carro
delay(3000); //Aguarda 3 segundos
digitalWrite(carroAMARELO, LOW); //Apaga o LED Amarelo do carro
digitalWrite(carroVERMELHO,HIGH); //Liga o LED Vermelho do carro
delay(1000); //Aguarda 1 segundo
digitalWrite(pedestreVERMELHO, LOW); //Apaga o LED Vermelho do
pedestredigitalWrite(pedestreVERDE,HIGH); //Liga o LED Verde do pedestre
delay(5000); //Aguarda 5 segundos
digitalWrite(pedestreVERDE,LOW); //Apaga LED Verde do pedestre
//Pisca LED Vermelho do pedestre
for(int i=0 ; i<5 ; i++) //Repete 5 vezes
{
digitalWrite(pedestreVERMELHO, !(digitalRead(pedestreVERMELHO))); //Inverte
estado do LED Vermelho do pedestre
delay(500); //Aguarda 500 milissegundos
}
//==============================
delay(1000); //Aguarda 1 segundo
digitalWrite(pedestreVERDE,LOW); //Apaga LED Verde do pedestre
digitalWrite(carroVERMELHO,LOW); //Apaga LED Vermelho do pedestre
}

Bargraph de LDR
Com este exemplo voc aprender como criar um bargraph com LED e faz-lo
acender de maneira proporcional a intensidade da luminosidade em cima do LDR.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 330
Resistor 10K
LDR
LED Vermelho
LED Amarelo
LED Verde
Alguns Jumpers

A Montagem

O Sketch

#define LDR A0 //Define LDR como A0


#define L_1 2 //Define L_1 como 2
#define L_2 3 //Define L_2 como 3
#define L_3 4 //Define L_3 como 4
#define L_4 5 //Define L_4 como 5
#define L_5 6 //Define L_5 como 6
#define L_6 7 //Define L_6 como 7
#define L_7 8 //Define L_7 como 8
#define L_8 9 //Define L_8 como 9
#define L_9 10 //Define L_9 como 10
#define L_10 11 //Define L_10 como 11
float luminosidade; //Varivel para armazenar o valor da luminosidade
float amostra; //Varivel para armazenar o amostratria
void setup()
{
//Configura todos os pinos do Bargraph (2 a 10) e desligao s LEDs
for(int i=2 ; i<= 10 ; i++)
{
pinMode(i, OUTPUT); //Configura os pinos de acionamento dos LED como sada
digitalWrite(i, LOW); //Desliga todos os LEDs
}
//=============================================================
==

}
void loop()
{
amostra = 0; //Zera a varivel amostra
//Pega 1000 amostras
for(int i=0; i < 100 ; i++)
{
luminosidade = analogRead(LDR);//Armazena o valor lido pelo
LDRluminosidade = (luminosidade / 1024) * 100; //Transforma o valor lido em
porcentagem
amostra = amostra + luminosidade; //Armazena na varivel amostra
}
//=================
amostra = amostra/100; //Tira a mdia das amostras
delay(250); //Delay de 250 milissegundos
bargraph(); //Vai para a funo do Bargraph e depois volta
}
void bargraph()
{
if(amostra >= 10) digitalWrite(L_1, HIGH); //Aciona o L_1 se luminosidade for maior
ou igual que 10%
else digitalWrite(L_1, LOW); //Seno desliga o L_1
if(amostra >= 20) digitalWrite(L_2, HIGH); //Aciona o L_2 se luminosidade for maior
ou igual que 20%
else digitalWrite(L_2, LOW); //Seno desliga o L_2
if(amostra >= 30) digitalWrite(L_3, HIGH); //Aciona o L_3 se luminosidade for maior
ou igual que 30%
else digitalWrite(L_3, LOW); //Seno desliga o L_3
if(amostra >= 40) digitalWrite(L_4, HIGH); //Aciona o L_4 se luminosidade for maior
ou igual que 40%
else digitalWrite(L_4, LOW); //Seno desliga o L_4
if(amostra >= 50) digitalWrite(L_5, HIGH); //Aciona o L_5 se luminosidade for maior
ou igual que 50%
else digitalWrite(L_5, LOW); //Seno desliga o L_5
if(amostra >= 60) digitalWrite(L_6, HIGH); //Aciona o L_6 se luminosidade for maior
ou igual que 60%
else digitalWrite(L_6, LOW); //Seno desliga o L_6
if(amostra >= 70) digitalWrite(L_7, HIGH); //Aciona o L_7 se luminosidade for maior
ou igual que 70%
else digitalWrite(L_7, LOW); //Seno desliga o L_7

if(amostra >= 80) digitalWrite(L_8, HIGH); //Aciona o L_8 se luminosidade for maior
ou igual que 80%
else digitalWrite(L_8, LOW); //Seno desliga o L_8
if(amostra >= 85) digitalWrite(L_9, HIGH); //Aciona o L_9 se luminosidade for maior
ou igual que 85%
else digitalWrite(L_9, LOW); //Seno desliga o L_9
if(amostra >= 95) digitalWrite(L_10, HIGH); //Aciona o L_10 se luminosidade for
maior ou igual que 90%
else digitalWrite(L_10, LOW); //Seno desliga o L_10
}

Acionando LED com senha


Com uma senha configurada via pela programao e 5 teclas, voc poder
acionar um LED para indicar que a senha foi digitada corretamente.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 330
Resistor 10k
Chave Tactil
LED Verde
Alguns Jumpers

A Montagem

O Sketch

//Quantidade de dgitos para a senha


#define DIGITOS 4
//LED que ir indicar que a senha foi bem sucedida
#define ledSenhaOk 8 // Declara os botes
#define b1 3
#define b2 4
#define b3 5
#define b4 6
#define b5 7
char senha[DIGITOS]; //Cria um vetor com a quantidade de dgitos da senha
char senhaCorreta[DIGITOS]={ '4','2','4','2'}; //Senha que o usurio ir ter que
digitar
("4242")
void setup()
{
Serial.begin(9600); //Inicia

comunicao

serial

pinMode(b1, INPUT); //
pinMode(b2, INPUT); //
pinMode(b3, INPUT); //
pinMode(b4, INPUT); //
pinMode(b5, INPUT); //
pinMode(ledSenhaOk, OUTPUT); //Led
digitalWrite(ledSenhaOk,LOW);
}
void loop()
{

que

Indica

Senha

correta

Serial.print("Por Favor, digite a senha: "); //Imprime a mensagem para a digitao


da
senha
leteclado(); //Chama a funo para pegar a senha ("quatros digitos, nesse
exemplo")
int ok=0; //Inicia

uma

varivel

para a

validao

do

dgitos

da senha

for (int j=0; j<DIGITOS; j++) //Para todos os dgitos da senha...


{
if(senha[j] == senhaCorreta[j]) //... compare com sua respectiva posio no
vetor...
{
//...
da
senha
desejada.
ok++; //Vlida
o
dgito
da
posio
}
}
Serial.println();
if(ok == DIGITOS) //Se todos os dgitos da senha digitada forem validados...
{
Serial.println("Senha Correta!"); //...imprime a mensagem, "Senha Correta!"
Serial.println();
digitalWrite(ledSenhaOk,HIGH);
while (1);
}
else
{
Serial.println("Senha Incorreta!");//Se algum dos dgitos da senha digitada estiver
incorreto...
Serial.println(); //...imprime
a
mensagem,
"Senha
Incorreta!"
digitalWrite(ledSenhaOk,LOW);
delay(500);
digitalWrite(ledSenhaOk,HIGH);
delay(500);
digitalWrite(ledSenhaOk,LOW);
}
}
// Funo que faz a leitura das teclas do teclado
void leteclado()
{
int i
=
0; //Varivel
de
contagem
while(i<DIGITOS) //Enquanto a quantidade de dgitos da senha no for
alcanado
{
if (digitalRead(b1)== HIGH){
senha[i] = '1';
//Serial.print("1");
i++;
while (digitalRead (b1)
==HIGH)
{
}

}
else if (digitalRead(b2)== HIGH){
senha[i] = '2';
//Serial.print("2");
i++;
while (digitalRead (b2)
{
}

==HIGH)

}
else if (digitalRead(b3)== HIGH){
senha[i] = '3';
//Serial.print("3");
i++;
while (digitalRead (b3)
{
}

==HIGH)

}
else if (digitalRead(b4)== HIGH){
senha[i] = '4';
//Serial.print(senha[i]);
i++;
while (digitalRead (b4)
{
}

==HIGH)

}
else if (digitalRead(b5)== HIGH){
senha[i] = '5';
//Serial.print("5");
i++;
while (digitalRead (b5)
{
}

==HIGH)

}
}
}

Contador binrio
Com este contador binrio, voc poder treinar os conceitos de eletrnica digital,
fazendo uma contagem binria com que mostrada nos LEDs conectados ao
Arduino.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B
Protoboard 400
Resistor 330
LEDs
Alguns Jumpers

A Montagem

O Sketch

int contador = B00000000; //Cria varivel para o incremento da contagem


void setup()
{
DDRB = B00001111; //Configura
DDRD = B11110000; //Configura

os
os

pinos de 8 a 11 como sada


pinos de 4 a 7 como sada

}
void loop()
{
contador++; //Incrementa

varivel

de

contagem

PORTD = B00001111 | contador; //Pega


o
nibble
menos
significativos...
//...e joga nos pinos digitais de 4 a 7.
PORTB = B11110000 | contador; //Pega
o
nibble
mais
significativos...
//...e joga nos pinos digitais de 8 a 11.
delay(200); //Aguarda

200

milissegundos

Utilizando Firmata para testar seu Arduino


Com este exemplo voc aprender de maneira fcil como testar todos os pinos do
seu Arduino, ou seja, fazer acionamentos, leituras e at gerar PWM utilizando um
simples software.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B

Protoboard 400
Resistor 330
LDR
LED Vermelho
Potencimetro 10k
Alguns Jumpers

A Montagem

Software
O software pode ser baixado neste link

O Sketch
O Sketch est disponvel na prpria interface Arduino IDE: Files > Examples >
Firmata > StandardFirmata

Dado eletrnico
Com este exemplo voc criar um dado eletrnico, onde o mesmo fica sendo
embaralhado e ao ser pressionado o boto do circuito ele sorteia um nmero de 1
a 6 e demonstra nos LEDs qual o nmero que foi sorteado.
Dificuldade:

Montagem:

Programao:

Material Utilizado:
Arduino Uno
Cabo USB A para B

Protoboard 400
Resistor 330
Resistor 10K
Chave Tctil
LED Vermelho
LED Amarelo
LED Verde
Alguns Jumpers

A Montagem

O Sketch

#define CHAVE A5 //Define CHAVE como A5


#define A_1 2 //Define A_1 como 2
#define A_2 3 //Define A_2 como 3
#define A_3 4 //Define A_3 como 4
#define B_1 5 //Define B_1 como 5
#define B_2 6 //Define B_2 como 6
#define B_3 7 //Define B_3 como 7
#define C_1 8 //Define C_1 como 8
#define C_2 9 //Define C_2 como 9
#define C_3 10 //Define C_3 como 10
int sorteio; //Varivel para armazenagem no nmero sorteado
void setup()
{
pinMode(CHAVE, INPUT_PULLUP); //COnfigura o pino A5 como entrada e habilita
o resistor de pull-up
pinMode(A_1, OUTPUT); //Configura o pino 2 como sada
pinMode(A_2, OUTPUT); //Configura o pino 3 como sada
pinMode(A_3, OUTPUT); //Configura o pino 4 como sada
pinMode(B_1, OUTPUT); //Configura o pino 5 como sada
pinMode(B_2, OUTPUT); //Configura o pino 6 como sada
pinMode(B_3, OUTPUT); //Configura o pino 7 como sada
pinMode(C_1, OUTPUT); //Configura o pino 8 como sada
pinMode(C_2, OUTPUT); //Configura o pino 9 como sada
pinMode(C_3, OUTPUT); //Configura o pino 10 como sada
digitalWrite(A_1, LOW); //Desliga o LED do pino 2
digitalWrite(A_2, LOW); //Desliga o LED do pino 3
digitalWrite(A_3, LOW); //Desliga o LED do pino 4
digitalWrite(B_1, LOW); //Desliga o LED do pino 5
digitalWrite(B_2, LOW); //Desliga o LED do pino 6
digitalWrite(B_3, LOW); //Desliga o LED do pino 7
digitalWrite(C_1, LOW); //Desliga o LED do pino 8
digitalWrite(C_2, LOW); //Desliga o LED do pino 9
digitalWrite(C_3, LOW); //Desliga o LED do pino 10
}
void loop()
{
embaralha(); //Vai para a funo para efeito de embaralhando
if (!digitalRead(CHAVE)) //Se algo for digitado na Serial
{
sorteio = random(1,7); //Sorteia um nmero de 1 a 6
if(sorteio == 1) //Se o nmero sortero for 1
{
um(); //Vai para a funo que desenha o 1 no dado
}
else if(sorteio == 2) //Seno se o nmero sorteado for 2

{
dois(); //Vai para a funo que desenha o 2 no dado
}
else if(sorteio == 3) //Seno se o nmero sorteado for 3
{
tres(); //Vai para a funo que desenha o 3 no dado
}
else if(sorteio == 4) //Seno se o nmero sorteado for 4
{
quatro(); //Vai para a funo que desenha o 4 no dado
}
else if(sorteio == 5) //Seno se o nmero sorteado for 5
{
cinco(); //Vai para a funo que desenha o 5 no dado
}
else if(sorteio == 6) //Seno se o nmero sorteado for 6
{
seis(); //Vai para a funo que desenha o 6 no dado
}
}
}
void um() //Funo que desenha o 1 no no dado
{
apaga(); //Vai para a funo que limpa o dado
digitalWrite(B_2, HIGH); //Acende o LED do pino 6
delay(3000); //Aguarda 3 segundos
}
void dois() //Funo que desenha o 2 no no dado
{
apaga(); //Vai para a funo que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(3000); //Aguarda 3 segundos
}
void tres() //Funo que desenha o 3 no no dado
{
apaga(); //Vai para a funo que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(B_2, HIGH); //Acende o LED do pino 6
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(3000); //Aguarda 3 segundos
}
void quatro() //Funo que desenha o 4 no no dado
{

apaga(); //Vai para a funo que limpa o dado


digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(A_3, HIGH); //Acende o LED do pino 4
digitalWrite(C_1, HIGH); //Acende o LED do pino 8
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(3000); //Aguarda 3 segundos
}
void cinco() //Funo que desenha o 5 no no dado
{
apaga(); //Vai para a funo que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(A_3, HIGH); //Acende o LED do pino 4
digitalWrite(B_2, HIGH); //Acende o LED do pino 5
digitalWrite(C_1, HIGH); //Acende o LED do pino 8
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(3000); //Aguarda 3 segundos
}
void seis() //Funo que desenha o 6 no no dado
{
apaga(); //Vai para a funo que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(A_2, HIGH); //Acende o LED do pino 3
digitalWrite(A_3, HIGH); //Acende o LED do pino 4
digitalWrite(C_1, HIGH); //Acende o LED do pino 8
digitalWrite(C_2, HIGH); //Acende o LED do pino 9
digitalWrite(C_3, HIGH); //Acende o LED do pino 11
delay(3000); //Aguarda 3 segundos
}
void apaga() //Funo para desliga todos os LED do dado
{
digitalWrite(A_1, LOW); //Desliga o LED do pino 2
digitalWrite(A_2, LOW); //Desliga o LED do pino 3
digitalWrite(A_3, LOW); //Desliga o LED do pino 4
digitalWrite(B_1, LOW); //Desliga o LED do pino 5
digitalWrite(B_2, LOW); //Desliga o LED do pino 6
digitalWrite(B_3, LOW); //Desliga o LED do pino 7
digitalWrite(C_1, LOW); //Desliga o LED do pino 8
digitalWrite(C_2, LOW); //Desliga o LED do pino 9
digitalWrite(C_3, LOW); //Desliga o LED do pino 10
}
void embaralha() //Funo para efeito de embaralhamento
{
digitalWrite(C_3, LOW); //Desliga o LED do pino 10

digitalWrite(A_1, HIGH); //Acende o LED do pino 2


delay(10); //Aguarda 10 milissegundos
digitalWrite(A_1, LOW); //Desliga o LED do pino 2
digitalWrite(A_2, HIGH); //Acende o LED do pino 3
delay(10); //Aguarda 10 milissegundos
digitalWrite(A_2, LOW); //Desliga o LED do pino 3
digitalWrite(A_3, HIGH); //Acende o LED do pino 4
delay(10); //Aguarda 10 milissegundos
digitalWrite(A_3, LOW); //Desliga o LED do pino 4
digitalWrite(B_1, HIGH); //Acende o LED do pino 5
delay(10); //Aguarda 10 milissegundos
digitalWrite(B_1, LOW); //Desliga o LED do pino 5
digitalWrite(B_2, HIGH); //Acende o LED do pino 6
delay(10); //Aguarda 10 milissegundos
digitalWrite(B_2, LOW); //Desliga o LED do pino 6
digitalWrite(B_3, HIGH); //Acende o LED do pino 7
delay(10); //Aguarda 10 milissegundos
digitalWrite(B_3, LOW); //Desliga o LED do pino 7
digitalWrite(C_1, HIGH); //Acende o LED do pino 8
delay(10); //Aguarda 10 milissegundos
digitalWrite(C_1, LOW); //Desliga o LED do pino 8
digitalWrite(C_2, HIGH); //Acende o LED do pino 9
delay(10); //Aguarda 10 milissegundos
digitalWrite(C_2, LOW); //Desliga o LED do pino 9
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(10); //Aguarda 10 milissegundos
}

Vous aimerez peut-être aussi