Acendendo a lâmpada

Nesse projeto vamos acender uma lâmpada através do Nanoshield Mosfet e introduzir a estrutura chamada de for.

!Informações Importantes

Para este projeto vamos aprender a usar o comando for. O for é uma estrutura de repetição peculiar, formada por quatro elementos básicos: inicializador, validador, consequência e incrementador.

Para explicar cada um deles, a maneira mais fácil é através de um exemplo:

Você precisa fazer um bolo e são necessários 10 ovos – isso é a sua condição de parada (até onde você quer chegar). Porém, você tem apenas 2 ovos – isso é o seu inicializador (o que você já tem). Você então vai até a granja e começa a coletar ovos – isso é a sua consequência, ou o que você vai fazer para atingir o objetivo. A cada ovo coletado você verifica se já tem os 10 ovos ao todo – isso é o validador, que verifica se você atingiu a sua condição de parada. Após coletar cada ovo, você aumenta a contagem dos ovos que já tem – que é o incrementador.

Também precisamos entender a conexão da lâmpada. Ela está conectada por meio do Nanoshield Mosfet, que possibilita o uso do pino D3, D5, D6 ou D9 para fazer o acionamento. Para selecionar o pino desejado, basta modificar a posição do jumper! Confira na imagem abaixo:

Jumper Mosfet

Para esse experimento utilizaremos o pino D3, que é o modo com que o Nanoshield Mosfet vem configurado de fábrica, ou seja, você não precisa modificar o jumper.

!Identificando os Componentes

Posição Jumper

!Componentes de código

O for tem a seguinte anatomia:

for(Inicializador; Validador; Incrementador) 
{
  Linhas de código referentes à consequência
}

O validador é qualquer declaração que possa ser avaliada como verdadeira ou falsa.

!Executando no Arduino

Abaixo o codigo fará que a Lâpada pisque 10 vezes com um determinado intervalo de tempo, e posteriormente 10 vezes em um outro intervalo.

int lamp = 3;

int button = A0; 


void setup()
{
  pinMode(lamp, OUTPUT);
}


void loop() 
{ 
for (int i = 0; i < 10; i++)
    {
      digitalWrite(lamp, HIGH);
      delay(200);
      digitalWrite(lamp, LOW);
      delay(100);
    }
    
delay(1000);

for (int k = 0; k < 10; k++)
    {
      digitalWrite(lamp, HIGH);
      delay(600);
      digitalWrite(lamp, LOW);
      delay(600);
    }

delay(1000);

}

!Sua vez!

Modifique o código acima utilizando o for para que sejam tocadas 3 notas diferentes, 10 vezes cada uma.

Resposta

int buzzer = 5;

void setup()
{
  pinMode(buzzer,OUTPUT);
}


void loop() 
{ 
for (int i = 0; i < 10; i++)
    {
            tone(buzzer,261);            
            delay(200);
            noTone(buzzer); 
    }
    
delay(1000);

for (int k = 0; k < 10; k++)
    {
            tone(buzzer,329);            
            delay(200);
            noTone(buzzer); 
    }

delay(1000);

for (int m = 0; m < 10; m++)
    {
            tone(buzzer,392);            
            delay(200);
            noTone(buzzer); 
    }

delay(1000);

}