Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Luzinaldo dos santos - luzinaldofelipe@gmail.com - CPF: 000.775.575-90
REVISÃO 2.0
SOBRE O AUTOR:
**********************************************************************************
CANAIS DE CONTATO:
Canal do Telegram:
https://t.me/canallobodarobotica
Instagram:
https://www.instagram.com/lobodarobotica/
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
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!
https://lobodarobotica.com/oferta-kit-alunos
8
10
11
https://lobodarobotica.com/treinamento-arduhack-
completo
12
0.1 APRESENTAÇÃO
13
14
https://lobodarobotica.com/arduino-blueprint
15
https://www.tinkercad.com/
https://lobodarobotica.com/blog/ide-do-arduino-o-guia-
definitivo/
16
17
18
19
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
Exemplo:
void setup() {
void loop() {
21
Exemplo:
void setup()
{
Serial.begin(9600);
Serial.println("Hello World");
Serial.println("Hello World");
}
void loop()
{
}
22
EXEMPLO:
void setup() {
//configura a comunicação seria com baud rate de 9600
Serial.begin(9600);
}
void loop() {
23
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
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
26
27
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
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
Serial.print("booleano: ");
Serial.println(teste);
void loop()
{
}
CONTEXTO DE VARIÁVEIS
30
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);
}
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
33
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
• 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
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
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
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
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
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
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
void loop()
{
SINTAXE:
De modo abreviado
SINTAXE:
EXEMPLO:
int s = 250;
void setup() {
43
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
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
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
(==) IGUAL A:
SINTAXE:
47
SINTAXE:
SINTAXE:
48
SINTAXE:
SINTAXE:
(!=) DIFERENTE
49
50
SINTAXE:
if(verificação) {
51
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
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
void loop()
{
}
54
55
SINTAXE:
Serial.println(“Luz acesa”);
else {
Serial.println(“Luz apagada”);
EXEMPLO:
int caixadagua = 48;
void setup()
{
56
void loop()
{
}
57
58
SINTAXE:
(&) AND
59
(|) OR
60
SINTAXE:
61
62
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
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm
• 1 - 220 Ω Resistor
• Jumpers
Diagrama:
64
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
Veja o exemplo:
66
SINTAXE:
67
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm
• 1 - 220 Ω Resistor
• 1 - 10K Ω Resistor
• 1 - Pushbutton
• Jumpers
Diagrama:
68
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
70
SINTAXE:
switch (variável) {
case valor1:
//executa um comando
break;
case valor2:
break;
case valor3:
break
71
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
73
74
SINTAXE:
EXEMPLO:
void setup() {
Serial.begin(9600);
while (true) {
Serial.println("Hello World");
delay(2000);
}
}
void loop() {
75
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
77
78
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
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
81
82
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 6 - LEDs 5mm
• 6 - 220 Ω Resistor
• Jumpers
Diagrama:
83
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
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
CONVERSOR ANALÓGICO/DIGITAL
86
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
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm
• 1 - 220 Ω Resistor
• 1 - Potenciômetro 10k Ω (Modelo Trimpot)
• Jumpers
Diagrama:
88
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
ARDUINO:
90
EXEMPLO:
91
SINTAXE:
EXEMPLO:
int ledPin = 9;// LED conectado ao pino digital 9
92
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
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm //qualquer cor
• 1 - 220 Ω Resistor
• Jumpers
Diagrama:
94
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
3.1 VETORES
SINTAXE:
96
97
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Potenciômetro
• 10 - LED 5mm
• 10 - 220 Ω Resistor
• Jumpers
Diagrama:
98
*/
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
Assim como você olha para o void setup e já sabe que ele é
executado só uma vez.
100
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
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
void setup() {
pinMode(red, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(green, OUTPUT);
}
void loop() {
changeLights();
delay(15000);
}
void changeLights() {
103
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - LED 5mm
• 1 - 330 Ω Resistor
• 1 - 10K Ω Resistor
• 1 - Fotoresistor
• Jumpers
Diagrama:
104
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
106
SINTAXE:
//Executa algo
107
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
109
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 – Sensor de Temperatura – TMP36
• Jumpers
Diagrama:
110
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
// Criar um termostato
112
SINTAXE:
return x + y;
//chamada da função:
113
114
#include <AlgumNome.h>
Com toda certeza, daqui pra frente você vai utilizar muito
essa ferramenta.
115
116
117
“D:\Documentos\Arduino”
Ou também:
“C:\Users\Mateus Dias\Documentos\Arduino”
118
119
120
121
122
Componentes:
• 1 - Arduino UNO
• 1 – Módulo NEO-6M GPS
• Jumpers
Diagrama:
123
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
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Piezo Buzzer
• Jumpers
Diagrama:
125
126
127
void setup() {
for (int thisNote = 0; thisNote < 8; thisNote++) {
void loop() {
128
Componentes:
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Servo
• Jumper
Diagrama:
129
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
Componentes
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Motor DC
• 1 - 330 Ω Resistor
• 1 - Diodo 1N4148
• 1 - NPN Transistor
• Jumpers
Diagrama
131
*/
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
133
Componentes
• 1 - Arduino Uno
• 1 - Protoboard
• 1 - Display LCD
• 1 - Potenciômetro
• Jumpers
Diagrama
134
*/
#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
Componentes
• 1 - Arduino UNO
• 1 - DHT11 sensor de temperatura e umidade
• 1 - Protoboard
• 1 - 4.7k Ohm Resistor
• Jumpers
Diagrama:
136
// 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
Componentes:
• 1 - Arduino UNO
• 1 - PIR Motion Sensor (HC-SR501)
• 1 - LED
• Jumpers
Diagrama:
138
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
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
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
142
https://lobodarobotica.com/treinamento-arduhack-
completo
143