Acendendo um LED

Acender e apagar um LED é um experimento básico quando se trata de Arduino. Mas por quê? Bom, piscar um LED é o que podemos chamar de “Hello, world!” dos eletrônicos. Normalmente, exibir a mensagem “Hello, world!” na tela é a primeira tarefa de um programador quando ele está aprendendo a programar. Porém, nesse caso, como estamos usando um Arduino, vamos fazer o LED piscar ao invés de imprimir uma mensagem na tela.

!Informações Importantes

Neste projeto iremos usar duas funções do Arduino: digitalWrite() e delay()

O termo "digital" significa que a saída só pode ter um de dois estados: ligado ou desligado. Também podemos nos referir a esses dois estados como HIGH/LOW ou 1/0. No circuito que vamos usar, quando a saída está em nível alto (HIGH ou 1), o LED acende; e quando a saída está em nível baixo, (LOW ou 0), o LED apaga.

O termo "write" significa escrita, e quer dizer que iremos "escrever" um estado digital (HIGH/LOW) em um dos pinos do Arduino. Esse é um comando utilizado quando o pino tem uma função de saída (iremos ver mais sobre entradas e saídas nos próximos projetos).

O termo "delay" significa atraso ou espera. Ele usado para manter o procesador parado por um tempo.

!Identificando os Componentes

A figura abaixo indica a localização do led que iremos utilizar nesse experimento, ele é identificado com a inscrição L. Logo acima dele, existem mais 3 leds, identificados como TX, RX e ON. Os leds TX e RX, são usados para indicar o funcionamento do barramento serial, e o led ON permanece ligado enquanto houver alimentação na placa do Arduino. Estes leds tem funcionamento independente, ou seja, não é possível controlá-los diretamente, apenas o led L pode ser acendido e apagado através do nosso software.

LED Mosfet

!Componentes de código

Nessa parte, apresentamos as duas funções necessárias para ligar e desligar o LED, digitalWrite() e delay().

Saída Digital: digitalWrite([pin], [HIGH/LOW])

A função digitalWrite() é usada para definir o estado de um pino para alto ou baixo.

O primeiro parâmetro pin serve para identificar o pino que está sendo acionado, e nos próximos experimentos vamos explorá-lo mais. Por hora, vamos nos concentrar apenas no segundo parâmetro.

Quando um pino está em HIGH, ele produz na saída uma tensão de cerca de 5V, essa tensão faz passar uma corrente através do LED e o mesmo se ilumina. Quando o pino está em LOW, a tensão e saída é de 0V, fazendo com que a corrente pare de circular e o LED fique desligado.

Antes de usar odigitalWrite(), é muito importante se certificar que o pino a ser utilizado foi previamente configurado como saída, pois do contrário, ele não vai funcionar corretamente. Para configurar o pino, nós utilizamos o comando pinMode(), que é inserido usualmente dentro do setup(). Dessa forma temos que inserir a linha de código pinMode(13, OUTPUT); por exemplo, se quisermos usar o pino D13 como saída (veremos mais sobre os pinos do Arduino nos próximos projetos).

Delay de Milissegundos: delay([ms])

O Arduino executa o código tão rápido que às vezes precisamos retardá-lo com um atraso, chamado aqui de delay. Esta função irá interromper o funcionamento do programa por um determinado número de milissegundos. Um segundo é composto por 1000 milissegundos (ms), então, se o parâmetro for de 1000 (ms) o atraso será de um segundo.

!Executando no Arduino

Execute o código abaixo no seu Arduino para fazer o LED acender e apagar. No código abaixo você pode conferir os comentários para entender melhor o seu funcionamento.

void setup() 
{
  // Configura o pino d13 como saída 
  pinMode(13, OUTPUT);
}

void loop() 
{
  // Configura o pino 13 como HIGH
  digitalWrite(13, HIGH);
  // Espera 1000 ms (1 segundo)
  delay(1000);             
  // Configura o pino 13 como LOW
  digitalWrite(13, LOW);   
  // Espera 1000 ms (1 segundo)
  delay(1000);            
}

!Sua vez!

Tente modificar o código acima para que o LED fique 5 segundos aceso. A resposta você pode conferir clicando na aba abaixo.

Resposta

void setup() 
{
  // configura o pino d13 como saída 
  pinMode(13, OUTPUT);
}

void loop() 
{
  // Configura o pino 3 como HIGH
  digitalWrite(13, HIGH);
  // Espera 5000 ms (5 segundos), ou seja, o LED fica aceso por esse tempo
  delay(5000);             
  // Configura o pino 13 como LOW
  digitalWrite(13, LOW);   
  // Espera 1000 ms (1 segundo)
  delay(1000);            
}