Acendendo um LED no Arduino UNO
Todos que começam a conhecer o Arduino querem acender um LED. É super importante conhecer todos os GPIOs(portas de entrada e saída) de um microcontrolador, farei futuramente um artigo sobre as portas do Arduino.
Vamos começar pelo Arduino UNO, muito popular, de principio iremos acender um LED através de um push button.
O que vamos precisar:
Microcontrolador | Arduino UNO |
Resistores | 10k, 330 ohms |
Botão | push button |
Componente auxiliar | LED |
Montagem | Protoboard |
Segue abaixo o desenho do circuito em protoboard:
Basicamente ligamos um resistor no LED para limitar a corrente, o mesmo esta ligado no GPIO 10 do Arduino. O GPIO ligamos o pushbutton, note que há um resistor ligado juntamente com o botão na mesma porta.
Por que um resistor junto com botão? Esse resistor faz a função do pulldown, ele irá mandar constantemente o sinal baixo(GND) para a porta GPIO 9, até o momento que o pushbutton é pressionado, o GPIO passa a ser alto (5v), ao soltar o botão,o GPIO 9 volta a ser baixo(GND), justamente por causa do resistor, lembrando que a corrente sempre vai procurar o caminho mais fácil.
Vamos para programação
Definimos aqui os pinos que iremos usar
// Definindo os pinos
int pinLed = 10;
int pinButton = 9;
Dentro de SETUP, iremos fazer a configuração dos pinos, setamos o LED para saída (OUTPUT) e setamos o botão para entrada (INPUT)
void setup() {
// Definindo a entrada e saída
pinMode(pinLed , OUTPUT);
pinMode(pinButton, INPUT);
}
Finalmente, dentro do loop, nosso bloco principal, onde o programa fica rodando. O digitalRead, faz a leitura da porta 9, verifica se esta alto ou baixo... se for ALTO, ele aciona o LED, através do digitalWrite, esse altera o estado de saída da porta 10.
void loop() {
// Se a entrada for alta, então acende o LED
if(digitalRead(pinButton) == HIGH){
digitalWrite(pinLed, HIGH);
// Se a entrada for diferente de alta, então apaga o LED
}else{
digitalWrite(pinLed, LOW);
}
delay(500);
}
Código final
// Definindo os pinos
int pinLed = 10;
int pinButton = 9;
void setup() {
// Definindo a entrada e saída
pinMode(pinLed , OUTPUT);
pinMode(pinButton, INPUT);
}
void loop() {
// Se a entrada for alta, então acende o LED
if(digitalRead(pinButton) == HIGH){
digitalWrite(pinLed, HIGH);
// Se a entrada for diferente de alta, então apaga o LED
}else{
digitalWrite(pinLed, LOW);
}
delay(500);
}