Escolar Documentos
Profissional Documentos
Cultura Documentos
278-40 - HP11815955097237
ARDUHACK
PARE DE COPIAR
PROJETOS E COMECE
A CONSTRUIR OS
SEUS AGORA MESMO
+ DE 15 PROJETOS BÔNUS
MÉTODO APROVADO
POR ALUNOS
DIRECIONADO A PRÁTICA
MATEUS D. DIAS
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
REVISÃO 2.0
SOBRE O AUTOR:
**********************************************************************************
CANAIS DE CONTATO:
Canal do Telegram:
https://t.me/canallobodarobotica
Instagram:
https://www.instagram.com/lobodarobotica/
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
https://lobodarobotica.com/blog
Canal no Youtube:
https://lobodarobotica.com/canal-yt
Página do Facebook:
https://www.facebook.com/lobodarobotica/
https://lobodarobotica.com/acesso-minicurso
E-mail:
suporte@lobodarobotica.com
2
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
DEDICATÓRIA
3
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Por mais que você já saiba alguns conceitos que esse livro
vai te passar, eu recomendo fortemente que você não pule
capítulos, e execute todos os exercícios propostos, pois isso vai
te dar suporte para no futuro você construir projetos cada vez
maiores e mais complexos.
Bom Aprendizado!
4
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SUMÁRIO
REVISÃO 2.0 .......................................................................................1
SOBRE O AUTOR: ........................................................................1
DEDICATÓRIA ....................................................................................3
POR QUE ESCREVI ESSE LIVRO ....................................................4
KIT ARDUINO COMPLETO LOBO DA ROBÓTICA.....................8
TREINAMENTO COMPLETO DE ARDUINO ...............................9
CAPITULO 0 ......................................................................................13
0.1 APRESENTAÇÃO .......................................................................13
0.2 ARDUÍNO BLUEPRINT ..............................................................15
CAPITULO 1 ......................................................................................16
1.1 COMO FUNCIONA A PROTOBOARD?.....................................17
1.2 CONVERSANDO COM O ARDUINO.........................................19
EXERCÍCIO 1 ..............................................................................25
1.3 VOID LOOP E VOID SETUP ......................................................26
1.4 ARMAZENANDO INFORMAÇÕES COM VARIÁVEIS ..............27
CONTEXTO DE VARIÁVEIS.......................................................30
#DEFINE E CONSTANTES ........................................................32
EXERCÍCIO 2 ..............................................................................35
1.5 OPERADORES ARITMÉTICOS – FAZENDO CÁCULOS
DURANTE A PROGRAMAÇÃO .......................................................36
ATRIBUIÇÃO (=) .........................................................................36
ADIÇÃO (+) ..................................................................................37
SUBTRAÇÃO (-) ..........................................................................39
MULTIPLICAÇÃO (*) ...................................................................40
DIVISÃO (/) ..................................................................................42
RESTO (%) ..................................................................................44
SOMA UNITÁRIA (++) .................................................................45
SUBTRAÇÃO UNITÁRIA (--).......................................................46
CAPITULO 2......................................................................................47
5
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
6
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
7
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
https://lobodarobotica.com/oferta-kit-alunos
8
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
9
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
10
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
11
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
https://lobodarobotica.com/treinamento-arduhack-
completo
12
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
CAPITULO 0
0.1 APRESENTAÇÃO
13
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
14
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
https://lobodarobotica.com/arduino-blueprint
15
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
CAPITULO 1
https://www.tinkercad.com/
https://lobodarobotica.com/blog/ide-do-arduino-o-guia-
definitivo/
16
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
17
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Figura 1 – Protoboard.
18
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
19
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
void setup() {
//configura a comunicação serial com baud rate de 9600
Serial.begin(9600);
//Comando para que o Arduíno envie a mensagem Hello World
Serial.print("Hello World");
void loop() {
20
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Exemplo:
void setup() {
void loop() {
21
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Exemplo:
void setup()
{
Serial.begin(9600);
Serial.println("Hello World");
Serial.println("Hello World");
}
void loop()
{
}
22
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
void setup() {
//configura a comunicação seria com baud rate de 9600
Serial.begin(9600);
}
void loop() {
23
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Se você executar esse código, vai perceber que ele não exibe
nada na tela, porém se enviarmos um caractere através da Serial,
você irá perceber que o mesmo caractere aparece sendo
imprimido na tela. Então o que está acontecendo nesse código?
24
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 1
O Arduino tem um
trabalho
muito importante
no
desenvolvimento e
prototipagem
de
produtos IoT.
Desenvolvimento
rapido e eficiente, o
Arduino eh uma
ferramenta muito
poderosa.
25
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
26
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
27
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
EXEMPLO:
/*
boolean: valor verdadeiro (true) ou falso (false)
char: um caractere
byte: um byte, ou sequência de 8 bits
int: número inteiro de 16 bits com sinal (-32768 a 32767)
unsigned int: número inteiro de 16 bits sem sinal (0 a
65535)
long: número inteiro de 16 bits com sinal (-2147483648 a
2147483647)
unsigned long: número inteiro de 16 bits sem sinal (0 a
4294967295)
float: número real de precisão simples (ponto flutuante)
double: número real de precisão dupla (ponto flutuante)
String: sequência de caracteres
void: tipo vazio (não tem tipo)
*/
void setup()
{
void loop()
{
}
28
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
//O número 15 está armazenado dentro da variável numero
int num = 15;
void setup()
{
/*A partir desse momento a variável número passa a ter
o valor 625*/
num = 625;
}
void loop()
{
}
EXEMPLO:
int num = 15;
float num_virgula = 15.5;
long num_grande = 15684651841;
char caractere = 'c';
String texto = "Hello World";
bool teste = false;
void setup()
{
Serial.begin(9600);
Serial.print("Caractere: ");
Serial.println(caractere);
29
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Serial.print("Texto: ");
Serial.println(texto);
Serial.print("booleano: ");
Serial.println(teste);
void loop()
{
}
CONTEXTO DE VARIÁVEIS
30
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
String text = "Hello World";
void setup() {
Serial.begin(9600); // inicia a Serial
Serial.println(text); // referenciando a variável global
text
}
void loop() {
Serial.println(text); // referenciando a variável global
text
delay(5000);
}
EXEMPLO:
void setup() {
String text = "Eu so existo dentro do setup";
void loop() {
String text = "Eu so existo dentro do loop";
Serial.println(text); // referenciando a variável global
text
delay(5000);
}
#DEFINE E CONSTANTES
32
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
porta, e que ela deva trabalhar como uma saída (calma, mais a
frente vamos estudar isso a fundo). Nesse “dizer ao Arduíno que
desejamos usar uma porta” nada mais é do que uma referência
numérica, ao pino em que será feito o acionamento.
33
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
SINTAXE:
Vale deixar uma coisa bem clara, você não pode fazer
alterações nessas variáveis ao longo do programa, isso por que
quando seu código foi enviado ao microcontrolador, ele entende
que esse tipo de variável só pode ser lida em outras partes do
programa, e não pode ser modificada.
34
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 2
• dolar = 5.23;
• nome = “Harv”;
• alarme = false;
• “Cotação do Dolar e: “
• “Meu nome e: “
• “O status do alarme e: “
ATRIBUIÇÃO (=)
EXEMPLO:
int i = 25;
int j = 0;
void setup() {}
void loop()
{
36
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
ADIÇÃO (+)
SINTAXE:
EXEMPLO:
int i = 3;
int j = 2;
int k = 0;
void setup()
{
k = j + i;
Serial.begin(9600);
Serial.print("Valor de i: ");
Serial.println(i);
Serial.print("Valor de j: ");
Serial.println(j);
Serial.print("Valor de k: ");
Serial.println(k);
}
void loop()
{
37
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
x = 12
SINTAXE:
SINTAXE:
EXEMPLO:
int s = 600;
void setup() {
Serial.begin(9600); // inicia a Serial
s = s + 10; // soma 10 unidades a s
Serial.println(s); //imprime o valor de s
void loop() {
38
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SUBTRAÇÃO (-)
SINTAXE:
EXEMPLO:
int i = 3;
int j = 2;
int k = 0;
void setup()
{
k = j - i;
Serial.begin(9600);
Serial.print("Valor de i: ");
Serial.println(i);
Serial.print("Valor de j: ");
Serial.println(j);
Serial.print("Valor de k: ");
Serial.println(k);
}
void loop()
{
39
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
SINTAXE:
EXEMPLO:
int s = 600;
void setup() {
Serial.begin(9600); // inicia a Serial
s = s - 10; // subtrai 10 unidades a s
Serial.println(s); //imprime o valor de s
void loop() {
MULTIPLICAÇÃO (*)
40
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
EXEMPLO:
int i = 3;
int j = 2;
int k = 0;
void setup()
{
k = j * i;
Serial.begin(9600);
Serial.print("Valor de i: ");
Serial.println(i);
Serial.print("Valor de j: ");
Serial.println(j);
Serial.print("Valor de k: ");
Serial.println(k);
}
void loop()
{
SINTAXE:
41
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
EXEMPLO:
int s = 250;
void setup() {
Serial.begin(9600); // inicia a Serial
s = s * 10; // multiplica 10 unidades em s
Serial.println(s); //imprime o valor de s
void loop() {
DIVISÃO (/)
SINTAXE:
EXEMPLO:
int i = 2;
int j = 4;
int k = 0;
42
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup()
{
k = j / i;
Serial.begin(9600);
Serial.print("Valor de i: ");
Serial.println(i);
Serial.print("Valor de j: ");
Serial.println(j);
Serial.print("Valor de k: ");
Serial.println(k);
}
void loop()
{
SINTAXE:
De modo abreviado
SINTAXE:
EXEMPLO:
int s = 250;
void setup() {
43
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void loop() {
RESTO (%)
SINTAXE:
int x = 0;
x = 7 % 5; // x agora contém 2
x = 9 % 5; // x agora contém 4
x = 5 % 5; // x agora contém 0
44
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
é equivalente a:
i = i + 1;
ou
i += 1;
EXEMPLO:
int i = 0;
void setup() {
Serial.begin(9600); // inicia a Serial
}
void loop() {
Serial.println(i);
i++; // adiciona 1 unidade a i cada vez que o loop é
executado
delay(5000);
}
45
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
é o equivalente a:
i = i - 1;
ou
i -= 1;
EXEMPLO:
int i = 500;
void setup() {
Serial.begin(9600); // inicia a Serial
}
void loop() {
Serial.println(i);
i--; // subtrai 1 unidade a i cada vez que o loop é
delay(5000);
}
46
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
CAPITULO 2
(==) IGUAL A:
SINTAXE:
47
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
SINTAXE:
48
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
SINTAXE:
(!=) DIFERENTE
49
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
50
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
if(verificação) {
51
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
/* Deixamos armazenado qual é o pino do LED, dentro da
variável pinoLED */
int pinoLED = 13;
int x = 130;
void setup()
{
// Definimos o pinoLED como um pino de saída
pinMode(pinoLED, OUTPUT);
if (x > 120) {
// Se x for maior que 120 o pinoLED é acionado.
digitalWrite(pinoLED, HIGH);
}
void loop()
{
}
52
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
int x = 45;
int y = 92;
void setup()
{
Serial.begin(9600);
if (x <= y) {// testa se x é menor que ou igual a y
void loop()
{
}
EXEMPLO:
int caixadagua = 48;
void setup()
{
Serial.begin(9600);
53
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void loop()
{
}
54
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 3:
55
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
Serial.println(“Luz acesa”);
else {
Serial.println(“Luz apagada”);
EXEMPLO:
int caixadagua = 48;
void setup()
{
56
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Serial.begin(9600);
void loop()
{
}
57
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 4
58
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
(!) NOT
SINTAXE:
(&) AND
59
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
if((x < 20) & (y > 500)){} // Nesse caso o if() só será
executado quando x for MENOR QUE 20 e o y também for MAIOR
QUE 500. Em qualquer outra possibilidade ele não será
executado.
(|) OR
60
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
61
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
62
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
EXEMPLO:
void setup()
{
pinMode(4, OUTPUT);
}
void loop()
{
digitalWrite(4, HIGH); // Liga o LED
delay(1000); // Aguarda 1 segundo
digitalWrite(4, LOW); // Desliga o LED
delay(1000); // Aguarda 1 segundo
}
63
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm
• 1 - 220 Ω Resistor
• Jumpers
Diagrama:
64
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH); // Liga o LED
delay(1000); // Aguarda 1 segundo
digitalWrite(13, LOW); // Desliga o LED
delay(1000); // Aguarda 1 segundo
}
65
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 5
Veja o exemplo:
66
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
67
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm
• 1 - 220 Ω Resistor
• 1 - 10K Ω Resistor
• 1 - Pushbutton
• Jumpers
Diagrama:
68
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup() {
void loop() {
// Lê o status do Pushbutton
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// Liga o LED:
digitalWrite(ledPin, HIGH);
} else {
// Desliga o LED:
digitalWrite(ledPin, LOW);
}
}
69
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 6
70
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
2.5 SWITCH-CASE
SINTAXE:
switch (variável) {
case valor1:
//executa um comando
break;
case valor2:
break;
case valor3:
break
71
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
int Led1 = 7;
int Led2 = 8;
int Led3 = 9;
int Led4 = 10;
void setup() {
Serial.begin(9600);
pinMode(Led1, OUTPUT);
pinMode(Led2, OUTPUT);
pinMode(Led3, OUTPUT);
pinMode(Led4, OUTPUT);
}
void loop() {
if (Serial.available()) {
char Led = Serial.read();
switch (Led) {
case '1':
digitalWrite(Led1, HIGH);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
break;
case '2':
digitalWrite(Led1, LOW);
digitalWrite(Led2, HIGH);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
break;
case '3':
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, HIGH);
digitalWrite(Led4, LOW);
break;
case '4':
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, HIGH);
break;
default:
Serial.print("Valor ");
Serial.print(Led);
Serial.println(" incorreto.");
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
}
72
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
}
}
73
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 7
74
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
2.6 WHILE
SINTAXE:
EXEMPLO:
void setup() {
Serial.begin(9600);
while (true) {
Serial.println("Hello World");
delay(2000);
}
}
void loop() {
75
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
int x = 0; //inicia uma variável x valendo 0
void setup() {
Serial.begin(9600); // instancia a Serial
}
void loop() {
while (x < 12) { // analisa se x é menor que 12
//Enquanto x for menor que 12 o laço é executado
//delay de 2s
delay(2000);
//
}
}
76
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
77
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 8
78
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
2.7 FOR
SINTAXE:
EXEMPLO:
void setup() {
Serial.begin(9600); // instancia a Serial
}
void loop() {
for (int i = 0; i < 12; i++) {
// inicia uma contagem que vai de 0 a 11
79
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXEMPLO:
void setup() {
Serial.begin(9600); // instancia a Serial
}
void loop() {
for (int i = 11; i > 0; i--) {
// inicia uma contagem que vai de 11 a 0
80
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 9
81
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
EXERCÍCIO 10
82
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 6 - LEDs 5mm
• 6 - 220 Ω Resistor
• Jumpers
Diagrama:
83
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
/*
Scrolling LED usando o laço for
Sobre o circuito:
* LEDs ligados do pino 2 até o 7
*/
void setup() {
// usa o laço for para definir os pinos de saída
for (int thisPin = 2; thisPin < 8; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}
void loop() {
// loop do pino 2 até o 7
for (int thisPin = 2; thisPin < 8; thisPin++) {
// Liga o pino:
digitalWrite(thisPin, HIGH);
delay(timer);
// Desliga o pino
digitalWrite(thisPin, LOW);
}
84
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
2.8 DO-WHILE
SINTAXE:
do {
EXEMPLO:
int x = 2;
void setup() {
Serial.begin(9600); // instancia a Serial
do {
Serial.println("Fui exibido 1 vez");
} while (x > 5); // Só será executado 1 vez pois x
é MENOR QUE 5
}
void loop() {
}
85
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
CONVERSOR ANALÓGICO/DIGITAL
86
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
EXEMPLO:
int analogPin = A3; // Potenciômetro conectado ao pino A3
void setup() {
Serial.begin(9600); // inicia a Serial
}
void loop() {
val = analogRead(analogPin);// Lê o pino
Serial.println(val); // imprime o valor lido na tela
}
87
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm
• 1 - 220 Ω Resistor
• 1 - Potenciômetro 10k Ω (Modelo Trimpot)
• Jumpers
Diagrama:
88
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup() {
// Declara o pino do LED como saída
pinMode(ledPin, OUTPUT);
}
void loop() {
// Lê o valor do potenciômetro
sensorValue = analogRead(sensorPin);
// Liga o LED
digitalWrite(ledPin, HIGH);
// Para o programa de acordo com o valor lido no
potenciômetro
delay(sensorValue);
// Desliga o LED
digitalWrite(ledPin, LOW);
// Para o programa de acordo com o valor lido no
potenciômetro
delay(sensorValue);
}
89
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
ARDUINO:
90
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
ESP32:
EXEMPLO:
91
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
SINTAXE:
EXEMPLO:
int ledPin = 9;// LED conectado ao pino digital 9
92
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup() {
pinMode(ledPin, OUTPUT); // configura o pino como saída
}
void loop() {
val = analogRead(analogPin);// lê o pino de entrada
analógica
analogWrite(ledPin, val / 4); // analogRead retorna
valores de 0 a 1023, analogWrite recebe de 0 a 255
}
93
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm //qualquer cor
• 1 - 220 Ω Resistor
• Jumpers
Diagrama:
94
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
/*
Fade
*/
void setup() {
pinMode(LED, OUTPUT); // declare pin 9 como SAÍDA
}
void loop() {
// seta o brilho do LED no pino 9 usando PWM
analogWrite(LED, brightness);
// Inverte o fade
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
// aguarda 30 milissegundos
delay(30);
}
95
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
CAPITULO 3
3.1 VETORES
SINTAXE:
96
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
97
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Potenciômetro
• 10 - LED 5mm
• 10 - 220 Ω Resistor
• Jumpers
Diagrama:
98
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
/*
Barra de LEDs
*/
int ledPins[] = {
2, 3, 4, 5, 6, 7, 8, 9, 10, 11
}; // Vetor que contem a pinagem dos LEDs em sequencia
void setup() {
// for para definir todos os pinos como SAÍDA
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop() {
// Lê o potenciômetro
int sensorReading = analogRead(analogPin);
99
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
3.2 FUNÇÕES
Assim como você olha para o void setup e já sabe que ele é
executado só uma vez.
100
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
E assim como você também olha para o void loop e sabe que
essa função se repete enquanto o Arduíno estiver ligado; as
funções que você criar devem ser bem autoexplicativas.
SINTAXE:
void nome_da_funcao () {
EXEMPLO:
void setup() {
pinMode(13, OUTPUT); // Define o pino 13 como saída
}
void loop() {
changeLights(); // Chama a função
// Função
void changeLights() {
// Liga o LED
digitalWrite(13, HIGH);
// Desliga o LED
digitalWrite(13, LOW);
101
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 – Resistor de10k-ohm
• 1 – Pushbutton
• 3 – Resistor 220-ohm
• 1 – Protoboard
• Jumpers de conexão
• 1 – LED Vermelho
• 1 – LED Amarelo
• 1 – LED Verde
Diagrama:
102
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup() {
pinMode(red, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(green, OUTPUT);
}
void loop() {
changeLights();
delay(15000);
}
void changeLights() {
103
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm
• 1 - 330 Ω Resistor
• 1 - 10K Ω Resistor
• 1 - Fotoresistor
• Jumpers
Diagrama:
104
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
int calibratedlightLevel;
void setup()
{
pinMode(ledPin, OUTPUT);// Seta o pino do LED como SAÍDA
Serial.begin(9600);
}
void loop()
{
lightLevel = analogRead(sensorPin); // lê a porta
Serial.print(lightLevel);
//autoRange(); // executa a função autoRange
/*
Essa função seta o valor das variáveis minThreshold e
maxThreshold para o nível de luz do ambiente. Mova sua mão
em cima do sensor para calibrar.
O sensor irá perceber o range total de luz e vai
autocalibrar as entradas
*/
void autoRange()
{
if (lightLevel < minThreshold)
minThreshold = lightLevel;
105
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
maxThreshold = lightLevel;
106
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
3.3 RETORNOS
SINTAXE:
//Executa algo
107
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Serial.println(func_com_retorno());
int x = func_com_retorno();
EXEMPLO
//experimente mudar esses valores para testar os resultados
int x = 50;
int y = 12;
void setup() {
Serial.begin(9600); // inicia a Serial
int somatorio = soma(); // atribui o retorno da função na
variável somatorio
Serial.println(somatorio); //imprime o valor que foi
atribuido a variável somatorio
}
void loop() {
}
int soma() {
108
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
109
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 – Sensor de Temperatura – TMP36
• Jumpers
Diagrama:
110
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
/*
void setup()
{
Serial.begin(9600); // inicializa a Serial
}
void loop()
{
float voltage, degreesC, degreesF; //declara 3 variáveis
float, para o armazenamento da tensão, graus célsius e
graus Fahrenheit
Serial.print("voltagem: ");
Serial.print(voltage);
Serial.print(" Graus C: ");
Serial.print(degreesC);
Serial.print(" Graus F: ");
Serial.println(degreesF);
111
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
// Criar um termostato
112
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
3.4 PARÂMETROS
SINTAXE:
return x + y;
//chamada da função:
113
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
114
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
#include <AlgumNome.h>
Com toda certeza, daqui pra frente você vai utilizar muito
essa ferramenta.
115
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
116
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
117
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
“D:\Documentos\Arduino”
Ou também:
“C:\Users\Mateus Dias\Documentos\Arduino”
118
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
119
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
120
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
121
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
122
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino UNO
• 1 – Módulo NEO-6M GPS
• Jumpers
Diagrama:
123
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup() {
Serial.begin(9600); //inicia a Serial com o computador
ss.begin(9600); //Inicia a Serial com o GPS
}
void loop() {
while (ss.available() > 0) {
// Le os dados do GPS
byte gpsData = ss.read();
Serial.write(gpsData);
}
}
124
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Piezo Buzzer
• Jumpers
Diagrama:
125
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
/*
circuito:
8-ohm buzzer conectado no pino digital 8
*/
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
126
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
127
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup() {
for (int thisNote = 0; thisNote < 8; thisNote++) {
void loop() {
128
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Servo
• Jumper
Diagrama:
129
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup()
{
servo1.attach(9, 900, 2100); //conecta o servo no pino 9
//com o valor mínimo de PWM
//900 e o valor máximo de PWM
//2100.
void loop()
{
int position;
// Para controlar o servo você precisa do angulo de
posição
// Ele não pode ser movido 360°
// Você pode move-lo de 0 a 180°
// A posição muda em velocidade máxima
servo1.write(90); // manda o servo ir para 90°
delay(1000); // Pausa
servo1.write(180); // manda o servo ir para 180°
delay(1000); // Pausa
servo1.write(0); // manda o servo ir para 0°
delay(1000); // Pausa
130
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Motor DC
• 1 - 330 Ω Resistor
• 1 - Diodo 1N4148
• 1 - NPN Transistor
• Jumpers
Diagrama
131
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
/*
Esse exemplo exige o uso de um transistor operando como
chave. O Arduino permite apenas 40mA de corrente em suas
portas, o que não é suficiente para acionar um motor DC,
que necessita no mínimo 150mA
*/
void setup()
{
pinMode(motorPin, OUTPUT); // seta o pino como saída
Serial.begin(9600); // inicializa a Serial
}
void loop()
{/* Esse exemplo basicamente replica o Blink substituindo o
LED por um motor DC.*/
// acelera o motor
for (speed = 0; speed <= 255; speed++)
{
analogWrite(motorPin, speed); // seta a nova velocidade
delay(delayTime); // delay entre os passos
}
// desacelera o motor
for (speed = 255; speed >= 0; speed--)
{
132
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
133
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Display LCD
• 1 - Potenciômetro
• Jumpers
Diagrama
134
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
/*
LIQUID CRYSTAL DISPLAY (LCD)
*/
#include <LiquidCrystal.h>
void setup()
{
void loop()
{
lcd.setCursor(0, 1); //Seta o cursor na coluna 0,
linha 1.
lcd.print(millis() / 1000); //Imprime o número de
segundos desde que o Arduíno foi ligado.
}
135
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes
• 1 - Arduino UNO
• 1 - DHT11 sensor de temperatura e umidade
• 1 - Protoboard
• 1 - 4.7k Ohm Resistor
• Jumpers
Diagrama:
136
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
// Inicializa o sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx teste!");
dht.begin();
}
void loop() {
// Aguarda 2 segundos para a medição
delay(2000);
// Lê a umidade
float h = dht.readHumidity();
// Lê temperatura como celcius
float t = dht.readTemperature();
// Lê temperatura como Fahrenheit
float f = dht.readTemperature(true);
Serial.print("Umidade: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
}
137
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes:
• 1 - Arduino UNO
• 1 - PIR Motion Sensor (HC-SR501)
• 1 - LED
• Jumpers
Diagrama:
138
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup() {
pinMode(led, OUTPUT); // inicializa o LED com SAÍDA
pinMode(sensor, INPUT); // inicializa o sensor como
ENTRADA
Serial.begin(9600); // inicializa a serial
}
void loop() {
val = digitalRead(sensor); // lê o sensor
if (val == HIGH) {// checa se o sensor está em HIGH
if (state == LOW) {
Serial.println("Movimento detectado!");
state = HIGH; // faz o update da variável para HIGH
}
}
else {
// caso não seja detectado movimento
digitalWrite(led, LOW); // desliga o LED
delay(200); // delay de 200 milissegundos
if (state == HIGH) {
Serial.println("Sem movimento detectado!");
state = LOW; // muda a variável para LOW
}
}
}
139
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
Componentes
• 1 - Arduino UNO
• 1 - YL-69 sensor de umidade de solo
• 1 - Protoboard
• 2 - 220 Ohm Resistor
• 1 – LED Vermelho
• 1 – LED Verde
• Jumpers
Diagrama
140
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
void setup() {
pinMode(rainPin, INPUT); // seta o sensor como ENTRADA
pinMode(greenLED, OUTPUT); // LED verde como SAÍDA
pinMode(redLED, OUTPUT); // LED vermelho como SAÍDA
digitalWrite(greenLED, LOW); // LED verde inicia em LOW
digitalWrite(redLED, LOW); // LED vermelho inicia em LOW
Serial.begin(9600); // inicia a Serial
}
void loop() {
// Lê a entrada no pino 0
int sensorValue = analogRead(rainPin);
Serial.print(sensorValue);
if (sensorValue < thresholdValue) {
Serial.println(" – Nao precisa de agua");
digitalWrite(redLED, LOW);
digitalWrite(greenLED, HIGH);
}
else {
Serial.println(" – Hora de regar sua planta");
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, LOW);
}
delay(500);
}
141
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
IGNIÇÃO
142
Licensed to Rogerio Aparecido Francisco - rogerpanel@gmail.com - 058.604.278-40 - HP11815955097237
https://lobodarobotica.com/treinamento-arduhack-
completo
143