Boa noite. 

Sou novo no fórum e também não tenho muito conhecimento em Arduino. Estou iniciando meus estudos na área.

Peço desculpas caso haja tópico semelhante, procurei e não encontrei. Caso haja, peço, por favor, para me indicar.

Meu projeto: ajudo minha esposa fazendo cenários para sua escola de ballet. Neste ano farei um caldeirão de bruxa que terá algumas fitas de led, simulando um braseiro na base e uma poção no seu interior. Tenho duas fitas de led RGB e, através do arduino, gostaria de programas diversos efeitos ao londo da música. O único controle seria um botão para energizar o arduino e a partir daí, as variações ocorreriam somente a partir do transcorrer do tempo.

Existe um loop para a fita de led da base, simulando o fogo, que fica praticamente ligada durante toda a musica e alguns loops para a fita de led do caldeirão, que varia diversas vezes.

Tentei usar delays mas o programa não rodava. Então parti para o millis. Contudo estou tendo problemas com os loops, acho que ainda não estou dominando a função.

Infelizmente achei apenas exemplos para leds piscando, porem gostaria de usar efeitos de fade, piscas randômicos, etc.

Enfim, preciso de um programa que controle diversos loops diferentes, que tenham início, duração e fim determinados.

Alguém teria um caminho que possa me ajudar?

 

Exibições: 420

Responder esta

Respostas a este tópico

Bom dia BCMS,

vamos por partes como dizia o lendário Jack.

1. Que fitas de leds você tem?  (Tipo de LEDs nas fitas)?  LED 3528, LED 5050, WS2812B?

2. Quantas fitas serão?

3. A saída de som vai controlar algumas fitas?

4. Qual arduíno está usando? UNO,Mega, Mini, etc?

5. Se tiver mais informações, coloque aqui.

Para que tenha uma boa ajuda, ao criar um tópico com dúvidas, coloque todas informações relevantes,

para ajudar o amigo a te ajudar.

RV

Boa tarde mineirin RV, tudo bem?

Bom, vamos lá então:

Tenho uma música de 4 minutos de duração. Durante a música, as fitas de LED vão realizar diversos efeitos, contudo, a saída de som não vai controlar elas. Os efeitos serão feitos de acordo com determinado momento da música, já estabelecido.

Estarei usando um arduino UNO e duas fitas de LED, sendo as duas RGB 5050.

As fitas estão ligadas aos pinos PWM do arduino, devido à necessidade de se controlar a intensidade dos LEDS.  

#define BLUE1 3 // pino PWM 3 para azul fogueira
#define GREEN1 5 // pino PWM 5 para verde fogueira
#define RED1 6 // pino PWM 6 para vermelho fogueira
#define BLUE2 9 // pino PWM 9 para azul caldeirao
#define GREEN2 10 // pino PWM 10 para verde caldeirao
#define RED2 11 // pino 11 para vermelho caldeirao

A sequencia de iluminação seria mais ou menos assim:

Os pinos destinados à "fogueira" realizariam um efeito de fogo durante os 4 minutos da musica, sendo que o inicio e o fim seja em forma de fade in e fade out, para ficar algo mais natural.

No meio da música, preciso de um efeito estrobo branco por alguns segundos nos pinos destinados ao "caldeirão" e posteriormente um efeito fade variando entre alguns tons de verde determinados. Ao fim da música, preciso de um roxo.

O unico controle é um botão que liga o arduino, ou seja, após energizar o arduino, ele deve executar todas as variações acima apenas com o decorrer do tempo, pois como será utilizado em uma coreografia de dança, não há como alguém apertar algum botão ou realizar alguma ação na hora. Ele será apenas ligado no inicio da coreografia. Passados os 4 minutos, ele deve desligar, ou seja, não se pode iniciar todo o loop novamente.

Os tempos eu ainda preciso definir com o coreógrafo, mas seria apenas alterar os valores no programa.

Para o efeito de fogo na fogueira, encontrei esta função que atende minha necessidade:

analogWrite(GREEN1, random(0) + 5);
delay(random(5));
analogWrite(RED1, random(155) + 100);
delay(random(5));

Contudo, a presença do delay está travando meu programa. Desta forma não estou conseguindo fazer os efeitos de fade nos pinos destinados ao caldeirão e o efeito de fogo de forma independente. Claro que não precisa ser essa função, apenas gostei do efeito dela.

Resumindo, preciso controlar as fitas de forma independente, realizando uma função que simule o fogo nos pinos destinados à "fogueira" e uma função que simule um strobo de uns 5 a 10 segundos em determinado momento da musica, seguido de um fade lento em tons de verde, que se prolonga até quase no fim da musica, terminando em roxo nos pinos destinados ao "caldeirão".

Estava pesquisando a respeito de "blink without delay" mas ainda não entendi direito a função millis(), até porque não sei se este é o caminho certo para meu projeto, ou se for, estou tendo problemas com a lógica presente na função. Tem só 15 dias que meu arduino chegou rsrs. Ainda não estou muito familiarizado com a linguagem.

Se você já tiver algum sketch pronto, mesmo que não atenda sua necessidade,

faça assim:

Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
com o seu sketch.

Assim já iniciaremos a ajuda de definições do seu projeto.

RV

Estou elaborando. Quando estiver pronto eu posto.

Muito obrigado!

Bom dia BCMS,

afim de não extender muito, e dificultar a navegação, e não perder formatação,

faça o seguinte:

Retire o sketch da área de texto do seu tópico, mantendo so,mente o que você anexou.

RV

Fiz um sketch... Mas logo aviso que não está devidamente formatado. Acredito que declarei variáveis inutilmente e sei que minha lógica tem erro.

Basicamente me atente, mas gostaria de corrigir dois erros que identifiquei e gostaria de adicionar um efeito que não sei como proceder.

Não consegui colocar o efeito strobo de luz branca entre os períodos: 66000 e 70000 o millis. Os leds RGB apenas ficam ligados neste período e não piscam conforme tentei fazer.

Na lógica, há uma duplicidade que não consegui eliminar. Após 234000 do millis, os pinos 9, 10 e 11 devem emitir uma luz roxa por um determinado tempo e depois tudo deve se apagar, contudo não consigo apagar o pino 10, responsável pelo verde que faz o fade anteriormente. 

Desculpe pela formatação. Foi o que mais se aproximou do que preciso.

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço