Projeto - 01
Desenvolver um projeto utilizando três botões; cada botão pressionado deve acender um LED específico. Quando os três LEDs estiverem acesos o programa deverá disparar um alarme.
01 - Arduino Mega 2560
01 - Protoboard
03 - Push-Button
01 - Buzzer
03 - LEDs ( 01 Vermelho – 01 Amarelo – 01 Verde)
03 - Resistores 10KΩ para os Push-Button
03 - Resistores 220Ω para os Leds
Jumpers
Componentes
Qtd | Descrição
Push-button nas portas digitais (2, 3 e 4)
LEDs nas portas digitais (10, 11 e 12)
Buzzer na porta digital (8)
Instruções
- Arduino IDE
- Variáveis e Constantes
- Operadores Relacionais
- Operadores Lógicos
- Portas Digitais
- Construção de Algoritmos: Estrutura de Seleção Simples
- Especificações dos seguintes componentes:
(Protoboard) (Push-Button) (Buzzer) (Led) (Resistor) (Jumper)
Conhecimentos
Observação:
Os resistores serão utilizados como limitadores de corrente.
Diagrama de Blocos

Protótipo do Circuito

// Projeto Buz_Led_Push
// Neste exemplo utilizamos somente portas digitais.
int ledVermelho = 10;
int ledAmarelo = 11;
int ledVerde = 12;
int botaoVermelho = 2;
int botaoAmarelo = 3;
int botaoVerde = 4;
int buzzer = 8;
void setup() {
// put your setup code here, to run once:
pinMode(ledVermelho, OUTPUT);
pinMode(botaoVermelho, INPUT);
pinMode(ledAmarelo, OUTPUT);
pinMode(botaoAmarelo, INPUT);
pinMode(ledVerde, OUTPUT);
pinMode(botaoVerde, INPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
if ((digitalRead(botaoVermelho) == HIGH) && (digitalRead(ledVermelho) == LOW)) {
digitalWrite(ledVermelho, HIGH);
delay(500);
}
if ((digitalRead(botaoVermelho) == HIGH) && (digitalRead(ledVermelho) == HIGH)) {
digitalWrite(ledVermelho, LOW);
delay(500);
}
if ((digitalRead(botaoAmarelo) == HIGH) && (digitalRead(ledAmarelo) == LOW)) {
digitalWrite(ledAmarelo, HIGH);
delay(500);
}
if ((digitalRead(botaoAmarelo) == HIGH) && (digitalRead(ledAmarelo) == HIGH)) {
digitalWrite(ledAmarelo, LOW);
delay(500);
}
if ((digitalRead(botaoVerde) == HIGH) && (digitalRead(ledVerde) == LOW)) {
digitalWrite(ledVerde, HIGH);
delay(500);
}
if ((digitalRead(botaoVerde) == HIGH) && (digitalRead(ledVerde) == HIGH)) {
digitalWrite(ledVerde, LOW);
delay(500);
}
if ( (digitalRead(ledVermelho)==HIGH) &&
(digitalRead(ledAmarelo)==HIGH) &&
(digitalRead(ledVerde)==HIGH)) {
digitalWrite(buzzer,HIGH);
}
if ( (digitalRead(ledVermelho)==LOW) ||
(digitalRead(ledAmarelo)==LOW) ||
(digitalRead(ledVerde)==LOW)) {
digitalWrite(buzzer,LOW);
}
}
Código
Comentários sobre o Código
int ledVermelho = 10
Nesta linha criamos uma variável do tipo int e atribuímos o valor 10.
pinMode(ledVermelho, OUTPUT)
Nesta linha informamos ao Arduino que o modo de seu pino, 10, será utilizado como saída. Lembrando que o valor da variável ledVermelho é 10.
pinMode(botaoVermelho, INPUT)
Nesta linha informamos ao Arduino que o modo de seu pino, 2, será utilizado como entrada. Lembrando que o valor da variável botaoVermelho é 2.
Configura o pino especificado para que se comporte ou como uma entrada (input) ou uma saída (output).
Sintaxe:
pinMode(pin,modo)
Parâmetros:
pin: o número do pin o qual você deseja predeterminar;
modo: pode ser INPUT ou OUTPUT.
Exemplo:
pinMode(10, OUTPUT); //pino 10 como saída
digitalWrite(ledVermelho, HIGH)
Escreve um valor HIGH ou um LOW em um pino digital. Se o pino foi configurado como uma saída (output) com o pinMode(), sua voltagem será determinada ao valor correspondente: 5V (ou 3.3V nas placas de 3.3V) para HIGH, 0V (terra) para LOW.
Sintaxe:
digitalWrite(pin, valor)
Parâmetros:
pin: o número do pin;
valor: HIGH ou LOW.
Exemplo:
digitalWrite(10, HIGH); //5V – ligado
digitalRead(botaoVermelho)
Lê o estado do pino digital, HIGH ou LOW.
Sintaxe:
digitalRead(pin)
Parâmetros:
pin: o número do pin digital que você quer ler (int)
Exemplo:
valPino = digitalRead(10);//lê o pino e guarda seu valor em valPino.
Os valores retornados são: LOW ou HIGH.
delay(500)
Nesta linha informa ao Arduino para esperar um tempo para executar a próxima instrução. Em geral, utilizamos o valor 1000 milissegundos (1 segundo).
void setup()
A função setup serve para definir as configurações iniciais que serão executadas uma única vez dentro do programa.
void loop()
Na função loop temos os comandos que serão executados continuamente enquanto o Arduino estiver ligado ou a placa não seja reiniciada. Todas as instruções dentro desta função são executadas uma por uma, passo a passo, até o fim da função; em seguida, o Arduino reinicia o loop desde do início, infinitamente.

