Beruflich Dokumente
Kultur Dokumente
40 projetos
Willian Scollonoff
[2]
[3]
[4]
SUMRIO
Projeto 01 Pisca LED ........................................................................................................................................ 7
Projeto 02 Semforo ........................................................................................................................................ 9
Projeto 03 Alarme com sonorizador Piezo ..........................................................................................12
Projeto 04 Tocador de Melodia com sonorizador Piezo ................................................................15
Projeto 05 Sensor de luminosidade com LDR....................................................................................19
Projeto 06 Barra de LEDs e LDR ..............................................................................................................25
Projeto 07 Sensor de temperatura com LM35 ..................................................................................28
Projeto 08 Controle bsico com LCD......................................................................................................32
Projeto 09 Sensor de temperatura com LCD ......................................................................................36
Projeto 10 Controle de temperatura com LCD e cooler ................................................................40
Projeto 11 Controle de velocidade de um motor cc........................................................................45
Projeto 12 Motor de passo controlado por Arduino........................................................................49
Projeto 13 Servo motor controlado por Arduino ..............................................................................53
Projeto 14 Controlando um servo motor com joystick .................................................................56
Projeto 15 Sensor Ultrassnico Bsico .................................................................................................59
Projeto 16 Sensor de r para automvel .............................................................................................62
Projeto 17 Gravando um arquivo .DOC no SD CARD ......................................................................66
Projeto 18 Sensor de umidade e temperatura DHT11 ..................................................................71
Projeto 19 Arduino como osciloscpio ..................................................................................................74
Projeto 20 Arduino como um gerador de frequncia (onda quadrada)................................77
Projeto 21 Configurando o shield ethernet com o arduino .........................................................81
Projeto 22 Ascendendo LED com shield ethernet............................................................................86
Projeto 23 Ascendendo lmpada com shield ethernet e rel ....................................................92
Projeto 24 Escrevendo em um LCD Nokia 5110 ...............................................................................97
Projeto 25 Grfico de leitura de temperatura com um LCD Nokia 5110 ........................... 100
Projeto 26 Teclado matricial 4x4 bsico ........................................................................................... 104
Projeto 27 Acionando rel via teclado matricial 4x4 .................................................................. 108
Projeto 28 Utilizando um carto RFID ............................................................................................... 112
Projeto 29 Configurando o mdulo bluetooth (JY-MCU) .......................................................... 118
Projeto 30 Acionando LED e rel com via bluetooth com arduinocomander .................. 122
Projeto 31 Utilizando o PWM via bluetooth com arduinocomander.................................... 131
Projeto 32 Utilizando o osciloscpio via bluetooth com arduinocomander ..................... 139
Projeto 33 Utilizando sensores do Smartphone via bluetooth com arduinocomander
................................................................................................................................................................................... 150
[5]
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protoboard
1 LED (qualquer cor e tamanho)
1 Resistor de 100 ohms *
Fios jumpers
* Esse valor pode ser diferente, dependendo do LED que voc utilizar.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue sua protoboard, o LED, o resistor e os fios, e conecte tudo como mostra a
figura:
Para verificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
no seu primeiro projeto voc estar vendo o LED piscando em um intervalo de um
segundo.
[8]
Projeto 02 Semforo
[9]
[ 10 ]
[ 11 ]
Ol pessoal, neste projeto ser um pouco barulhento pois, vamos fazer um alarme com
sonorizador piezo conectado a um pino de sada digital, podendo ser criado um som de
sirene. Iremos gerar uma onda senoidal para gerar os pulsos e criando o som. Os cdigos
sero todos comentados para melhor entendimento, podendo ser retirados aps a
compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Sonorizador piezo (ou disco piezo)
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue sua protoboard, o sonorizador piezo e os fios, e conecte tudo como mostra a
figura.
Observao importante: Verifique a polaridade do sonorizador piezo.
[ 12 ]
[ 13 ]
[ 14 ]
Ol pessoal, neste projeto voc aprender como fazer melodias ao invs de fazer apenas
barulhos irritantes. Voc far com seu Arduino o refro da msica Puff, the Magic
Dragon. O esquema ser igual ao Projeto 3, porm com o cdigo modificado. Os cdigos
sero todos comentados para melhor entendimento, podendo ser retirados aps a
compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Sonorizador piezo (ou disco piezo)
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue sua protoboard, o sonorizador piezo e os fios, e conecte tudo como mostra a
figura.
Observao importante: Verifique a polaridade do sonorizador piezo.
[ 15 ]
NOTE_C3 131
NOTE_CS3 139
NOTE_D3 147
NOTE_DS3 156
NOTE_E3 165
NOTE_F3 175
NOTE_FS3 185
NOTE_G3 196
NOTE_GS3 208
NOTE_A3 220
NOTE_AS3 233
NOTE_B3 247
[ 16 ]
NOTE_D4 294
NOTE_DS4 311
NOTE_E4 330
NOTE_F4 349
NOTE_FS4 370
NOTE_G4 392
NOTE_GS4 415
NOTE_A4 440
NOTE_AS4 466
NOTE_B4 494
#define
#define
#define
#define
#define
WHOLE 1
HALF 0.5
QUARTER 0.25
EIGHTH 0.125
SIXTEENTH 0.0625
tone(8, tune[x]);
// Aqui esperamos o tempo necessario para que a melodia seja reproduzida
delay(1500 * duration[x]);
// Antes que a nota seguinte seja tocada voc cessa o tom gerado no pino 8
noTone(8);
}
delay(5000); // Espera 5 segundos antes de tocar a melodia novamente
}
Os pases anglfonos mantiveram a utilizao de letras para a nomenclatura das notas
musicais. As letras A, B, C, D, E, F e G so utilizadas para as notas l, si, do, r, mi, f e
sol, respectivamente (fonte: Wikipedia).
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
no seu terceiro projeto voc ouvir o som sendo emitido pelo sonorizador piezo.
[ 18 ]
Ol pessoal, neste projeto voc aprender como fazer um sensor de luminosidade bsico, e
uma pequena aplicao, onde voc ver trs LEDs acendo conforme variao da
luminosidade. Os cdigos sero todos comentados para melhor entendimento, podendo ser
retirados aps a compreenso de cada linha. Bom trabalho !!!
Para voc visualizar o monitor serial selecione a opo Tools, Serial Monitor (ou
Ctrl+Shift+M) e pronto.
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 LDR (Light Dependent Resistor (Resistor dependente de luz))
1 LED Vermelho
1 LED Amarelo
[ 19 ]
1 LED Verde
3 Resistores de 330 ohms *
1 Resistor de 10K ohms
Fios jumpers
* Esse valor pode ser diferente, dependendo do LED que voc utilizar.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o LDR, o resistor de 10 K ohms e os fios e conecte-os como mostra a figura.
Observao importante: Verifique a polaridade dos LEDs.
[ 20 ]
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora inicialize o monitor serial e visualize o que acontece quando voc muda a
luminosidade no LDR.
[ 21 ]
[ 22 ]
digitalWrite(ledAmarelo,LOW);
digitalWrite(ledVermelho,LOW);
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora voc ver os LEDs trocando de cor conforme variao de luminosidade.
[ 24 ]
Ol pessoal, neste projeto voc aprender como fazer uma barra de LEDs e LDR como
sensor de luminosidade. Voc perceber que conforme a variao da luminosidade e
consequentemente variao de resistncia, a sequncia de LEDs iro acender ou apagar.
Os cdigos sero todos comentados para melhor entendimento, podendo ser retirados aps
a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 LDR (Light Dependent Resistor (Resistor dependente de luz))
8 LEDs de qualquer cor
8 Resistores de 330 ohms *
1 Resistor de 10K ohms
Fios jumpers
[ 25 ]
* Esse valor pode ser diferente, dependendo do LED que voc utilizar.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue todos os componentes acima e conecte-os como mostra a figura.
Observao importante: Verifique a polaridade dos LEDs.
[ 26 ]
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora verifique o que acontece quando voc muda a luminosidade(resistncia) no LDR.
[ 27 ]
Ol pessoal, agora iremos ver um sensor muito interessante e til. O LM35 um sensor de
temperatura de preciso. Este sensor pode ler temperaturas entre -55C a 150C. Podendo
ser utilizador em diversos projetos tais como controle de refrigerao de uma cmara fria,
controle de aquecimento de um forno, entre outras. Ento vamos ao trabalho. Os cdigos
sero todos comentados para melhor entendimento, podendo ser retirados aps a
compreenso de cada linha. Bom trabalho !!!
Para voc visualizar o monitor serial selecione a opo Tools, Serial Monitor (ou
Ctrl+Shift+M) e pronto.
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protoboard
1 LM35 Sensor de temperatura
Fios jumpers
[ 28 ]
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o LM35 e os fios e conecte-os como mostra a figura. Observao importante:
Vcc (Pino +), Output (Pino de retorno) e Ground (Pino -), com viso frontal do mesmo da
esquerda para direita.
[ 29 ]
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora inicialize o monitor serial e visualize o que acontece quando voc muda a
temperatura do LM35.
[ 30 ]
[ 31 ]
Ol pessoal, agora vamos deixar nossos projetos visualmente mais interessantes. Iremos
aprender como utilizar o LCD (Liquid Crystal Display), ns utilizaremos o modelo JHD 162A,
deixando nossos projetos mais amigveis. Para isso teremos que utilizar a biblioteca
LiquidCrystal.h, que j inclui todas as funes sem precisarmos declarar linha por linha.
Bom trabalho !!! Os cdigos sero todos comentados para melhor entendimento, podendo
ser retirados aps a compreenso de cada linha. Bom trabalho !!!
[ 32 ]
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 LCD (JHD 162A de 16 colunas e 2 linhas) ou outro modelo com back light
2 Potencimetros de 10K ohms (Um para o contraste e o outro para a luz de fundo) *
Fios jumpers
* Este modelo que utilizei no possui o back light, porm o projeto foi montado com se
tivesse essa funo.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o LCD, os potnciometros e os fios e conecte-os como mostra a figura.
[ 33 ]
[ 34 ]
void loop() {
lcd.clear(); // Limpa o display do LCD
lcd.print("Ola pessoal !!"); // Imprime a string no display do LCD
// Espera 2 segundos antes de imprimir a proxima string no LCD
delay(2000);
lcd.clear();
lcd.print("Este e um");
lcd.setCursor(0,1); // Posiciona o cursor na coluna 0 linha 1 do LCD
lcd.print("controle basico");
delay(2000);
lcd.clear();
lcd.print("de LCD !!");
delay(2000);
lcd.clear();
lcd.print("www.facacomarduino.info");
delay(1000);
for (int i = 0; i < 16; i++) { // Rolando o display para a esquerda 16 vezes
lcd.scrollDisplayLeft();
delay(600);
}
}
delay(3000);
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora voc poder ajustar o contraste e luz de fundo para melhor visualizao.
[ 35 ]
Ol pessoal, j vimos basicamente como utilizar um LCD com o Arduino, agora vamos
utilizar o mesmo esquema anterior acrescentando um sensor temperatura LM35 - que
tambm j vimos. Este projeto tem pouca complexidade, desde que montado com calma
para no se perderem nas conexes dos jumpers. Os cdigos sero todos comentados para
melhor entendimento, podendo ser retirados aps a compreenso de cada linha. Bom
trabalho !!!
[ 36 ]
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 LCD (JHD 162A de 16 colunas e 2 linhas) ou outro modelo com back light
2 Potencimetros de 10K ohms (Um para o contraste e o outro para a luz de fundo) *
1 Sensor LM35
Fios jumpers
* Este modelo que utilizei no possui o back light, porm o projeto foi montado com se
tivesse essa funo.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o LCD, os potencimetros, o sensor LM35 e os fios e conecte-os como mostra
a figura.
[ 37 ]
[ 38 ]
void loop() {
/*Para evitar as grandes variaes de leitura do componente
LM35 so feitas 6 leitura o menor valor lido prevalece*/
// Inicializando a varivel com o maior valor int possvel
valorTemp = INT_MAX;
for (int i = 1; i <= 6; i++) { // Lendo o valor do sensor de temperatura
valorSensorTemp = analogRead(sensorTemp);
// Transforma o valor lido do sensor de temperatura em graus celsius...
//aproximados
valorSensorTemp *= 0.54 ;
// Mantendo sempre a menor temperatura lida
if (valorSensorTemp < valorTemp) {
valorTemp = valorSensorTemp;
}
delay(100);
}
// Exibindo valor da leitura do sensor de temperatura no display LCD
lcd.clear(); // Limpa o display do LCD
lcd.print("Temperatura:"); // Imprime a string no display do LCD
[ 39 ]
lcd.print(valorTemp);
lcd.write(B11011111); // Smbolo de graus Celsius
lcd.print("C");
delay(2000); // Aguarda 2 segundos
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora voc ir visualizar no visor do LCD a temperatura que est no ambiente em que voc
se encontra. Caso seja necessrio, ajuste o contraste e luz de fundo para melhor
visualizao.
Ol pessoal, j vimos basicamente como utilizar um LCD com o Arduino, agora vamos fazer
um pequena aplicao utilizando o mesmo esquema do projeto anterior acrescentando um
cooler. Este projeto tem pouca complexidade, desde que montado com calma para no se
perderem nas inseres dos jumpers. Os cdigos sero todos comentados para melhor
entendimento, podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 LCD (JHD 162A de 16 colunas e 2 linhas) ou outro modelo com back light
2 Potencimetros de 10K ohms (Um para o contraste e o outro para a luz de fundo) *
1 Sensor LM35
1 Cooler **
[ 40 ]
Fios jumpers
* Este modelo que utilizei no possui o back light, porm o projeto foi montado com se
tivesse essa funo.
** Dependendo do cooler que voc utilizar ser necessria uma fonte externa para
aliment-lo. Uma vez que a sada do Arduino possui apenas 5V.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o LCD, os potencimetros, o sensor LM35, o cooler e os fios e conecte-os
[ 41 ]
[ 42 ]
void loop() {
/*Para evitar as grandes variaes de leitura do componente
LM35 so feitas 6 leitura o menor valor lido prevalece*/
// Inicializando a varivel com o maior valor int possvel
valorTemp = INT_MAX;
for (int i = 1; i <= 6; i++) { // Lendo o valor do sensor de temperatura
valorSensorTemp = analogRead(sensorTemp);
// Transforma o valor lido do sensor de temperatura em graus...
//Celsius aproximados
valorSensorTemp *= 0.54 ;
// Mantendo sempre a menor temperatura lida
if (valorSensorTemp < valorTemp) {
valorTemp = valorSensorTemp;
[ 43 ]
}
delay(100);
}
if(valorTemp > 35) // Indica condio para acionamento do cooler
{
// Define a coluna 0 e linha 1 do LCD onde ser impresso a string
lcd.setCursor(0,1);
lcd.write("Fan ligado !"); // Imprime no LCD
digitalWrite(fan, HIGH); // Quando condio verdadeira, liga o cooler
}
else
{
lcd.setCursor(0,1);
lcd.write("Fan desligado !");
// Desliga cooler quando este estiver a baixo da valorTemp, indicando...
//no LCD que esta desligado
digitalWrite(fan, LOW);
}
delay(1000);
// Exibindo valor da leitura do sensor de temperatura no display LCD
lcd.clear(); // Limpa o display do LCD
lcd.print("Temperatura:"); // Imprime a string no display do LCD
lcd.print(valorTemp);
lcd.write(B11011111); // Smbolo de graus Celsius
lcd.print("C");
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora voc ir visualizar no visor do LCD a temperatura que est no ambiente e se o cooler
est desligado ou ligado - dependendo da temperatura que voc estipulou para acion-lo.
Caso seja necessrio, ajuste o contraste e luz de fundo para melhor visualizao.
[ 44 ]
[ 45 ]
Ol pessoal, a partir de agora vamos comear a utilizar motores com Arduino. Iniciaremos
com um motor de corrente contnua e posteriormente iremos ver outros tipos de motores
tais como: motores de passo e servo motores. Este cdigo muito simples de ser
entendido, portanto vamos l. Os cdigos sero todos comentados para melhor
entendimento, podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Potencimetro de 10K ohms
1 Motor CC de 5 Volts
1 Transistor de potncia TIP120
1 Diodo Zener
Fios jumpers
CONECTANDO OS COMPONENTES
[ 46 ]
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o potencimetro, o motor, o transistor e os fios e conecte-os como mostra a
figura.
No
importa se voc utiliza fios de cores diferentes ou furos diferentes na protoboard, desde
que os componentes e os fios estejam conectados na mesma ordem da figura. Tenha
cuidado ao inserir os componentes na protoboard. Caso sua protoboard seja nova, a
superfcie dos furos ainda estar rgida. A no insero cuidadosa dos componentes pode
resultar em danos. Certifique-se de que todos os componentes estejam conectados
[ 47 ]
corretamente. Quando voc estiver seguro de que tudo foi conectado corretamente, ligue
seu Arduino e conecte o cabo USB.
AGORA VAMOS AO CDIGO
// Projeto 11 - Controle de velocidade de um motor CC
// Pino analgico onde o potencimetro est conectado
int const potenciometro = 1;
int const transTIP120 = 10; // Pino digital onde o TIP120 est conectado
int valPotenciometro = 0; // Armazena o valor lido no potencimetro
void setup() { // Funo executada sempre quando o Arduino ligado
}
[ 48 ]
Ol pessoal, j vimos como controlar um motor CC. Agora vamos ver como funciona um
motor de passo com Arduino. Neste projeto foi utilizado um Shield para controle de motor
com ULN2003. Projeto simples de ser implementado. Os cdigos sero todos comentados
para melhor entendimento, podendo ser retirados aps a compreenso de cada linha. Bom
trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Modulo para motor ULN2003
1 Motor de passo modelo 28BYJ-48
Fios jumpers
[ 49 ]
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, o driver, o motor de passo e os fios e conecte-os como mostra a imagem abaixo.
[ 50 ]
pinMode(motorPin1,
pinMode(motorPin2,
pinMode(motorPin3,
pinMode(motorPin4,
OUTPUT);
OUTPUT);
OUTPUT);
OUTPUT);
void loop(){
if(contagem < passosPorRotacao )
sentidoHorario(); // Funo para rotacionar em sentido horrio
else if (contagem == passosPorRotacao * 2)
contagem = 0;
else
sentidoAntiHorario(); // Funo para rotacionar em sentido anti horrio
contagem++;
}
/*Configurando os pinos para ULN2003.
o delay "motorSpeed" determina o tempo para a velocidade do motor*/
void sentidoAntiHorario()
{
for(int i = 0; i < 18; i++)
{
setOutput(i);
delayMicroseconds(velocMotor);
}
}
void sentidoHorario()
{
[ 51 ]
[ 52 ]
Ol pessoal, j vimos como controlar um motor CC e motor de passo. Agora vamos ver
como funciona um servo motor conectado ao Arduino. Os cdigos sero todos comentados
para melhor entendimento, podendo ser retirados aps a compreenso de cada linha. Bom
trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Servo motor TG9 (ou equivalente)
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o servo motor e os fios e conecte-os como mostra a figura.
[ 53 ]
[ 54 ]
for(pos = 0; pos < 180; pos += 1) // Vai de 0 grau a 180 em passo de 1 grau
{
// Chama o servo1 para ir para a posio da variavel "pos"
servo1.write(pos);
delay(50); // Agurade 50ms para para o servo1 atingir a posio
}
for(pos = 180; pos>=1; pos-=1) // Vai de 180 graus ate 0
{
// Chama o servo1 para ir para a posio da variavel "pos"
servo1.write(pos);
delay(10); // Aguarda 10ms para o servo1 atingir a posio
}
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora voc poder movimentar o Joystick na horizontal e o servo tambm se movimentar
para direita e esquerda conforme seu comando.
[ 55 ]
Ol pessoal, muitos j viram controlar um servo com potencimetro, agora vamos ver
como controlar um servo com joystick. Com este projeto voc pode facilmente controlar a
rotao de uma cmera, de uma cabea de um rob ou qualquer outro controle que
envolva movimento, no difcil de ser implementado, por tanto vamos l. Os cdigos
sero todos comentados para melhor entendimento, podendo ser retirados aps a
compreenso de cada linha. Bons projetos a todos !!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Mdulo de Joystick PS2
1 Servo motor TG9
Fios jumpers
[ 56 ]
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o mdulo, o servo e os fios e conecte-os como mostra a figura.
[ 57 ]
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora voc poder movimentar o Joystick na horizontal e o servo tambm se movimentar
para direita e esquerda conforme seu comando.
[ 58 ]
ultrassnico e os fios e
conecte-os
mostra a figura.
como
[ 59 ]
[ 60 ]
delay(500);
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
abra o Serial Monitor e coloque um objeto na frente no sensor ultrassnico e voc ver a
distncia que o objeto est em relao ao sensor.
IMAGEM DO SERIAL MONITOR
[ 61 ]
Ol pessoal, vamos fazer agora um sensor de r que emite um alerta sonoro quando um
objeto chega a uma certa distncia. Para ficar mais visvel iremos utilizar um LCD que nos
informar a distncia do objeto prximo ao sensor. Os cdigos sero todos comentados
para melhor entendimento, podendo ser retirados aps a compreenso de cada linha. Bom
trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Mdulo ultrassnico HC-SRO4
1 LCD (JHD 162A de 16 colunas e 2 linhas) ou outro modelo com back light
2 Potencimetros de 10 K ohms (Um para o contraste e o outro para a luz de fundo) *
[ 62 ]
1 Sonorizador piezo
Fios jumpers
* Este modelo que utilizei no possui o back light, porm o projeto foi montado com se
tivesse essa funo.
Obs.: Verifique a polaridade do sonorizador piezo.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o sensor ultrassnico, o LCD, o piezo, os potencimetros e os fios e conectemostra a figura.
os como
[ 63 ]
[ 65 ]
Ol pessoal, agora vamos ver como gravar e visualizar um arquivo .doc no carto SD,
gravando com o Arduino e visualizando o arquivo no notebook, desktop, tablet, ou at
mesmo no seu smartphone. Neste projeto foi utilizado um adaptador de microSD da
Samsung, no tive problemas com este carto, portanto se houver problemas com o que
voc utilizar deixe um comentrio. Os cdigos sero todos comentados para melhor
entendimento, podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
Obs. importante: Antes de compilar, coloque o carto SD.
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Modulo SD
[ 66 ]
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o mdulo e os fios e conecte-os como mostra a figura.
Obs.: Neste modulo tem que conectar tambm o 2 GND, 1 Vcc de 3V e 1 Vcc 5V todos no
Arduino.
No importa se voc utiliza fios de cores diferentes ou furos diferentes na protoboard,
desde que os componentes e os fios estejam conectados na mesma ordem da figura.
Tenha cuidado ao inserir os componentes na protoboard. Caso sua protoboard seja nova, a
superfcie dos furos ainda estar rgida. A no insero cuidadosa dos componentes pode
resultar em danos. Certifique-se de que todos os componentes estejam conectados
corretamente. Quando voc estiver seguro de que tudo foi conectado corretamente, ligue
seu Arduino e conecte o cabo USB.
[ 67 ]
[ 68 ]
if (meuArquivo) {
Serial.println("test.doc:");
// Le o arquivo at que no h mais nada nele
while (meuArquivo.available()) {
Serial.write(meuArquivo.read());
}
// Fecha o arquivo
meuArquivo.close();
} else {
// Se o arquivo no abriu, ser mostrado uma menssagem de erro
void loop()
{
// Nada acontece aqui
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
abra o Serial Monitor e logo voc ver os passos para gravao do arquivo, assim que
gravar retire o carto e insira-o no computador l ter um arquivo chamado TEST, clique
nele e ele ser aberto.
[ 69 ]
[ 70 ]
[ 71 ]
[ 72 ]
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
[ 73 ]
[ 74 ]
Fios jumpers
Faa
download
do
arquivo
Arquivos
Osciloscpio
emhttps://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122;
2) Aps feito o download, descompacte o arquivo;
3) Coloque o potencimetro na protoboard e conecte um fio jumper no pino analgico A0
do Arduino e no pino central do potencimetro (como mostra a figura abaixo);
4) Com o Arduino conectado ao computador abra o arquivo XOscillo, abrir a IDE com o
cdigo, logo aps isto voc dever grava-lo em seu Arduino;
5) Depois de gravar o cdigo, abra o programa executvel XOscillo;
6) Com o programa aberto clique na abra File, New Analog Arduino e pronto;
7) Gire o potencimetro e voc ir ver a oscilao no respectivo programa;
CONECTANDO OS COMPONENTES
[ 75 ]
Obs.: A imagem acima mostra alguns recursos disponveis que o programa oferece,
explore-o e ter mais conhecimento cada vez mais.
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino.
[ 76 ]
Ol pessoal, neste projeto vou ensinar como fazer do Arduino um gerador de frequncias
em ondas quadras variando de 0Hz a 980Hz mostrando no Serial Monitor a passagem das
frequncias geradas a cada 2 segundos. Os pinos 5 e 6 tem uma frequncia de
aproximadamente 980Hz enquanto os demais pinos possuem apenas 490Hz. Utilizei o a
funo tone para gerar as frequncias no pino 6 do Arduino. Com este projeto voc pode
controlar leds, motores, sonorizador piezo ou at mesmo inserir este sinal em filtros. O
cdigo bem simples e de fcil compreenso. Os cdigos sero todos comentados para
melhor entendimento, podendo ser retirados aps a compreenso de cada linha. Bom
trabalho !!!
[ 77 ]
Para voc visualizar o monitor serial selecione a opo Tools, Serial Monitor (ou
Ctrl+Shift+M) e pronto.
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Sonozidor piezo
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue o sonorizador e conecte o como mostra a figura. Observao importante:
Verificar a polaridade do sonozidaror.
[ 78 ]
[ 79 ]
Serial.println("A frequencia eh
{
tone(6,700); delay(2000);
}
Serial.println("A frequencia eh
{
tone(6,800); delay(2000);
}
Serial.println("A frequencia eh
{
tone(6,900); delay(2000);
}
Serial.println("A frequencia eh
{
tone(6,980); delay(2000);
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino.
[ 80 ]
Ol pessoal, hoje iremos aprender como utilizar a placa ethernet junto com o Arduino, a
partir da podemos fazer vrias coisas tais como: controlar luzes em um ambiente de nossa
casa, ligar ou desligar aparelhos eletrnicos entre outras coisas, ou seja podemos fazer um
ambiente automatizado. Mas vamos partir do bsico primeiro. O shield utilizado o
Ethernet shield Wiznet W5100, onde se pode encontrar facilmente pela internet em lojas
especializadas. Ento vamos l galera! Os cdigos sero todos comentados para melhor
entendimento, podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Ethernet shield Wiznet W5100
CONECTANDO OS COMPONENTES
[ 81 ]
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, conecte o shield ethernet como mostra a figura abaixo:
[ 82 ]
[ 83 ]
[ 84 ]
Se voc fizer corretamente todos os passos acima, ento sua placa estar configurada
corretamente! Aguardem, pois iremos acionar leds utilizando a internet como se fosse um
controle remoto.
[ 85 ]
Ol pessoal, hoje iremos aprender como ligar e desligar um LED utilizando o Ethernet
shield Wiznet W5100, este Shield voc pode encontrar facilmente pela internet em lojas
especializadas, comeando pelo bsico voc pode acionar motores, reles para acionar
diversos equipamentos dentro ou fora de sua casa como monitoramento de alarme, porto
eletrnico, enfim muito pode ser feito com este pequeno Shield, mas primeiro vamos
ascender um LED. Ento vamos l galera! Os cdigos sero todos comentados para melhor
entendimento, podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Ethernet shield Wiznet W5100
1 LED (qualquer cor)
1 Resistor de 300
[ 86 ]
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, conecte o shield ethernet como mostra a figura abaixo:
[ 87 ]
[ 88 ]
[ 89 ]
}
}
}
}
}
readString="";
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino.
PARA VISUALIZAR AS DEFINIES DE SUA REDE SIGA OS PASSOS ABAIXO:
1) Entre no campo executar de seu Windows;
2) Digite CMD, ir abrir a tela do DOS;
3) Digite ipconfig, e aperte ENTER;
4) Pronto os dados reais de sua rede sero mostrados;
5) Se o seu IP for 192.168.2.189, voc dever mudar o ultimo digito por 4 por exemplo e
preencher no cdigo acima para no haver conflito com seu MAC / IP reais;
ASCENDENDO O LED
Com o programa j copilado vamos verificar se agora est funcionando corretamente, siga
os passos abaixo:
1) Entre em seu navegador (Eu usei o Chrome e Firefox: funcionou perfeitamente);
2) Digite na barra de endereo o IP com o ultimo digito diferente do seu, por exemplo
192.168.2.184 e ENTER;
3) Pronto voc ir ver uma pgina HTML contendo um pequena descrio e dois links
Ascender led e Apagar led, clique neles e ver o LED ascender ou apagar;
OBS.: Voc tambm pode digitar o endereo IP em seu tablet ou smarthone, ligando ou
desligando o LED.
[ 91 ]
Ol galera, j vimos com testar nossa placa ethernet, com ascender led, e agora vamos
aprender como ascender lmpada com o Shield Ethernet. Com este projeto voc tambm
poder acionar outros eletrodomsticos, como ventiladores, ar condicionados, entre outros.
O shield utilizado o Ethernet shield Wiznet W5100, onde se pode encontrar facilmente
pela internet em lojas especializadas. Ento vamos l galera! Os cdigos sero todos
comentados para melhor entendimento, podendo ser retirados aps a compreenso de
cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Ethernet shield Wiznet W5100
1 Lampada com soquete
1 Plug macho
Fios jumpers
[ 92 ]
[ 93 ]
[ 94 ]
}
readString="";
}
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino.
PARA VISUALIZAR AS DEFINIES DE SUA REDE SIGA OS PASSOS ABAIXO:
1) Entre no campo executar de seu Windows;
2) Digite CMD, ir abrir a tela do DOS;
3) Digite ipconfig, e aperte ENTER;
4) Pronto os dados reais de sua rede sero mostrados;
5) Se o seu IP for 192.168.2.189, voc dever mudar o ultimo digito por 4 por exemplo e
preencher no cdigo acima para no haver conflito com seu MAC / IP reais;
ASCENDENDO A LMPADA
Com o programa j copilado vamos verificar se agora est funcionando corretamente, siga
os passos abaixo:
1) Entre em seu navegador (Eu usei o Chrome e Firefox: funcionou perfeitamente);
2) Digite na barra de endereo o IP com o ultimo digito diferente do seu, por exemplo
192.168.2.184 e ENTER;
3) Pronto voc ir ver uma pgina HTML contendo um pequena descrio e dois links
Ascender lmpada e Apagar lmpada, clique neles e ver a lmpada ascender ou
apagar;
[ 96 ]
Ol pessoal, hoje iremos aprender como utilizar um LCD Nokia 5110, simples mas que
muda totalmente o projeto, deixando sua interface com visualizao das informaes muito
mais agradveis do que um LCD comum. Os cdigos sero todos comentados para melhor
entendimento, podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Resistor de 220
1 Mdulo Nokia 5110
1 Protoboard
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, conecte o mdulo Nokia 5110 e o resistor assim como mostra a figura abaixo.
[ 97 ]
[ 98 ]
[ 99 ]
Ol pessoal, com o Nokia 5110 podemos fazer variarias coisas, como visualizar na tela
imagens, textos e muito mais, irei mostrar como visualizar um grfico de temperatura com
este maravilhoso LCD juntamente com um sensor de temperatura LM35, deixando com
uma visualizao mais compreensvel aos usurios. Os cdigos sero todos comentados
para melhor entendimento, podendo ser retirados aps a compreenso de cada linha. Bom
trabalho !!!
COMPONENTES NECESSRIOS
1 Resistor de 220
1 Mdulo Nokia 5110
1 Protobord
1 Sensor de temperatura LM35
Fios jumpers
[ 100 ]
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, conecte o mdulo Nokia 5110, o LM35 e o resistor assim como mostra a figura
abaixo:
[ 101 ]
delay(500);
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino.
Se tudo estiver OK voc ver na tela a temperatura real, juntamente com um grfico que
ir mudar de acordo com a temperatura.
[ 103 ]
Ol pessoal, hoje vamos aprender como utilizar o teclado matricial 4x4 (4 colunas por 4
linhas. Com este teclado podemos ligar LED, motores entre outros, basta apenas configurar
as funes para cada boto do teclado, simples e fcil. Ento vamos l galera! Os cdigos
sero todos comentados para melhor entendimento, podendo ser retirados aps a
compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Protobord
1 Resistor de 220
1 LED (Qualquer cor)
1 Teclado matricial 4X4
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, siga o modelo como mostra a figura abaixo.
[ 104 ]
[ 105 ]
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// Conecta o teclado matricial em linha 0, linha 1, linha 2, linha 3 e linha 4...
//dos pinos do arduino.
byte rowPins[ROWS] = { 9, 8, 7, 6 };
// Conecta o teclado matricial em coluna 0, coluna 1, coluna 2, coluna 3 e...
//coluna 4 do arduino.
byte colPins[COLS] = { 12, 11, 10, 5 };
// Cria um objto Keypad.
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
#define ledpin 13 // Led conectado no pino 13 do arduino.
void setup()
{
pinMode(ledpin,OUTPUT); // Define o pino 13 como sendo de sada.
digitalWrite(ledpin, HIGH); // incializa com o led ligado.
Serial.begin(9600); // Inicia o Serial Monitor.
}
void loop()
{
char key = kpd.getKey();
if(key) // Checa se um boto foi pressionado.
{
switch (key)
{
case '*': // Se for pressionado...
digitalWrite(ledpin, LOW); // o led apaga.
break; // Parada, aguardando pressionar outro boto.
case '#': // Se for pressionado...
digitalWrite(ledpin, HIGH); // o led ascende.
break;
case 'A':
digitalWrite(ledpin, HIGH);
break;
case 'B':
digitalWrite(ledpin, LOW);
break;
case 'C':
digitalWrite(ledpin, HIGH);
break;
case 'D':
[ 106 ]
}
}
digitalWrite(ledpin, LOW);
break;
default:
Serial.println(key);
Para confirmar se est tudo certo aperto o boto Verify/Upload. Se estiver correto voc
pode abrir o Serial Monitor em Tools, Serial Monitor ou selecionando simultaneamente os
botes Ctrl+Shift+M, aperte os botes numricos do teclado e este ser impresso na tela,
d para utilizar como um controle remoto.
IMAGEM DO SERIAL MONITOR
[ 107 ]
Ol pessoal, j vimos como utilizar o teclado matricial da forma mais simples controlando
um LED, agora vamos utilizar este mesmo teclado para acionar um rele. Para este projeto
ser includo uma nova biblioteca a "Password.h" que tem como funo o controle de
strings, validando-as. Por default a senha deste projeto ser 1234, mas pode ser
modificada (fica a seu critrio). Aqui foi utilizado para acionar um rele, mas pode ser para
acionar um solenoide por exemplo, ou para outros fins. Os cdigos sero todos
comentados para melhor entendimento, podendo ser retirados aps a compreenso de
cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Arduino Uno R3
1 Shield rele
1 Teclado matricial 4X4
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, conecte o shield rele e o teclado matricial como mostra a figura abaixo:
[ 108 ]
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// Conecta o teclado matricial em linha 0, linha 1, linha 2, linha 3 e linha 4...
//dos pinos do arduino.
byte rowPins[ROWS] = {9,8,7,6};
// Conecta o teclado matricial em coluna 0, coluna 1, coluna 2, coluna 3 e...
//coluna 4 do arduino.
byte colPins[COLS] = {12,11,10,5};
// Cria um objeto Keypad.
Keypad keypad=Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup(){
pinMode(4, OUTPUT); // Define pino 4 como sada.
Serial.begin(9600); // Inicializa Serial Monitor.
keypad.addEventListener(keypadEvent);
keypad.setDebounceTime(250);
}
void loop(){
keypad.getKey();
}
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){ // Condio switch...
case PRESSED: // Se precionado algum boto...
Serial.print("Digitado: "); // Aparecera no Serial Monitor, Digitado: "X".
Serial.println(eKey); // Armazena numero digitado na varivel eKey.
switch (eKey){
// Pressionando "C" confirma se a senha foi digitado corretamente.
case 'C': guessPassword();
break;
default:
password.append(eKey);
}
}
}
void guessPassword(){
// Informa no Serial Monitor "Verificando, aguarde...".
Serial.print("Verificando, aguarde... ");
if (password.evaluate()){
// Informa no Serial Monitor "Acionando rele...".
[ 110 ]
}
Para confirmar se est tudo certo aperto o boto Verify/Upload. Se estiver correto voc
pode abrir o Serial Monitor em Tools, Serial Monitor ou selecionando simultaneamente os
botes Ctrl+Shift+M, digite a senha 1234 e aperte o boto C, pronto seu rele ir acionar
por 2 segundos e depois ser desativado.
IMAGEM DO SERIAL MONITOR
[ 111 ]
Ol pessoal, neste projeto iremos utilizar o mdulo de identificao por rdio frequncia o
RFID-RC522 encontrado em lojas especializadas do ramo de eletrnica. Este projeto
consiste em apenas visualizar os dados contidos no carto. Posteriormente iremos acionar
um rele a partir do cdigo do carto. Ento mos aos componentes !! Os cdigos sero
todos comentados para melhor entendimento, podendo ser retirados aps a compreenso
de cada linha. Bom trabalho !!!
Obs.: Para visualizar o Serial Monitor, basta ir em Tools e Serial Monitor ou pressionar
Crtl+Shift+M e pronto.
COMPONENTES NECESSRIOS
1 Shield RFID-RC522
Fios jumpers do tipo macho/fmea
CONECTANDO-SE AO MODULO RFID
1) Faa o download do arquivo Rfid_master
emhttps://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122;
2) Aps feito o download, descompacte o arquivo;
[ 112 ]
[ 113 ]
return;
}
// Seleciona um dos cartes.
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
// Agora um carto selecionado. O UID e SAK esto no mfrc522.unis.
// Descarrega UID.
Serial.print("Card UID:");
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
}
Serial.println();
// Descarrega PICC.
byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
Serial.print("PICC type: ");
Serial.println(mfrc522.PICC_GetTypeName(piccType));
if ( piccType != MFRC522::PICC_TYPE_MIFARE_MINI
&& piccType != MFRC522::PICC_TYPE_MIFARE_1K
&& piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println("This sample only works with MIFARE Classic cards.");
return;
}
// Orepara a chave - todas as chaves esto configuradas para...
//FFFFFFFFFFFFh (Padro de fbrica).
MFRC522::MIFARE_Key key;
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
// Nesta amostra nos usamos o segundo setor (bloco 4-7).
byte sector = 1;
byte valueBlockA = 5;
byte valueBlockB = 6;
byte trailerBlock = 7;
// Valida usando a chave A.
Serial.println("Authenticating using key A..."); // Imprime no Serial Monitor.
byte status;
status = mfrc522.PCD_Authenticate
(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid));
if (status != MFRC522::STATUS_OK) {
Serial.print("PCD_Authenticate() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
[ 114 ]
return;
}
// Precisamos de um setor que define blocos 5 e 6 com valores de blocos...
//e que permita a chave B.
byte trailerBuffer[] = { 255,255,255,255,255,255, 0,0,0,
0, 255,255,255,255,255,255}; // Mantem por teclas padro.
mfrc522.MIFARE_SetAccessBits(&trailerBuffer[6], 0, 6, 6, 3);
// Agora nos lemos o setor e vemos se isto ista como nos queremos...
//que seja.
Serial.println("Reading sector trailer...");
byte buffer[18];
byte size = sizeof(buffer);
status = mfrc522.MIFARE_Read(trailerBlock, buffer, &size);
if (status != MFRC522::STATUS_OK) {
Serial.print("MIFARE_Read() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
if ( buffer[6] != trailerBuffer[6]
&& buffer[7] != trailerBuffer[7]
&& buffer[8] != trailerBuffer[8]) {
Serial.println("Writing new sector trailer..."); // Imprime no Serial Monitor.
status = mfrc522.MIFARE_Write(trailerBlock, trailerBuffer, 16);
if (status != MFRC522::STATUS_OK) {
Serial.print("MIFARE_Write() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
}
// Valida usando chave B.
// Imprime no Serial Monitor.
Serial.println("Authenticating again using key B...");
status = mfrc522.PCD_Authenticate
(MFRC522::PICC_CMD_MF_AUTH_KEY_B, trailerBlock, &key, &(mfrc522.uid));
if (status != MFRC522::STATUS_OK) {
// Se haver falha na autenticao uma mensagem ser exibida no...
//Serial Monitor.
Serial.print("PCD_Authenticate() failed: ");
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
/*OBS.: O valor dos blocos tem um valor com sinal de 32 bit armazenado
trs vezes e um endereo de 8 bits armazenados 4 vezes. Certifique-se
de blocos valueBlockA e valueBlockB tem esse formato: formatBlock
(alueBlockA); */
[ 115 ]
[ 117 ]
Ol pessoal, antes de comearmos a acionar componentes pelo smartphone e/ou tablet via
bluetooth se faz necessrio algumas configuraes do mdulo antes disto, para que tudo
funcione corretamente. Ento... mos aos componentes !! Os cdigos sero todos
comentados para melhor entendimento, podendo ser retirados aps a compreenso de
cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Shield JY-MCU (Mdulo Bluetooth)
Fios jumpers do tipo macho/fmea
CONECTANDO OS COMPONENTES
[ 118 ]
[ 119 ]
{
}
} // Fim do loop.
3) Aps carregado o cdigo para seu Arduino, abra o Serial Monitor (mantenha apertados
Control+Shift+M);
4) Altere a velocidade de 9600 para 115200 como mostra a imagem abaixo:
[ 120 ]
[ 121 ]
Ol pessoal, como prometido, irei mostrar como acionar LED e rele via bluetooth. Este
projeto se aplica tanto a smartphones quanto a tablets. Muito mais fcil de usar com este
app do que com outros que voc possa encontrar pela internet. Mos aos componentes!
COMPONENTES NECESSRIOS
1 Shield JY-MCU (Mdulo Bluetooth)
1 Shield rele
[ 122 ]
1 resistor de 330
1 LED (qualquer cor)
1 Smartphone com Android
Fios jumper do tipo macho/femea e macho/macho
[ 123 ]
3)
Clique
em
Discover
devices
para
encontrar
seu
Shield
Bluetooth.
Se
seu aparelho estiver com o bluetooth desligado, ele ir habilitar o mesmo. Como mostra na
imagem abaixo:
[ 124 ]
5) O meu shield est com o nome ELTONSHIELD, visualize o seu e clique clique nele para
seleciona-lo;
6) Aps isto ir se conectar a sua placa Arduino como mostra a imagem abaixo:
[ 125 ]
[ 126 ]
1) Clique em cima do pino 7, ira aparecer as opes para setar o pino como output ou
input. Selecione output assim como mostra a imagem abaixo:
2) Se voc quiser deixar este pino desligado basta apenar clicar em OK. Caso queira liga-lo
clique em cima de OFF e ira ficar ON, clique em OK e pronto o LED ira ascender como
mostra as imagens abaixo:
[ 127 ]
3) Para apaga-lo clique em cima do pino 7 novamente e clique em ON para ficar OFF e OK.
Pronto LED desligado.
4) Para acionar o rele segue a mesma linha de raciocnio. Clique em cima do pino 11,
selecione output e clique em cima de OFF para ficar ON e OK acionar o rele.
[ 128 ]
5) Para desabilitar o pino clique em cima dele, selecione ON para ficar OFF e OK.
[ 129 ]
[ 130 ]
Projeto 31 Utilizando
arduinocomander
[ 131 ]
PWM
via
bluetooth
com
Ol pessoal! Continuando com este excelente app, hoje vou mostrar como utilizar o PWM
com o ArduinoCommander. Temos duas maneiras para enviar os comandos por largura de
pulso pelo ArduinoCommander, so eles: manualmente ou automaticamente, por cdigo.
Pode se utilizar este recurso em todos pino simultaneamente sem nenhum problema.
Vamos l? Os cdigos sero todos comentados para melhor entendimento, podendo ser
retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Shield JY-MCU (Mdulo Bluetooth)
1 resistor de 330
1 LED (qualquer cor)
1 Smartphone com Android
Fios jumper do tipo macho/femea e macho/macho
[ 132 ]
[ 133 ]
5) O meu shield est com o nome ELTONSHIELD, visualize o seu e clique clique nele para
seleciona-lo;
6) Aps isto ir se conectar a sua placa Arduino como mostra a imagem abaixo:
[ 134 ]
[ 135 ]
1) Para mudar o pulso manualmente, clique em cima do pino 10, ira aparecer as opes
para setar o pino como output ou input... Selecione o Analog output (PWM) e em seguida
Manual. Arraste o componente slider para aumentar ou diminuir o pulso PWM, como
mostra as imagens abaixo:
[ 136 ]
2) Clique em OK e repare que o LED mudou de intensidade, estando seu brilho mais ou
menos forte de acordo com o que voc selecionou ao arrastar a barra e no pino mostra a
tenso que est sendo enviado ao LED:
3) H uma forma mais incrementada para ser enviar o pulso. Para isso voc dever seguir
estes passos. Clique novamente em cima do pino 10 e selecione a opo Anolog output
(PWM), Use generator e clique no boto Configure.
[ 137 ]
4) Ir abrir uma nova janela, onde voc dever digitar o seguinte comando:
Obs.: O pulso PWM vai de 0 a 255 ou de 0V a 5V por apenas 5 segundos. Para aumentar
este tempo basta mudar sin in 5 sec por outro valor e OK.
5) Depois de ter digitado o comando basta clicar em OK e voc ver o seu led de aceso a
totalmente apagado, gradativamente.
6) Para desconectar do bluetooth clique da tecla de menu do smartphone e selecione
Disconnect, aguarde alguns segundos e pronto.
[ 138 ]
[ 139 ]
Ol pessoal! Continuando com este excelente app, hoje vou mostrar como utilizar o
osciloscpio com o ArduinoCommander. Iremos utilizar um potencimetro para verificarmos
como o osciloscpio se comporta, experimento simples porm podemos utiliza-lo para
vrias aplicaes. Este osciloscpio nos permite observar a onda por apenas 5 segundos,
porm na verso paga no h limite, sendo bem flexvel permitido at mudar a cor da(s)
onda(s) gerada(s) bem como sua espessura, podemos pausar o osciloscpio e analisarmos
o que for necessrio. Os cdigos sero todos comentados para melhor entendimento,
podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Shield JY-MCU (Mdulo Bluetooth)
1 Potencimetro de 10 K (ou qualquer outro valor)
Fios jumpers
CONECTANDO OS COMPONENTES
[ 140 ]
[ 141 ]
[ 142 ]
5) O meu shield est com o nome ELTONSHIELD, visualize o seu e clique clique nele para
seleciona-lo;
6) Aps isto ir se conectar a sua placa Arduino como mostra a imagem abaixo:
[ 143 ]
[ 144 ]
[ 145 ]
[ 146 ]
Obs.: No se faz necessrio deixar a opo Bzier curve. Se estiver utilizando mais de um
pino para gerar as ondas no osciloscpio, basta deslizar o dedo no meio da tela esquerda e
seleciona-lo ou no, para ser gerado.
5) Clique em Start e movimente o potencimetro e ver as ondas geradas:
[ 147 ]
Obs.: Para mudar a cor da onda clique em Color e mude-a. Caso queira mudar a
espessura da onda clique em - ou +.
[ 148 ]
[ 149 ]
Ol pessoal! Hoje irei mostrar como utilizar o sensor acelermetro do seu prprio
Smartphone para controlar um LED. Alm deste, o appArduinoCommander possui outros
mais, como sensor de proximidade, sensor de campo magntico, sensor de orientao.
Para utiliza-los basta que seu aparelho possua os respectivos sensores. Os cdigos sero
todos comentados para melhor entendimento, podendo ser retirados aps a compreenso
de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Shield JY-MCU (Mdulo Bluetooth)
1 LED (qualquer cor)
1 Resistor de 330
Fios jumpers
[ 150 ]
CONECTANDO OS COMPONENTES
[ 151 ]
3) Clique em Discover devices para encontrar seu Shield Bluetooth. Se o seu aparelho
estiver com o bluetooth desligado, ele ir habilitar o mesmo. Como mostra na imagem
abaixo:
[ 152 ]
5) O meu shield est com o nome ELTONSHIELD, visualize o seu e clique clique nele para
seleciona-lo;
6) Aps isto ir se conectar a sua placa Arduino como mostra a imagem abaixo:
[ 153 ]
[ 154 ]
Obs.: Infelizmente por se tratar de verso free, mesmo mudando o tempo para que se
utilize este recurso, somente poder ser utilizado por um perodo mximo de 10 segundos.
Para se familiarizar com o app, configure como mostrado a cima. Podendo modificar o eixo
posteriormente. Para setar os valores na posio Z voc dever deixar o aparelho na
horizontal em p e clique em Current -> 0 e depois deixo-o na horizontal deitado e clique
em Current -> 1. Clique em OK.
3) Na tela posterior confirme clicando em OK:
[ 155 ]
4) Clique em OK novamente e movimente seu aparelho para baixo e para cima (na
horizontal), e ver o LED acender e apagar conforme o movimento exercido. Na tela
do seu aparelho voc ver mudar a tenso no pino conforme o movimento:
[ 156 ]
[ 157 ]
Ol pessoal, vamos descobrir como utilizar uma tecnologia um pouco antiga, porm ainda
muito utilizado: o infravermelho. Ao apertar um boto de um controle remoto de uma TV, o
CI envia um comando binrio ou hexadecimal pelo emissor e o receptor capta estes dados
e realiza a funo programada pelo respectivo comando. Ns sabemos o valor
hexadecimal/binrio de cada boto? No, at agora! Os cdigos sero todos comentados
para melhor entendimento, podendo ser retirados aps a compreenso de cada linha. Bom
trabalho !!!
COMPONENTES NECESSRIOS
1 Infravermelho receptor TL1838 (ou similar)
1 Protoboard
Fios jumpers
[ 158 ]
FAZENDO
O
DOWNLOAD
IRREMOTE_MASTER:
IMPORTANDO
BIBLIOTECA
DO
1) Acesse o
link https://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122;
2) Faa o download do arquivo IRremote_Master;
3) Descompacte o arquivo;
4) Agora entre no diretrio (C:) e na pasta Arquivos de Programas, Arduino, libraries, copie
o arquivo descompactado nesta pasta;
5) Pronto para utilizar;
CONECTANDO OS COMPONENTES
[ 159 ]
CDIGO DO PROJETO
// Projeto 34 Verificando cdigo de comando de um controle remoto
// Biblioteca para conunicao com o Arduino.
#include <IRremote.h>
// Pino utilizado para fazer a leitura dos valores dos botes...
//do controle remoto.
int RECV_PIN = 6;
IRrecv irrecv(RECV_PIN);
decode_results results; // Decodifica os dados do controle remoto.
void setup()
{
Serial.begin(9600); // Inicia o Serial Monitor.
irrecv.enableIRIn(); // Inicia o infrared receptor.
}
void loop() {
if (irrecv.decode(&results)) {
// Imprime na tela do Serial Monitor o valor dos botes do controle...
//remoto em hexatecimal.
Serial.println(results.value, HEX);
// Aguarda para receber o novo valor quando for pressionado um...
//outro boto.
irrecv.resume();
}
delay(100); // D um tempo de 100 ms entre um valor e outro.
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino.
Abra seu Serial Monitor pressionado as teclas Ctrl + Shift + M simultaneamente.
[ 160 ]
Pressione qualquer boto de seu controle remoto e se tudo estiver OK voc ver impresso
na tela do Serial Monitor os dados de seu controle remoto.
[ 161 ]
Ol pessoal, neste tutorial vamos apreender como enviar comandos em hexadecimais para
controlar sua TV como volume, trocar de canal e ligar/desligar. O projeto em si de fcil
compreenso, desde que seguindo como foi explicado no passo a passo. Ento mos aos
componentes. Os cdigos sero todos comentados para melhor entendimento, podendo ser
retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 LED infravermelho emissor TIL32 (ou similar)
5 Pushes buttons
6 Resistores de 330
1 Protoboard
Fios jumpers
[ 162 ]
FAZENDO
O
DOWNLOAD
IRREMOTE_MASTER:
IMPORTANDO
BIBLIOTECA
DO
1) Acesse o
link https://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122;
2) Faa o download do arquivo IRremote_Master;
3) Descompacte o arquivo;
4) Agora entre no diretrio (C:) e na pasta Arquivos de Programas, Arduino, libraries, copie
o arquivo descompactado nesta pasta;
5) Pronto para utilizar;
CONECTANDO OS COMPONENTES
[ 163 ]
CDIGO DO PROJETO
// Projeto 35 Clonando controle remoto de TV
#include <IRremote.h> // Biblioteca para controlar o led infravermelho
IRsend irsend; // Varivel para poder enviar o cdigo a TV
// Variveis constantes para o controle remoto
// Pino onde estar o boto para aumentar o volume
const int mais_volume = 4;
// Pino responsavl por diminuir o volume
const int menos_volume = 5;
// Pino onde estar o boto para mudar o canal em ordem crescente
const int mais_canal = 6;
// Pino responsavl por mudar o canal em ordem decrescente
const int menos_canal = 7;
// Pino onde estar o boto que iremos ligar/desligar a TV
const int liga_desliga = 8;
// Pino onde iremos conectar o LED emissor de infravermelho
const int ledIR = 3;
// Inicia o boto com o valor do estado em 0
int buttonState = 0;
void setup() {
pinMode(ledIR ,OUTPUT); // Definimos o LED de infra como de sada
Serial.begin(9600); // Iniciamos o Serial Monitor
// Configurando as entradas dos botes como de entrada
pinMode(mais_volume, INPUT);
pinMode(menos_volume, INPUT);
pinMode(mais_canal, INPUT);
pinMode(menos_canal, INPUT);
pinMode(liga_desliga, INPUT);
}
void loop(){
// Se o boto mais_volume for pressionado ele ira enviar o cdigo...
//para aumentar o volume na TV
if (digitalRead(mais_volume) == HIGH) {
// Cdigo que ser enviado a TV para aumentar o volume (Como a...
[ 164 ]
[ 165 ]
Ol pessoal, hoje iremos acionar LEDs e rele via controle remoto. Qualquer controle
remoto serve: de TV, rdio...etc. Para voc fazer este projeto, voc precisar saber qual o
valor hexadecimal de cada boto que ser utilizado neste projeto, para saber como
visualizar o cdigo veja o tutorial Projeto 34 Verificando cdigo de comando de um
controle remoto. J obteve os respectivos valores hexadecimais? Ento vamos ao projeto !!
Os cdigos sero todos comentados para melhor entendimento, podendo ser retirados aps
a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Infravermelho receptor TL1838 (ou similar)
1 Shield Rele
2 Resistores de 330
2 LEDs
1 Protoboard
Fios jumpers
[ 166 ]
FAZENDO
O
DOWNLOAD
IRREMOTE_MASTER:
IMPORTANDO
BIBLIOTECA
DO
1) Acesse o
link https://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122;
2) Faa o download do arquivo IRremote_Master;
3) Descompacte o arquivo;
4) Agora entre no diretrio (C:) e na pasta Arquivos de Programas, Arduino, libraries, copie
o arquivo descompactado nesta pasta;
5) Pronto para utilizar;
CONECTANDO OS COMPONENTES
[ 167 ]
CDIGO DO PROJETO
// Projeto 36 Acionando LED's e rele com infravermelho
// Biblioteca necessria para controle do infravermelho receptor.
#include <IRremote.h>
int
int
int
int
int
int
int
int
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(pino_rele, OUTPUT); // Define todos os pino como de sada.
pinMode(pino_led1, OUTPUT);
pinMode(pino_led2, OUTPUT);
digitalWrite(pino_rele, estado_rele); // Coloca os pinos todos os pino em...
digitalWrite(pino_led1, estado_led1); // estado baixo (pinos desligados).
digitalWrite(pino_led2, estado_led2);
Serial.begin(9600); // Inicializa a serial monitor.
irrecv.enableIRIn(); // Inicializa o receptor IR.
}
void loop()
{
// Verifica se o sensor IR recebeu algum sinal.
if (irrecv.decode(&results))
{
// Mostra na serial o valor lido pelo sensor IR.
Serial.print("Valor lido : ");
Serial.println(results.value, HEX);
// Armazena o sinal recebido pelo sensor IR.
armazenavalor = (results.value);
switch (armazenavalor)
{
[ 168 ]
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino.
Abra seu Serial Monitor pressionado as teclas Ctrl + Shift + M simultaneamente.
Pressione qualquer um dos botes: 1, 2, 3 de seu controle uma vez e ver o rele, os LEDs
serem acionados. Para desliga-los basta pressiona-los novamente.
[ 169 ]
Ol pessoal, conforme prometido neste projeto iremos utilizar o mdulo LCD Nokia 5110
para fazermos um jogo simples e muito conhecido - o ping pong. Eu utilizei dois joysticks
como controle para controlar as barras, porm se vocs no tiverem este componente em
mos vocs podem utilizar potencimetros que far a mesma funo do joystick. Ento
mos aos componentes !! Os cdigos sero todos comentados para melhor entendimento,
podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Shield LCD Nokia 5110
1 Buzzer
2 Joysticks ou potencimetros
1 Resistor de 220
Fios jumper do tipo macho/fmea e macho/macho
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, conecte todos componentes como mostra a figura abaixo:
[ 170 ]
[ 171 ]
#define PIN_BUZZER 8
#define LCD_C
#define LCD_D
LOW
HIGH
[ 172 ]
[ 173 ]
if(x >= bar2X && x <= bar2X + barWidth -1 && bar2Y + barHeight > realY
&& bar2Y < realY + 8 ){
byte barMask = 0x00;
for(int i = 0; i < realY + 8 - bar2Y; i++){
barMask = barMask >> 1;
if(i < barHeight)
barMask = 0x80 | barMask;
}
pixel = pixel | barMask;
}
LcdWrite(LCD_D, pixel);
}
}
} else if(gameState == 2){
// Faz a tratativa dos estgios do jogo.
int pinOut = 8;
int freq = 150;
int duration = 1000;
tone(pinOut, freq, duration);
}
}
void update(){
if(gameState == 1){
int barMargin = LCD_X - barWidth;
// L os joysticks e posiciona as barras no LCD.
int joystick1 = analogRead(A0);
int joystick2 = analogRead(A1);
bar1X = joystick1 / 2 * LCD_X / 512;
bar2X = joystick2 / 2 * LCD_X / 512;
if(bar1X > barMargin) bar1X = barMargin;
if(bar2X > barMargin) bar2X = barMargin;
// Movimento da bola.
if(isBallUp)
ballY -= ballSpeed;
else
ballY += ballSpeed;
if(isBallRight)
ballX += ballSpeed;
else
ballX -= ballSpeed;
// Verifica se ouve colises.
[ 174 ]
}
if(ballY + ballPerimeter > LCD_Y * 8 - barHeight){
LcdWrite(LCD_C, 0x0C );
delay(300);
}
}
restartGame(); // Chama da funo para resetar o game.
}
// Inicializa o LCD.
void LcdInitialise(void){
pinMode(PIN_SCE, OUTPUT);
pinMode(PIN_RESET, OUTPUT);
pinMode(PIN_DC, OUTPUT);
pinMode(PIN_SDIN, OUTPUT);
pinMode(PIN_SCLK, OUTPUT);
delay(200);
digitalWrite(PIN_RESET, LOW);
delay(500);
digitalWrite(PIN_RESET, HIGH);
LcdWrite(LCD_C, 0x21 ); // Comandos ampliados do LCD.
LcdWrite(LCD_C, 0xB1 ); // Configura o contraste do LCD.
LcdWrite(LCD_C, 0x04 ); // Configura o tempo de coeficiente.
LcdWrite(LCD_C, 0x14 );
LcdWrite(LCD_C, 0x0C ); // LCD em modo normal.
LcdWrite(LCD_C, 0x20 );
LcdWrite(LCD_C, 0x80 );
LcdWrite(LCD_C, 0x40 );
LcdWrite(LCD_C, 0x0C );
[ 176 ]
Ol pessoal, para quem no tem um LCD nokia 5110 tambm pode fazer jogos muito legais
com um LCD 16X2. Este jogo consiste em desviar dos caminhes, evitando assim as
colises. Parece ser fcil, porm a velocidade vai aumentando e a coliso certeira!! Para
movermos o carrinho para baixo e para cima dispomos de um potencimetro como
controle. Ento vamos ao trabalho. Os cdigos sero todos comentados para melhor
entendimento, podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Protoboard
1 LCD 16X2
1 Buzzer
2 Potencimetros
Fios jumper
Obs.: Voc pode utilizar mais de um potencimetro para controle de brilho (Verifique
o post cooler)
[ 177 ]
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB.
Agora, pegue a protobord, o LCD, o buzzer, os potencimetros e os fios jumpers e conecteos assim como mostra a figura abaixo:
[ 178 ]
CDIGO DO PROJETO
// Projeto 38 - Jogo dos caminhes com LCD 16X2
// Declarando a biblioteca para comunicao com o LCD.
#include <LiquidCrystal.h>
LiquidCrystal lcd(9, 8, 5, 4, 3, 2); // Declarando os pinos a serem usados.
const int POTPIN = 1; // Potenciometro no pino A1 do Arduino
// Precisamos girar todo o potenciometro para o carrinho subir e...
//descer no visor do LCD.
const int MAXPOT = 1024;
// Declara o pino digital 10 para acionar o Speaker.
const int SPEAKERPIN = 10;
// Um pino analogico que no esta conectado a nada.
const int RANDSEEDPIN = 0;
// Inicia devagar e a cada milisegundos vai aumetando a velocidade...
const int MINSTEPDURATION = 150;
// At chegar ao mximo de sua velocidade.
const int MAXSTEPDURATION = 300;
const int NGLYPHS = 6;
byte glyphs[NGLYPHS][8] = { // Iremos criar os carros e caminhes...
// Imagem carro para cima.
{ B00000,
B01110,
B11111,
B01010,
B00000,
B00000,
B00000,
B00000}
// Imagem carro para baixo.
,{B00000,
B00000,
B00000,
B00000,
B01110,
B11111,
B01010,
B00000}
[ 179 ]
[ 180 ]
{1,BLANK},{2,BLANK},{BLANK,1},{BLANK,2}
};
char truck2glyphs[NCARPOSITIONS][2] = {
{3,BLANK},{4,BLANK},{BLANK,3},{BLANK,4}
};
char crash2glyphs[NCARPOSITIONS][2] = {
{5,BLANK},{6,BLANK},{BLANK,5},{BLANK,6}
};
const int ROADLEN = 15; // Largura do LCD (sem contar nosso carro).
int road[ROADLEN]; // Posio dos outros carros.
char line_buff[2+ROADLEN];
int road_index;
int car_pos;
// Off-the-grid posio significa coluna vazia, ento MAXROADPOS
// Determina a probabilidade de um carro numa coluna
// Por exemplo 3 * NCARPOSITIONS d p = 1/3
const int MAXROADPOS = 3*NCARPOSITIONS;
int step_duration;
int crash; // Verdadeiro se haver coliso.
unsigned int crashtime;
const int CRASHSOUNDDURATION = 250;
[ 181 ]
[ 182 ]
lcd.setCursor(0,i);
lcd.print(line_buff);
}
}
Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo estiver
correto pressione o boto Upload para fazer o upload do cdigo para seu Arduino. Pronto,
agora ajuste o contraste do seu LCD girando o potencimetro correspondente. O jogo ir
comear em breve, quando isso acontecer gire o potencimetro para o carrinho subir e
descer afim de desviar dos caminhes. Boa diverso!!!
Obs.: Quando voc colidir com algum dos caminhes, reset o jogo pressionando o boto de
reset de seu Arduino.
[ 183 ]
Ol pessoal, neste projeto iremos aprender a criar uma interface web simples utilizando o
arduino. Para isso voc ir precisar de um potencimetro e um Shield Ethernet para que
seja possvel realizar a conexo com a rede de internet. O projeto de fcil compreenso
deixando de forma clara e objeta com vrios comentrios nas linhas do cdigo. Ento
vamos ao trabalho !! Os cdigos sero todos comentados para melhor entendimento,
podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Protoboard
1 Potencimetro de 10K (Ou outro equivalente)
1 Shield Ethernet
Fios jumper
DOWNLOAD DA PGINA WEB
Faa o download do arquivo da pgina web neste
linkhttps://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122 (
OneDrive).
[ 184 ]
CONECTANDO OS COMPONENTES
[ 185 ]
CDIGO DO PROJETO
// Projeto 39 - Interface Web com arduino
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
// Tamanho do buffer utilizado para capturar os pedidos HTTP
#define REQ_BUF_SZ 50
// Setando Endereo MAC e IP para a placa Ethernet
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// Configurando o endereo IP (mudar conforme sua rede)
IPAddress ip(192, 168, 2, 120);
EthernetServer server(80); // Criar um servidor na porta 80
File webFile; // Arquivo da pgina web no carto SD
// Armazena o buffer requerido a pgina web
char HTTP_req[REQ_BUF_SZ] = {0};
char req_index = 0; // ndice no HTTP_req buffer
void setup()
{
// Desativar o chip de Ethernet
pinMode(10, OUTPUT);
digitalWrite(10, HIGH);
Serial.begin(9600); // Adicionado para depurao
// Inicializa o SD card
Serial.println("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println("ERROR - SD card initialization failed!");
return; // Inicializao falhou
}
Serial.println("SUCCESS - SD card initialized.");
// Verifica se exite o arquivo index.htm
if (!SD.exists("index.htm")) {
Serial.println("ERROR - Can't find index.htm file!");
return; // No pode encontrar o arquivo especificado
}
Serial.println("SUCCESS - Found index.htm file.");
// Arquivo index.htm encontrado com sucesso
Ethernet.begin(mac, ip); // Inicializa o dispositivo Ethernet
server.begin(); // Inicializa o servidor web
}
[ 186 ]
void loop()
{
EthernetClient client = server.available(); // tentar obter cliente
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) { // Dados do cliente disponvel para leitura
char c = client.read(); // L 1 byte (atributo) do cliente
// Primeira parte do pedido HTTP em ordem HTTP_req
/* Deixa o ltimo elemento na matriz como 0 para terminar...
a string (REQ_BUF_SZ - 1)*/
if (req_index < (REQ_BUF_SZ - 1)) {
HTTP_req[req_index] = c; // Salva o atributo HTTP requerido
req_index++;
}
// A ltima linha da requiso do cliente fica em branco e ternina com \n
// Responde para o cliente somente depois da ltima linha recebida
if (c == '\n' && currentLineIsBlank) {
// Enviar um cabealho de resposta HTTP padro
client.println("HTTP/1.1 200 OK");
// Restante do cabealho segue abaixo, dependendo se...
// Pgina web ou pgina XML solicitada
// Pedido Ajax - Enviar arquivo XML
if (StrContains(HTTP_req, "ajax_inputs")) {
// Enviar restante do cabealho HTTP
client.println("Content-Type: text/xml");
client.println("Connection: keep-alive");
client.println();
// Enviar arquivo XML contendo estados de entrada
XML_response(client);
}
else { // Solicitao de pgina web
// Enviar restante do cabealho HTTP
client.println("Content-Type: text/html");
client.println("Connection: keep-alive");
client.println();
// Envia pgina web
// Abre o arquivo da pgina web
webFile = SD.open("index.htm");
if (webFile) {
while(webFile.available()) {
client.write(webFile.read()); // Cliente recebe a pgina web
}
webFile.close();
[ 187 ]
}
}
// Exibio na porta de serial o pedido recebido de HTTP
Serial.print(HTTP_req);
// Reseta o buffer para 0
req_index = 0;
StrClear(HTTP_req, REQ_BUF_SZ);
break;
}
// Cada linha de texto recebidas do cliente termina com \ r \ n
if (c == '\n') {
// Iniciar nova linha com a prxima leitura de caracteres
currentLineIsBlank = true;
}
else if (c != '\r') {
// Caracter recebido pelo cliente
currentLineIsBlank = false;
}
}
}
delay(1);
// D um tempo para o browser receber os dados
client.stop(); // Fecha a conexo
} // Fim do lao if (client)
}
// Envia ao arquivo XML os valores do pino analogico
void XML_response(EthernetClient cl)
{
int analog_val;
cl.print("");
cl.print("");
// L o pino A3
analog_val = analogRead(3);
cl.print("");
cl.print(analog_val);
cl.print("");
cl.print("");
[ 189 ]
Ol pessoal, neste projeto iremos aprender a fazer um monitor de temperatura web com o
arduino. Para isso voc ir precisar de um sensor LM 35 e um Shield Ethernet para que
seja possvel realizar a conexo com a rede de internet. O projeto de fcil compreenso
deixando de forma clara e objeta com vrios comentrios nas linhas do cdigo. Ento
vamos ao trabalho !! Os cdigos sero todos comentados para melhor entendimento,
podendo ser retirados aps a compreenso de cada linha. Bom trabalho !!!
COMPONENTES NECESSRIOS
1 Protoboard
1 Sensor LM 35
1 Shield Ethernet
Fios jumper
DOWNLOAD DA PGINA WEB
Faa o download do arquivo da pgina web neste
linkhttps://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122 (
OneDrive).
SIGAS OS PASSOS ABAIXO:
[ 190 ]
CONECTANDO OS COMPONENTES
CDIGO DO PROJETO
// Projeto 40 - Monitor de temperatura com arduino
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
[ 191 ]
}
else { // Solicitao de pgina web
// Enviar restante do cabealho HTTP
client.println("Content-Type: text/html");
client.println("Connection: keep-alive");
client.println();
// Envia pgina web
// Abre o arquivo da pgina web
webFile = SD.open("index1.htm");
if (webFile) {
while(webFile.available()) {
client.write(webFile.read()); // Cliente recebe a pgina web
}
webFile.close();
}
}
// Exibio na porta de serial o pedido recebido de HTTP
Serial.print(HTTP_req);
// Reseta o buffer para 0
req_index = 0;
StrClear(HTTP_req, REQ_BUF_SZ);
break;
}
[ 193 ]
}
delay(1);
// D um tempo para o browser receber os dados
client.stop(); // Fecha a conexo
} // Fim do lao if (client)
cl.print("");
cl.print("");
// L o pino A2
cl.print("");
cl.print(tempC);
cl.print("");
cl.print("");
}
// Seta todos os elementos de str para 0 (limpa o vetor)
void StrClear(char *str, char length)
{
for (int i = 0; i < length; i++) {
str[i] = 0;
}
}
[ 194 ]
return 0;
[ 195 ]