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:
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
!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); }