Você está na página 1de 186

3



4


5


6

7
8
º

9
10
11
12
13
14
15
16
17
Ω

18
Ω

19
20
21
22
º
º

23
Ω

Ω Ω

24
Ω Ω

25
Ω

Ω Ω Ω Ω

Ω Ω Ω

26
27
28
29
30
31
32
// Projeto Curto Circuito – Blink

//Realiza a leitura da função uma única vez

void setup() {

// Inicia declarando que o pino 8 é uma saída digital

pinMode(8, OUTPUT);

// Realiza uma leitura repetitiva da função

void loop() {

digitalWrite(8, HIGH); // Pino 8 Liga

delay(1000); // Espera 1 segundo

digitalWrite(8, LOW); // Pino 8 Desliga

delay(1000); // Espera 1 segundo

33
Ω

34
35
// Projeto Curto Circuito – Raciocínio com LEDs

void setup() {

pinMode(8, OUTPUT); // LED 1

pinMode(9, OUTPUT); // LED 2

pinMode(10, OUTPUT); // LED 3

void loop() {

digitalWrite(8, 1); // LED 1 Liga

digitalWrite(9, 0); // LED 2 Desliga

digitalWrite(10, 1); // LED 3 Desliga


delay(2000);

digitalWrite(8, 0); // LED 1 Desliga

digitalWrite(9, 1); // LED 2 Liga

digitalWrite(10, 0); // LED 3 Desliga


delay(2000);

36
37


38
// Projeto Curto Circuito – Construindo Variáveis

int LED = 0 ; // Variável nome: LED. Tipo: int.

void setup() { // Configurações

pinMode(LED,OUTPUT); // Configura LED como um OUTPUT

void loop() { // Inicia uma leitura em loop

digitalWrite(LED,1); // Liga LED

LED++; // Adiciona 1 ao valor atual de LED

39
40
41
42
43
44
Ω Ω

45
Ω

// Projeto Curto Circuito – Ohmímetro

int R= 1000; // Resistor base (valor conhecido)

float t=0;

float V=0; // Tensão de saída


int x; // Leitor analógico

int resultado=0; // Valor do resistor desconhecido

46
void setup()

pinMode(A0, INPUT); // Porta analógica

Serial.begin(9600); // Leitor Serial

void loop()

x = analogRead(A0); // Armazena valores da porta A0

t = x*5; // Multiplica A0 por 5

V= (t)/1024; // Divide t por 1024

t= (5/V)-1;

resultado= t*R; // Multiplica tudo pelo valor do resistor conhecido

Serial.println("Valor do Resistor:"); // Mostra a frase

Serial.println(resultado); // Mostra o valor da variável

delay(100);

Ω Ω Ω

Ω Ω

47

Ω
Ω

48

49
Ω
Ω

50
51
52
Ω Ω Ω

53

54
Ω

55
56
// Projeto Curto Circuito – Controle de Cores

int poten; // Variável para leitura analógica

void setup()

pinMode(2, OUTPUT); // Verde

pinMode(3, OUTPUT); // Azul

pinMode(4,OUTPUT); // Vermelho

pinMode(poten, INPUT); // Potenciômetro

digitalWrite(8, 0); // LED inicia desligado

digitalWrite(9, 0); // LED inicia desligado

digitalWrite(10,0); // LED inicia desligado

void loop() // Loop Principal

poten = analogRead(A5); // Poten será igual a leitura de A5

if ( poten <= 500 && poten>99) // Se <=500 ou >99

digitalWrite(8, 0); // LED desligado

digitalWrite(9, 0); // LED desligado


digitalWrite(10, 1); // LED ligado

57
if ( poten >= 600) // Se >=600

digitalWrite(8, 1); // LED ligado

digitalWrite(9, 0); // LED desligado

digitalWrite(10, 0); // LED desligado

if ( poten >= 0 && poten<100) // Se <100 ou >=0

digitalWrite(8, 0); // LED desligado

digitalWrite(9, 1); // LED ligado

digitalWrite(10, 0); // LED desligado

58
59
60
61
62
Ω

63
// Projeto Curto Circuito – Acionar um segmento

void setup() // Configurações

pinMode(10, OUTPUT); // Define o pino 10 como OUTPUT (saída)

void loop() // Leitura em Loop

digitalWrite(10,HIGH); // LED 10 liga

64
Ω

65
Ω

66

// Projeto Curto Circuito – Contador

int A=10;

int B=11;

int C=13;

int D=6;

int E=7;

int F=9;

int G=8;

int DP=12; // Segmentos do Display

int contador=0; // Variável para contagem

int leitor=0; // Variável para leitura do botão

void setup(){

pinMode(A, OUTPUT); // Segmentos do display OUTPUT

pinMode(B, OUTPUT);

pinMode(C, OUTPUT);

pinMode(D, OUTPUT);

pinMode(E, OUTPUT);

pinMode(F, OUTPUT);

pinMode(G, OUTPUT);
pinMode(DP, OUTPUT);

67
pinMode(2, INPUT); // Botão INPUT

void loop()

leitor = digitalRead(2); // Armazena o valor de leitura do pino 2

if ( leitor == 1) // Se o botão for pressionado

contador++;

delay(250);

if (contador == 0) // Se contador é igual a 0

{ // Display imagem: 0

digitalWrite(A, 0);

digitalWrite(B, 0);

digitalWrite(C, 0);

digitalWrite(D, 0);

digitalWrite(E, 0);

digitalWrite(F, 0);

digitalWrite(G, 1);

digitalWrite(DP, HIGH);

if (contador == 1) // Se contador é igual a 1

{ // Display imagem: 1

digitalWrite(A, 1);

digitalWrite(B, 0);

digitalWrite(C, 0);

digitalWrite(D, 1);

digitalWrite(E, 1);

digitalWrite(F, 1);

digitalWrite(G, 1);

digitalWrite(DP, 1);

if (contador == 2) // Se contador é igual a 2

{ // Display imagem: 2

digitalWrite(A, 0);

digitalWrite(B, 0);
digitalWrite(C, 1);

68
digitalWrite(D, 0);

digitalWrite(E, 0);

digitalWrite(F, 1);

digitalWrite(G, 0);

digitalWrite(DP, 1);

69
70
71
72
Ω

73
Ω

74
// Projeto Curto Circuito – Loteria (parte 1)

// Segmentos do Display

int A = 13; int B = 12; int C = 11; int D = 10;

int E = 9; int G = 7; int F = 6; int DP = 8;

int botao = 2; // Botão Pausa

int leitorbotao = 0; // leitor do sinal digital do botão

int botao2 = 3; // Botão2 Reinicia

int leitorbotao2 = 0; // leitor do sinal digital do botão 2

int pausa = 0; // Variável para pausar contagem

long contador = 0; // Variável de contagem

void setup()

randomSeed(analogRead(0)); // Função aleatória

// Declara os pinos dos segmentos como OUTPUT

pinMode(A, OUTPUT); pinMode(B, OUTPUT);

pinMode(C, OUTPUT); pinMode(D, OUTPUT);

pinMode(E, OUTPUT); pinMode(F, OUTPUT);

pinMode(G, OUTPUT); pinMode(DP, OUTPUT);

// Declara os botões como INPUT

pinMode(botao, INPUT); pinMode(botao2, INPUT);

void loop()

leitorbotao = digitalRead(botao); // Armazena o nível lógico


leitorbotao2 = digitalRead(botao2); // Armazena o nível lógico

if ( pausa == 0) // Se pausa igual a 0

contador = random(3); // Sorteia números entre 0 e 3

delay(100); // Aguarda 100 ms para cada sorteio

if ( leitorbotao == 1) // Se botão pausa for pressionado

pausa = 2; // Muda o valor de pausa para 2


}

if ( leitorbotao2 == 1) // Se botão reiniciar for pressionado

75
{

pausa = 0; // Muda o valor de pausa para 0

if (contador == 0) // Desenha no display o número 0

digitalWrite(A, 0); digitalWrite(B, 0); digitalWrite(C, 0);

digitalWrite(D, 1); digitalWrite(E, 0); digitalWrite(F, 0);

digitalWrite(G, 0); digitalWrite(DP, 1);

if (contador == 1) // Desenha no display o número 1

digitalWrite(A, 1); digitalWrite(B, 0); digitalWrite(C, 1);

digitalWrite(D, 1); digitalWrite(E, 0); digitalWrite(F, 1);

digitalWrite(G, 1); digitalWrite(DP, 1);

if (contador == 2) // Desenha no display o número 2

digitalWrite(A, 0); digitalWrite(B, 0); digitalWrite(C, 1);

digitalWrite(D, 0); digitalWrite(E, 1); digitalWrite(F, 0);

digitalWrite(G, 0); digitalWrite(DP, 1);

if (contador == 3) // Desenha no display o número 3

digitalWrite(A, 0); digitalWrite(B, 0); digitalWrite(C, 1);

digitalWrite(D, 0); digitalWrite(E, 0); digitalWrite(F, 1);

digitalWrite(G, 0); digitalWrite(DP, 1);

76
77
78
79

80
81
Ω

82
83
Ω

84
// Projeto Curto Circuito – Desative o Alarme

int verde = 10;int azul = 9;int vermelho = 8;

int botao1 = 2;int botao2 = 3;

int leitor1 = 0;int leitor2 = 0;

int buzzer = 13; // Buzzer no pino 13

int digito1 = 0; // Primeiro Digito da senha

int confirmar; // Variável para confirmar a resposta

void setup()

pinMode(verde, OUTPUT);pinMode(vermelho, OUTPUT);pinMode(azul, OUTPUT);

pinMode(buzzer, OUTPUT);pinMode(botao1, INPUT);

pinMode(botao2, INPUT);

void loop()

85
{

leitor1 = digitalRead(botao1); // Armazena o valor do botão 1

leitor2 = digitalRead(botao2); // Armazena o valor do botão 2

digitalWrite(verde, 0); // Desliga

digitalWrite(vermelho, 0); // Desliga

digitalWrite(azul, 1); // Liga

digitalWrite(buzzer, 1); // Buzzer liga

if (leitor1 == 1 && leitor2 == 1) // Se o botão 1 e 2 pressionados

digitalWrite(verde, 1); // Liga

digitalWrite(vermelho, 1); // Liga

digitalWrite(azul, 1); // Liga

digito1--; // Diminui o valor do digito

delay(500); // Aguarda 500 milissegundos

if (leitor1 == 1 && leitor2 == 0) // Se o botão 1 pressionado

digitalWrite(verde, 1); // Liga

digitalWrite(vermelho, 0); // Desliga

digitalWrite(azul, 1); // Liga

digito1++; // Aumenta o valor do digito

delay(500); // Aguarda 500 milissegundos

if (leitor2 == 1 && leitor1 == 0) // Se o botão 2 pressionado

digitalWrite(verde, 0); // Desliga

digitalWrite(vermelho, 0); // Desliga

digitalWrite(azul, 1); // Liga

delay(500); // Aguarda 500 milissegundos

digitalWrite(verde, 0); // Desliga

digitalWrite(vermelho, 0); // Desliga

digitalWrite(azul, 0); // Desliga

confirmar = digito1; // Armazena o valor do dígito

delay(500); // Aguarda 500 milissegundos

while (confirmar == 2) // Enquanto o valor for igual a 2

{
digitalWrite(verde, 1); // Liga

86
delay(500); // Aguarda 500 milissegundos

digitalWrite(verde, 0); // Desliga

digitalWrite(buzzer, 0); // Desliga buzzer

delay(500); // Desliga

87
88
89
90
91
92
93
94
95
Ω Ω

96
97
Ω

// Projeto Curto Circuito – Teclado Musical

int buzzer = 10;

void setup()

pinMode(A0, INPUT);
pinMode(buzzer, OUTPUT);

98
pinMode(A1, INPUT);

pinMode(A2, INPUT);

void loop()

if (digitalRead(A0) == HIGH)

{ // Se botão A0 for pressionado

tone(buzzer, 440, 100); // A4 = 440 Hz

if (digitalRead(A1) == HIGH)

{ // Se botão A1 for pressionado

tone(buzzer, 494, 100); // B4 = 494 Hz

if (digitalRead(A2) == HIGH)

{ // Se botão A2 for pressionado

tone(buzzer, 523, 100); // C5 = 523 Hz

delay(10); // Tempo entre as notas

99
Ω

100
101
102
103
Ω

104
105
// Projeto Curto Circuito – Luminária Automática

int leitor; // Variável de leitura

void setup()

pinMode(8, OUTPUT); // LED Azul

pinMode(leitor, INPUT); // LDR

void loop()

leitor = analogRead(A0); // Armazena o valor analógico de A0

if ( leitor <= 400)

{ // Se o valor for menor ou igual a 400

digitalWrite(8, 1); // Liga LED

else

{ // Se não

digitalWrite(8, 0); // Desliga LED

106
107
108

109
110
111
112
113
114
115

116
Ω Ω

117
118
º

119
// Projeto Curto Circuito – Ajustando a Posição (Parte 1)

#include <Servo.h> // Bibliota Servo

int A = 13;int B = 12;int C = 11;

int D = 10;int E = 9;int F = 8;int G = 7;

int DP = 6; // Pinos dos segmentos do Display

Servo mt; // Variável mt será o nome do Servo

int led = 1; // LED Vermelho

int bt = 3; // Botão 1:posição 90°

int bt2 = 2; // Botão 2: aumenta

int bt3 = 4; // Botão 3: diminui

int leitor = 0; // leitor botão 1

int leitor2 = 0; // leitor botão 2

int leitor3 = 0; // leitor botão 3

int pos = 0; // Variável controle de posição

void setup()

mt.attach(5); // Servo porta digital PWM 5

pinMode(led, OUTPUT);

pinMode(A, OUTPUT);

pinMode(B, OUTPUT);

pinMode(C, OUTPUT);

pinMode(D, OUTPUT);

pinMode(E, OUTPUT);

pinMode(F, OUTPUT);

pinMode(G, OUTPUT);

pinMode(DP, OUTPUT);

pinMode(bt, INPUT);

pinMode(bt2, INPUT);

pinMode(bt3, INPUT);

void loop()

leitor = digitalRead(bt); // Armazena o valor de leitor

leitor2 = digitalRead(bt2); // Armazena o valor de leitor2


leitor3 = digitalRead(bt3); // Armazena o valor de leitor3

120
digitalWrite(led, 0); // LED desligado

mt.write(pos); // Posição do motor será igual a pos

if (pos > 9 && pos <= 19)

{ // display imagem 1

digitalWrite(A, 1);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 1);

digitalWrite(G, 1);digitalWrite(DP, 1);

if (pos > 19 && pos <= 29)

{ // display imagem 2

digitalWrite(A, 0); digitalWrite(B, 0);digitalWrite(C, 1);

digitalWrite(D, 0); digitalWrite(E, 0);digitalWrite(F, 1);

digitalWrite(G, 0); digitalWrite(DP, 1);

if (pos > 29 && pos <= 39)

{ // display imagem 3

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 1);digitalWrite(F, 1);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (pos > 39 && pos <= 49)

{ // display imagem 4

digitalWrite(A, 1); digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1); digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 0); digitalWrite(DP, 1);

if (pos > 49 && pos <= 59)

{ // display imagem 5

digitalWrite(A, 0);digitalWrite(B, 1);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 0); digitalWrite(DP, 1);

if (pos > 59 && pos <= 69)

{ // display imagem 6

digitalWrite(A, 0);digitalWrite(B, 1);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);


}

121
if (pos > 69 && pos <= 79)

{ // display imagem 7

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 1);digitalWrite(DP, 1);

if (pos > 79 && pos <= 89)

{ // display imagem 8

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (pos == 90)

{ // display imagem 9

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (pos <= 9)

{ // display imagem 0

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 1);digitalWrite(DP, 1);

if (leitor == 1)

{ // Quando botão 1 for pressionado

pos ++; // Adiciona 1 ao valor atual de pos

mt.write(pos); // Posição do motor será o valor de pos

digitalWrite(led, 1); // LED Liga

delay(50);

if (pos >= 90)

{ // Se a pos for maior ou igual 90

pos = 90; // pos será igual a 90 }

if ( leitor2 == 1)

{ // Quando botão 2 for pressionado


pos--; // Reduz 1 do valor atual de pos

122
mt.write(pos); // Posição do motor será o igual a pos

digitalWrite(led, 1); // LED Liga

delay(50);

if ( leitor3 == 1)

{ // Quando botão 3 for pressionado

for (pos = 0; pos <= 90; pos++); // Aumenta o valor de pos até 90

mt.write(pos); // Posição do motor será o valor de pos

digitalWrite(led, 1); // LED Liga

delay(50);

123
124
125
Ω Ω

126
127
128
int pot=0; // Armazena valores de leitura

void setup()

pinMode(A0,INPUT); // Sensor INPUT

Serial.begin(9600); // Taxa de transmissão 9600

void loop()

pot=analogRead(A0); // Leitura do sensor

Serial.println(pot); // Valor no monitor serial

// Projeto Curto Circuito – Sensor de temperatura (sem biblioteca)

#include<Servo.h> // Biblioteca Servo motor

129
Servo sm; // sm será o nome do Servo

int pot=0; // Variável armazena valor de temperatura

int quente=8; // LED vermelho para indicar calor

int frio=9; // LED azul para indicar frio

void setup()

pinMode(A0, INPUT);

pinMode(quente, OUTPUT);

pinMode(frio, OUTPUT);

sm.attach(6); // servo porta digital 6

Serial.begin(9600); // Taxa de transmissão 9600 dBs

void loop()

pot=analogRead(A0); // Armazena os valores do sensor

Serial.println(pot); // Valor do sensor no monitor serial

if(pot>=300)

{ // Valor maior ou igual a 300

sm.write(0); // Servo em posição 0°

digitalWrite(quente,1); // LED vermelho liga

digitalWrite(frio,0); // LED azul desliga

delay(10);

if(pot<300)

{ // Valor menor que 300

sm.write(90); // Servo em posição 90°

digitalWrite(quente,0); // LED vermelho desliga

digitalWrite(frio,1); // LED azul liga

delay(10);

130
Ω

131
// Projeto Curto Circuito – Sensor de temperatura (com biblioteca)

#include <Thermistor.h> //Biblioteca para Termistor

Thermistor temp(0); // Variável de leitura

int LED2 = 8; // Azul

int LED = 9; // Vermelho

void setup()

Serial.begin (9600); // Monitor Serial

pinMode(LED, OUTPUT);

pinMode(LED2, OUTPUT);

void loop()

int temperature = temp.getTemp(); // Converte para Celsius

Serial.print("Temperatura no Sensor: ");

Serial.print(temperature); // Escreve a temperatura no monitor

Serial.println("°C"); // Indica “°C” no monitor serial

132
delay(1000); // Realiza a leitura a cada 1 segundo

if ( temperature > 25)

{ // Se a temperatura for maior que 25

digitalWrite(LED, 1); // Liga

digitalWrite(LED2, 0); // Desliga

if ( temperature < 25)

{ // Se a temperatura for menor que 25

digitalWrite(LED, 0); // Desliga

digitalWrite(LED2, 1); // Liga

if ( temperature == 25)

{ // Se a temperatura for igual a 25

digitalWrite(LED, 0); // Desliga

digitalWrite(LED2, 0); // Desliga

133
134
Ω

135
// Projeto Curto Circuito – Controle Ambiente

int luz;

int temp;

int contador=0;

void setup() // Configurações

pinMode(A0,INPUT);

pinMode(A1,INPUT);

Serial.begin(9600);

void loop() // Loop Principal

temp=analogRead(A1);

luz=analogRead(A0);
if(contador<=5)

136
{

contador++;

delay(1000);

luminosidade(); // Chama a função luminosidade

if(contador>5){

contador++;

delay(1000);

temperatura(); // Chama a função Temperatura

// Função para Imprimir o valor de luminosidade

void luminosidade()

Serial.println("Luminosidade:");

Serial.println(luz);

delay(500);

// Função para Imprimir o valor de temperatura

void temperatura()

Serial.println("Temperatura:");

Serial.println(temp);

delay(500);

if(contador>10)

contador=0;

137
138
139
Ω

140
141

142
Ω Ω

143
144
145
146
147
Ω Ω

148
149
150
Ω

151
152
153
Ω Ω

154
155
156
157
158
Ω Ω

159
160
161
162
163
// Projeto Curto Circuito – Semáforo (parte 1)

int verdep = 9;

int vermelhop = 10; // Semáforo Pedestre

int verdec = 13;

int amareloc = 12;

int vermelhoc = 11; // Semáforo Carro

int A = 6;int B = 5;int C = 3;

int D = 2;int E = 1;int G = 8;int F = 7;

int DP = 4; // Display

int contador=5; // Variável para contagem

void setup()

pinMode(verdep,OUTPUT); // LED VERDE PEDESTRE

pinMode(vermelhop,OUTPUT); // LED VERMELHO PEDESTRE

pinMode(verdec,OUTPUT); // LED VERDE CARRO

pinMode(amareloc,OUTPUT); // LED AMARELO CARRO

pinMode(vermelhoc,OUTPUT); // LED VERMELHO CARRO

pinMode(A, OUTPUT);pinMode(B, OUTPUT);pinMode(C, OUTPUT);

pinMode(D, OUTPUT);pinMode(E, OUTPUT);pinMode(F, OUTPUT);

pinMode(G, OUTPUT);pinMode(DP, OUTPUT); // Display

void loop()

if(contador>0)

digitalWrite(verdep,1); // ligado

digitalWrite(vermelhop,0); // desligado

digitalWrite(verdec,0); // desligado

digitalWrite(amareloc,0); // desligado
digitalWrite(vermelhoc,1); // ligado

164
delay(1000);

contador--;

if(contador==0){

digitalWrite(verdep,0); // desligado

digitalWrite(vermelhop,1); // ligado

digitalWrite(verdec,1); // ligado

digitalWrite(amareloc,0); // desligado

digitalWrite(vermelhoc,0); // desligado

delay(6000);

digitalWrite(verdep,0); // desligado

digitalWrite(vermelhop,1); // ligado

digitalWrite(verdec,0); // desligado

digitalWrite(amareloc,1); // ligado

digitalWrite(vermelhoc,0); // desligado

delay(1000);

contador=4;

if(contador==1)

{ // IMAGEM 0 piscando

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 1);digitalWrite(DP, 1);

delay(500);

digitalWrite(A, 1);digitalWrite(B, 1);digitalWrite(C, 1);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 1);

digitalWrite(G, 1);digitalWrite(DP, 1);

delay(500);

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 1);digitalWrite(DP, 1);

delay(500);

digitalWrite(A, 1);digitalWrite(B, 1);digitalWrite(C, 1);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 1);

digitalWrite(G, 1);digitalWrite(DP, 1);

delay(500);

}
if(contador==2)

165
{ // IMAGEM 1

digitalWrite(A, 1);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 1);

digitalWrite(G, 1);digitalWrite(DP, 1);

if(contador==3)

{ // IMAGEM 2

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 1);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 1);

digitalWrite(G, 0);digitalWrite(DP, 1);

if(contador==4)

{ // IMAGEM 3

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 1);digitalWrite(F, 1);

digitalWrite(G, 0);digitalWrite(DP, 1);

if(contador==5)

{ // IMAGEM 4

digitalWrite(A, 1);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);

166
// Projeto Curto Circuito – Ajuste Musical

int buzzer = 6; // Porta digital do Buzzer

long note=300; // Variável controle de frequência (Nota)

long dura=100; // Variável duração da nota (milissegundos)

int btA=5; // Botão aumenta valor de note

int btB=4; // Botão diminui valor de note

int btC=3; // Botão aumenta valor de dura

int btD=2; // Botão diminui valor de dura

int leitor=0; // Variáveis de leitura

int leitor2=0;

int leitor3=0;

int leitor4=0;

void setup()

pinMode(buzzer, OUTPUT);

pinMode(btA, INPUT);

pinMode(btB, INPUT);

pinMode(btC, INPUT);

pinMode(btD, INPUT);

Serial.begin(9600); // Monitor Serial

void loop()

leitor=digitalRead(btA); // Nota

leitor2=digitalRead(btB);

leitor3=digitalRead(btC); // Frequência

leitor4=digitalRead(btD);

Serial.println("nota:"); // Escreve "nota:" no monitor serial

Serial.println(note); // Apresenta o valor da nota

Serial.println("duração:"); // Escreve "duração:" no monitor serial

Serial.println(dura); // Apresenta o valor da duração

tone(buzzer,note,dura); // Emite uma nota


delay(250); // Intervalo de 250 ms entre as notas

167
if(leitor==1)

{ // Se o botãoA for pressionado

note+=10; // Aumenta o valor da nota em 10

delay(500);

if(leitor2==1)

{ // Se o botãoB for pressionado

if(note>300)

{ // Apenas se for maior que 300 Hz

note-=10; // Diminui o valor da nota em 10

delay(500);

if(leitor3==1)

{ // Se o botãoC for pressionado

dura+=10; // Aumenta o valor da duração em 10

delay(500);

if(leitor4==1)

{ // Se o botãoD for pressionado

dura-=10; // Diminui o valor da duração em 10

delay(500);

168
// Projeto Curto Circuito – Avaliando o Ambiente

#include<Servo.h> // Biblioteca Servo

const int verde = 4; // Variável com valor constante

const int amarelo =5; // Variável com valor constante

Servo serv; // Serv variável para servo motor

int A=10;int B=11;int C=13;int D=6;int E=7;int F=9;int G=8;

int DP=12; // Segmentos do Display

int LDR; // Variável de leitura

int NTC; // Variável de leitura

int pot;

void setup()

pinMode(amarelo, OUTPUT); // LED Amarelo

pinMode(verde, OUTPUT); // LED Verde

pinMode(A0, INPUT);pinMode(A1, INPUT);pinMode(A2, INPUT);

pinMode(A, OUTPUT);pinMode(B, OUTPUT);pinMode(C, OUTPUT);

pinMode(D, OUTPUT);pinMode(E, OUTPUT);pinMode(F, OUTPUT);

pinMode(G, OUTPUT);pinMode(DP, OUTPUT);

serv.attach(3); // Servo conectado ao pino 3

Serial.begin(9600); // Monitor Serial

void loop()

LDR = analogRead(A2); // LDR armazena os valores de leitura da porta A2

NTC = analogRead(A1); // NTC armazena os valores de leitura da porta A1

pot = analogRead(A0); // Potenciômetro armazena o valor de leitura A0

if(pot<500)

{ // Valor do potenciômetro menor que 500

temperatura(); // Direciona para o void temperatuda

if(pot>500)
{ // Valor do potenciômetro maior que 500

169
luminosidade(); // Direciona para o void luminosidade

void temperatura()

{ // função criada para realizar comandos referentes a temperatura

digitalWrite(amarelo,1); // Liga LED amarelo

digitalWrite(verde,0); // Desliga LED verde

Serial.println("Temperatura:"); // Escreve Temperatura

if(NTC>250)

{ // Se o valor for maior que 250

Serial.println("Alta"); // Escreve Alta

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 0); // Display imagem : A

serv.write(90); // Move o servo 90° (abre a janela)

delay(1000);

if(NTC>150 && NTC <=249)

{ // Se for maior que 150 e menor que 249

Serial.println("Normal"); // Escreve Normal

digitalWrite(A, 1);digitalWrite(B, 1);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 0);digitalWrite(F, 1);

digitalWrite(G, 0);digitalWrite(DP, 0); // Display imagem : n

delay(1000);

if(NTC<150){ // Se o valor for menor que 150

Serial.println("Baixa"); // Escreve Baixo

digitalWrite(A, 1);digitalWrite(B, 1);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 0); // Display imagem : b

serv.write(0); // Move o servo 0° (fecha a janela)

delay(100);

void luminosidade()
{ // Comandos referentes a luminosidade

170
digitalWrite(amarelo,0); // Desliga LED Amarelo

digitalWrite(verde,1); // Liga LED Verde

Serial.println("Luminosidade:"); // Escreve Luminosidade

if(LDR>950)

{ // Se o valor for maior que 950

Serial.println("Alta"); // Escreve Alta

digitalWrite(A, 0);

digitalWrite(B, 0);

digitalWrite(C, 0); // Display imagem: A

digitalWrite(D, 1);

digitalWrite(E, 0);

digitalWrite(F, 0);

digitalWrite(G, 0);

digitalWrite(DP, 0);

serv.write(0); // Fecha janela

delay(1000);

if(LDR>500 && LDR <=949)

{ // Se o valor for maior que 500 e menor que 949

Serial.println("Normal"); // Escreve Normal

digitalWrite(A, 1);

digitalWrite(B, 1);

digitalWrite(C, 0); // Display imagem: n

digitalWrite(D, 1);

digitalWrite(E, 0);

digitalWrite(F, 1);

digitalWrite(G, 0);

digitalWrite(DP, 0);

delay(1000);

if(LDR<499)

{ // Se o valor for menor que 499

Serial.println("Baixa"); // Escreve Baixa

digitalWrite(A, 1);

digitalWrite(B, 1);

digitalWrite(C, 0); // Display imagem: b

digitalWrite(D, 0);
digitalWrite(E, 0);

171
digitalWrite(F, 0);

digitalWrite(G, 0);

digitalWrite(DP, 0);

serv.write(90); // Abre Janela

delay(1000);

172
// Projeto Curto Circuito – Genius

// Variáveis valor inteiro e constantemente

const int ledPin = 6; // LED AMARELO pino 6

const int ledPin2 = 7; // LED VERDE pino 7

const int ledPin3 = 8; // LED AZUL pino 8

const int ledPin4 = 9; // LED VERMELHO pino 9

const int buzzer = 10; // Buzzer pino 10

// Variávei valores inteiros que podem ser alterados

int buttonState = 0; // Leitor para o botão Amarelo

int buttonState2 = 0; // Leitor para o botão Verde

int buttonState3 = 0; // Leitor para o botão Azul

int buttonState4 = 0; // Leitor para o botão Vermelho

int ia = 2; // Variável para os 4 LEDs da IA

int cont = 0; // Variável para contagem

int contador = 0; // Variável para contagem

int zero; // Armazena o primeiro valor da IA

int um; // Armazena o segundo valor da IA

int dois; // Armazena o terceiro valor da IA

int x = 0; // transmite um valor para resp

int resp1; // Armazena a primeira resposta

int resp2; // Armazena a segunda resposta

int resp3; // Armazena a terceira resposta

// variável do tipo long comporta números fracionários e decimais

long temp = 0; //Controlar o valor do tempo (delay)

void setup()

// configuração individual para OUTPUT

pinMode(buzzer, OUTPUT);

pinMode(ledPin, OUTPUT);

pinMode(ledPin2, OUTPUT);

pinMode(ledPin3, OUTPUT);

pinMode(ledPin4, OUTPUT);

// configuração rápida de 4 LEDs para OUTPUT


while (ia <= 5)

173
{

pinMode(ia, OUTPUT); // Portas entre 2 e 5 serão OUTPUT

ia++; // Aumenta o valor até chegar em 5

Serial.begin(9600); // Monitor Serial

void loop()

{ // Loop Principal

digitalWrite(buzzer, 0); // Mantém o buzzer desligado inicialmente

// Armazena o estado lógico dos botões

buttonState = digitalRead(A0);

buttonState2 = digitalRead(A1);

buttonState3 = digitalRead(A2);

buttonState4 = digitalRead(A3);

while (dois == 0)

{ // Enquanto o valor da variável dois for igual a 0

fase(); // Manter a leitura direcionada ao void fase()

if (cont >= 2)

{ // Se o valor de cont for maior que 2

resp(); // Direcionar a leitura para o void resp()

if (contador >= 3)

{ // Se o valor de contador for maior que 3

comp(); // Direcionar a leitura para o void comp()

void fase()

{ // Etapa de fase, comandos da IA

while (cont <= 2)

{ // Enquanto cont for menor ou igual a 2

temp = random(100, 1000); // Valor aleatório entre 100 e 1000

ia = random(2, 6); // Valor aleatório entre 2 e 6

digitalWrite(ia, 1); // Liga o LED correspondente a ia

delay(temp); // O delay igual ao valor de temp


digitalWrite(ia, 0); // Desliga o LED

174
if (cont == 0)

{ // Se cont for exatamente igual a 0

zero = ia; // zero será igual ao valor atual de ia

delay(500); // Espera meio segundo

if (cont == 1)

{ // Se cont for exatamente igual a 1

um = ia; // um será igual ao valor atual de ia

delay(500); // Espera meio segundo

if (cont == 2)

{ // Se cont for exatamente igual a 2

dois = ia; // dois será igual ao valor atual de ia

delay(500); // Espera meio segundo

cont++; // Aumenta o valor atual de cont em +1

void resp()

{ // Aguardando Resposta

if (buttonState == 1)

{ // Ao pressionar o botão

digitalWrite(ledPin, 1); // Liga LED amarelo

x = 5; // Atribui o valor de 5 a variável x

delay(500); // Espera meio segundo

contador++; // Aumenta o valor de contador

if (buttonState2 == 1)

{ // Ao pressionar o botão

digitalWrite(ledPin2, 1); // Liga LED verde

x = 4; // Atribui o valor de 4 a variável x

delay(500); // Espera meio segundo

contador++; // Aumenta o valor de contador

if (buttonState3 == 1)

{ // ao pressionar o botão
digitalWrite(ledPin3, 1); // Liga LED azul

175
x = 3; // atribui o valor de 3 a variável x

delay(500); // Espera meio segundo

contador++; // Aumenta o valor de contador

if (buttonState4 == 1)

{ // ao pressionar o botão

digitalWrite(ledPin4, 1); // Liga LED vermelho

x = 2; // atribui o valor de 2 a variável x

delay(500); // Espera meio segundo

contador++; // Aumenta o valor de contador

if (contador <= 3)

{ // Se contador for menos ou igual a 3

if (contador == 1)

{ // Se for exatamente igual a 1

resp1 = x; // O valor de x igual a resp1

delay(100);

if (contador == 2)

{ // Se for exatamente igual a 2

resp2 = x; // O valor de x igual a resp2

delay(100);

if (contador == 3)

{ // Se for exatamente igual a 3

resp3 = x; // O valor de x igual a resp3

delay(100);

void comp()

{ // Se todas as respostas forem iguais aos valores da IA

if (zero == resp1 && um == resp2 && dois == resp3)

Serial.println("correto"); // Escreve "correto" no monitor serial

tone(buzzer, 330, 100); // Nota frequência 330Hz com duração de 100 milissegundos
delay(100); // intervalo de 100 milissegundos

176
tone(buzzer, 440, 100); // Nota frequência 330Hz com duração de 100 milissegundos

delay(500); // intervalo de 500 milissegundos

else

Serial.println("incorreto"); // Escreve "incorreto" no monitor serial

tone(buzzer, 700, 100); // Nota frequência 700Hz com duração de 100 milissegundos

delay(100); // intervalo de 100 milissegundos

tone(buzzer, 440, 100); // Nota frequência 440Hz com duração de 100 milissegundos

delay(500); // intervalo de 500 milissegundos

//Retorna o valor das variáveis abaixo para 0, para que a programação recomece

cont = 0;

contador = 0;

zero = 0;

um = 0;

dois = 0;

resp1 = 0;

resp2 = 0;

resp3 = 0;

177
// Projeto Curto Circuito – Reflexos (parte 1)

// Display

int A = 12;int B = 13;int C = 7;int D = 8;int E = 9;int F = 11;int G = 10;

int DP = 6;

//buzzer

int buzzer = 2;

//Botões

int buttonState1 = 0; // Leitor para o botão Verde

int buttonState2 = 0; // Leitor para o botão Azul

int buttonState3 = 0; // Leitor para o botão Vermelho

int buttonState4 = 0; // Leitor para o botão Rosa

// LEDs

int LED1 = 3;

int LED2 = 4;

int LED3 = 5;

//Variáveis para controle por contagem

int cont = 0;

int contador = 0;

int ia = 0; // Variável aleatória

int zero = 0; // Recebe o valor do último LED a ser acionado

int x = 0; // Recebe a resposta do jogador

int ponto; // Mostra a pontuação

// variável do tipo long comporta números fracionários e decimais

long temp = 0; // Controlar o valor do tempo (delay)

void setup()

pinMode(buzzer, OUTPUT);

pinMode(A, OUTPUT);

pinMode(B, OUTPUT);

pinMode(C, OUTPUT);

pinMode(D, OUTPUT);

pinMode(E, OUTPUT);

pinMode(F, OUTPUT);
pinMode(G, OUTPUT);

178
pinMode(DP, OUTPUT);

pinMode(LED1, OUTPUT);

pinMode(LED2, OUTPUT);

pinMode(LED3, OUTPUT);

Serial.begin(9600); // Monitor Serial

void loop()

digitalWrite(buzzer, 0); // Mantém o buzzer desligado inicialmente

// Armazena o estado lógico dos botões

buttonState1 = digitalRead(A3);

buttonState2 = digitalRead(A2);

buttonState3 = digitalRead(A1);

buttonState4 = digitalRead(A0);

while (zero == 0)

{ // Enquanto a variável zero for igual a 0

fase(); // Leitura direcionada ao void fase()

if (cont >= 2)

{ // Se o valor de cont for maior que 2

resp(); // Direcionar a leitura para o void resp()

if (contador <= 3)

{ // Se o valor de contador for menor que 3

comp(); // Direcionar a leitura para o void comp()

void fase() { // Etapa de fase, comandos da IA

while (cont <= 10)

{ // Enquanto for menor ou igual a 10

cont = random(20); // Sorteia um valor aleatório para cont

temp = random(100, 1000); // Sorteia um valor aleatório para temp

ia = random(1, 5); // Sorteia um valor aleatório para ia

if (ia == 1)

{ // Se "ia" igual a 1
digitalWrite(LED1, 1); // Liga LED1

179
digitalWrite(LED2, 0);

digitalWrite(LED3, 0);

delay(temp); // Espera por um tempo indeterminado

digitalWrite(LED1, 0); // Desliga LED1

digitalWrite(LED2, 0);

digitalWrite(LED3, 0);

if (ia == 2)

{ // Se "ia" igual a 2

digitalWrite(LED1, 0);

digitalWrite(LED2, 1); // Liga LED2

digitalWrite(LED3, 0);

delay(temp); // Espera por um tempo indeterminado

digitalWrite(LED1, 0);

digitalWrite(LED2, 0); // Desliga LED2

digitalWrite(LED3, 0);

if (ia == 3)

{ //Se "ia" igual a 3

digitalWrite(LED1, 0);

digitalWrite(LED2, 0);

digitalWrite(LED3, 1); // Liga LED3

delay(temp); // Espera por um tempo indeterminado

digitalWrite(LED1, 0);

digitalWrite(LED2, 0);

digitalWrite(LED3, 0); // Desliga LED3

if (ia >= 4)

{ // Se "ia" igual a 4

digitalWrite(LED1, 1); // Liga LED1

digitalWrite(LED2, 0);

digitalWrite(LED3, 1); // Liga LED3

delay(temp); // Espera por um tempo indeterminado

digitalWrite(LED1, 0); // Desliga LED1

digitalWrite(LED2, 0);

digitalWrite(LED3, 0); // Desliga LED3

}
if (cont > 10)

180
{ // Se o valor de cont for maior que 10

zero = ia; // zero será igual ao valor atual de ia

//LEDs desligados

digitalWrite(LED1, 0);

digitalWrite(LED2, 0);

digitalWrite(LED3, 0);

void resp()

{ // Aguarda resposta do jogador

if (buttonState1 == 1)

{ // Se o botão 1 for pressionado

digitalWrite(LED1, 1); // LED1 Liga

x = 1; // Atribui o valor de 1 a variável x

if (buttonState2 == 1)

{ // Se o botão 2 for pressionado

digitalWrite(LED2, 1); // LED2 Liga

x = 2; // Atribui o valor de 2 a variável x

if (buttonState3 == 1)

{ // Se o botão 3 for pressionado

digitalWrite(LED3, 1); // LED3 Liga

x = 3; // Atribui o valor de 3 a variável x

if (buttonState4 == 1)

{ // Se o botão 4 for pressionado

digitalWrite(LED1, 1); // LED1 Liga

digitalWrite(LED3, 1); // LED3 Liga

x = 4; // Atribui o valor de 4 a variável x

if (contador <= 3)

{ // Se contador for menor ou igual a 3

contador++; // Aumenta em 1 o atual valor de contador

delay(temp); // Tempo aleatório


}

181
}

void comp()

if (zero == x )

Serial.println("correto"); // Escreve "correto" no monitor serial

ponto++; // Aumenta em um o valor da pontuação

tone(buzzer, 330, 100); // Nota frequência 330Hz, duração de 100 ms

delay(100); // Intervalo de 100 milissegundos

tone(buzzer, 440, 100); // Nota frequência 330Hz, duração de 100 ms

delay(500); // Intervalo de 500 milissegundos

else

Serial.println("incorreto"); // Escreve "incorreto" no monitor serial

ponto--; // Reduz em um o valor da pontuação

tone(buzzer, 700, 100); // Nota frequência 700Hz, duração de 100 ms

delay(100); // intervalo de 100 milissegundos

tone(buzzer, 440, 100); // Nota frequência 440Hz, duração de 100 ms

delay(500); // Intervalo de 500 milissegundos

pont(); // Direciona para void pont

void pont()

{ // Contagem de pontos

if (ponto <= 0)

{ // Imagem: 0

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 1);digitalWrite(DP, 1);

if (ponto == 1)

{ // Imagem: 1

digitalWrite(A, 1);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 1);


digitalWrite(G, 1);digitalWrite(DP, 1);

182
}

if (ponto == 2)

{ // Imagem: 2

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 1);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 1);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (ponto == 3)

{ // Imagem: 3

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 1);digitalWrite(F, 1);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (ponto == 4)

{ // Imagem: 4

digitalWrite(A, 1);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (ponto == 5)

{ // Imagem: 5

digitalWrite(A, 0);digitalWrite(B, 1);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (ponto == 6)

{ // Imagem: 6

digitalWrite(A, 0);digitalWrite(B, 1);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (ponto == 7)

{ // Imagem: 7

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 1);digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 1);digitalWrite(DP, 1);

}
if (ponto == 8)

183
{ // Imagem: 8

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 0);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (ponto == 9)

{ // Imagem: 9

digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);

digitalWrite(D, 0);digitalWrite(E, 1);digitalWrite(F, 0);

digitalWrite(G, 0);digitalWrite(DP, 1);

if (ponto < 0 || ponto > 9)

{ // Se for menor que 0 ou maior que 9

ponto = 0; // Muda o valor para 0

//Retorno o valor das variáveis abaixo para 0, para que a programação recomece

zero = 0;

contador = 0;

cont = 0;

184
3

Você também pode gostar