Um projeto arduino: como fazer altivo luzes de natal ornamentos

luzes de natal arduinoEsta é a próxima parte da nossa série Arduino aprendizagem, e desta vez nós vamos ser aprender e usar Arrays para fazer um ornamento pequeno árvore de Natal com várias sequências de piscar. Este seria um projeto ideal para manter as crianças ocupadas, se você gostaria de ensinar-lhes solda básica - apenas montar os LEDs em um pedaço de cartão, e você pode obter energia a partir de uma bateria de 9V padrão.

É também uma lição chave na iniciante de programação Arduino, mas se você não planeja realmente usando isso como um ornamento Eu sugiro fortemente Maquetagem-lo de qualquer maneira.

Nota: Este é um tutorial nível muito iniciante e certamente ganhou t ser quebrar qualquer novo terreno - que s??? apenas um dispositivo para ensinar os conceitos de utilização Arrays e loops para lidar com um grande número de LEDs (Ou outros dispositivos de saída).

? Se você haven t já, agora seria um bom momento para seguir junto com os outros artigos da série:

Para este projeto, você vai precisar de pelo menos 8 ou 9 LEDs em vermelho ou verde, uma resistência para cada um deles, uma placa de ensaio e alguns Fios de montagem. o starter kit de Ooomlout, que Recentemente me comprou e é retratado neste tutorial, oferece ótimo custo-benefício e tem mais LEDs e resistores do que você? nunca vai precisar, assim como vem com uma placa de ensaio limpo e caso Arduino para manter as coisas arrumadas.

? Aqui é a coisa final:

luzes de natal arduino

E um vídeo dele em ação.

Aqui? S uma vista da fiação do Fritzing. ? Ele é muito básico - basta conectar o cabo positivo dos LEDs para os pinos 2-> Whatever (Até ao pino 13), e conectar as pernas negativos à linha chão com um resistor. O valor I? Ve usado aqui é de 560 Ohms. Isso? S-lo para a fiação.

luzes de natal arduino

No lado do software, pense sobre como você pode escrever a todos esses LEDs no código. Você poderia fazê-lo como este:

int LED1 = 2- // primeiro LED em LED2 pin 2INT = 3 // segunda no pino 3 // etc etcvoid loop(){digitalWrite(led1,HIGH)-delay(100)-digitalWrite(led1,LOW)-delay(100)-digitalWrite(led2,HIGH)-// etc}

Você deve ser capaz de ver que com 9 LEDs, este é rapidamente se tornar cansativo. A resposta encontra-se com Arrays, que se você pode? t lembrar o nosso Programação 101 sobre tipos de dados básicos - São, basicamente, apenas listas.

A sintaxe se parece com isso (colocar isso como a primeira linha em seu código):

leds int [] = {} - 2,3,4,5,6,7,8,9,10

Os colchetes indicam que o? Leds? variável vai ser um ordem. As chaves encerram a lista de números de pinos que nossa matriz irá conter.

Agora, para usar uma matriz, é preciso abordá-la pelo número de índice. o índice começa em 0, e será sempre, portanto, ir até 1 menor que o número total de coisas dentro dele (assim com 9 itens, o último seria de ter um índice de 8).

Você escrevê-lo como este:

leds [0]

Que no nosso caso, iria buscar o número 2, porque isso? O que? S no índice 0 em nossa matriz.

Seguindo até agora? Ótimo. Isso por si só isn t suficiente para nós embora -? Nós também precisa de alguma maneira para iterar sobre cada elemento da nossa matriz de LEDs Para isso, vamos utilizar um loop. A sintaxe para fazer isso é assim:

for (condição inicial Variável em que repetimos novamente- alteração variável cada iteração)

Por exemplo:

for (int i = 0- i<9- i++)

que diz

  • iniciar este ciclo com uma variável, Eu, que tem um valor de zero
  • continue looping somente enquanto i é inferior a 9?(Assim: 0,1,2,3,4,5,6,7,8)
  • cada vez, adicionar 1 a i (I ++ é uma forma abreviada de dizer i = i + 1)

Então, basicamente, o loop vai ser repetido quantas vezes temos LEDs, e cada vez que? S repetida, teremos uma variável, Eu, que podemos utilizar no entanto nós gostamos.

Nós vamos estar usando essa estrutura duas vezes para começar. Uma vez dentro da função de configuração para fazer todos os nossos pinos voltar para o modo de saída, como este:

void setup () {for (int i = 0-i< 9-i++){pinMode(leds[i],OUTPUT)-}}

você pode ver o que fizemos lá? Em vez de escrever 9 linhas de código para declarar cada pino indivíduo como de saída, criamos um laço `for` a repetir-se 9 vezes, cada vez estabelecendo outro pino.

Agora, você deve ser capaz de ver como poderíamos fazer exatamente a mesma coisa no loop principal do programa para transformar cada LED em sequência:

vazio loop () {for (int i = 0-i< 9-i++){digitalWrite(leds[i],HIGH)-delay(100)-digitalWrite(leds[i],LOW)-}}

Tente isso. Você pode baixar o código completo para o projeto de hoje a partir daqui se você? em vez d não digitá-lo novamente (embora eu encorajá-lo a, uma vez que ajuda o processo de aprendizagem).

Ok, então agora temos uma sequência de iluminação bastante chato. Vamos programa de outro. Apenas por diversão, vamos? S torná-lo completamente aleatória. Substitua o código loop principal com esta:

vazio loop () {int randomLed = random (0,8) -digitalWrite (leds [randomLed], HIGH) -delay (50) -randomLed = random (0,8) -digitalWrite (leds [randomLed], LOW) -}

Em vez de usar um `para` loop para iterar sobre cada LED, nós escolhemos um número aleatório de 0-9 em vez disso, e flash que diante.

Vou deixá-lo lá para hoje, como você agora deve ser armado com conhecimento suficiente para programar todas as novas sequências e experimentar com loops. Para provar o quão fácil isso tudo é, eu o desafiei a minha mulher a pensar de uma sequência ela? Gostaria de ver, e depois obtidos?-la para programá-lo a si mesma, dado apenas o código e lições você teve até agora. Ela veio com isso, então veja se você pode combinar que, para trabalhos de casa!

Perguntas, sugestões, problemas - por favor, entrar em contato nos comentários.

» » Um projeto arduino: como fazer altivo luzes de natal ornamentos