Componentes
| Qtd | Descrição |
|---|---|
| 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→ |
Instruções
- Push-button nas portas digitais (2, 3 e 4)
- LEDs nas portas digitais (10, 11 e 12)
- Buzzer na porta digital (8)
Conhecimentos Requeridos
Observações Técnicas
Os resistores serão utilizados como limitadores de corrente.
Diagrama de Blocos
Protótipo do Circuito
Código do Projeto
Baixar .INO
// 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);
}
}
Comentários sobre o Código
Entenda o que cada linha de comando faz dentro do cérebro do seu Arduino:
Declaração de Variáveis
int ledVermelho = 10;
Nesta linha, criamos uma variável do tipo int (inteiro) e atribuímos o valor 10. A partir de agora, o Arduino entende que "ledVermelho" se refere ao pino físico número 10.
pinMode(pin, modo)
Configura o pino especificado para se comportar como uma entrada (INPUT) ou uma saída (OUTPUT).
pinMode(ledVermelho, OUTPUT);-> Define o pino 10 como saída de energia (para o LED).pinMode(botaoVermelho, INPUT);-> Define o pino 2 como entrada de sinal (para o botão).
pinMode(pino, MODO);
digitalWrite(pin, valor)
Envia um sinal de 5V (HIGH) ou 0V (LOW) para um pino configurado como saída.
- HIGH: O LED liga (recebe 5V).
- LOW: O LED desliga (0V/Terra).
digitalWrite(pino, HIGH/LOW);
digitalRead(pin)
Lê se o pino digital está recebendo energia (HIGH) ou se está conectado ao terra (LOW).
Exemplo: valPino = digitalRead(10); (Lê o estado do pino 10 e guarda na variável valPino).
delay(tempo)
Pausa a execução do programa por um determinado tempo medido em milissegundos.
Dica: 1000 milissegundos equivalem a exatos 1 segundo.
void setup()
Executada uma única vez quando o Arduino liga. Serve para as configurações iniciais do projeto.
void loop()
Executada infinitamente. Após chegar na última linha, o Arduino volta para a primeira linha do loop automaticamente.