Estou montando uma iluminação praticamente toda com LED. Tem uns balões que tem uma iluminação de lâmpada incandescente no interior e por fora coloquei vários LEDS, estou querendo que quando os LEDS piscarem as luzes do balão se apaguem e vise versa. Tipo os LEDS piscarem no intervalo de 50 milissegundos por 50 segundos e após os 50 segundos as luzes acenderem e os LEDS apagam ficando as lâmpadas incandescentes acesas por 1 minuto. É mais ou menos assim. Isso usando duas portas, com outras controlar outros LEDS mais não tenho noção de código ainda, pois meu Arduino chegou tem menos de uma semana. Já tenho o relé pra mandar 12V para os LEDS, LEDS, fonte 12V e os resistores para os LEDS. Já esta tudo quase montado só faltando o código hehehe.
Tags:
Parece ser bem tranquilo.
Dá uma olhada no exemplo que já vem no software do arduino, o blink e o fade.
Euclides é para uma iluminação de balões para o comércio de um colega (Festejos Juninos).
Creio eu que na programação não precisa disso tudo não, só precisa calcular quantos ciclos de 50ms ele tem que girar e quantos ms é o total de 1min. que é 60000
é só parar e calcular os valores... estou apressado agora, se nao eu parava aqui pra fazer os testes, se houver alguma outra função que de pra usar minutos em lugar de mili segundos seria melhor... pois sou novo em programação pra arduino.
ficaria +- assim:
Sete os pinos aonde vc vai querer colocar antes em variaveis ou em numeros inteiros diretos e só mudar os valores em quanitade_de_ciclos.
void loop() {
for(int x = 1; x <= quantidade_de_ciclos; x++){
digitalWrite(ledSaoJoao, HIGH); // Acende o ledSaoJoao
delay(50); // Delay de 50 milisegundos
digitalWrite(ledSaoJoao, LOW); // Apaga o ledSaoJoao
delay(50);
}
digitalWrite(luzSaoJoao, HIGH); // Acende a Luz de sao joao
delay(60000);
digitalWrite(luzSaoJoao, LOW); // Apaga a luz de sao joao
}
Pronto, soh colocar o valor. 1000 no lugar de quantide de ciclos que vAi da exatamente 50 segundos! E logo depois vai ficar ligada a luz e os leds apagados por 1min.Creio eu que na programação não precisa disso tudo não, só precisa calcular quantos ciclos de 50ms ele tem que girar e quantos ms é o total de 1min. que é 60000
é só parar e calcular os valores... estou apressado agora, se nao eu parava aqui pra fazer os testes, se houver alguma outra função que de pra usar minutos em lugar de mili segundos seria melhor... pois sou novo em programação pra arduino.
ficaria +- assim:
Sete os pinos aonde vc vai querer colocar antes em variaveis ou em numeros inteiros diretos e só mudar os valores em quanitade_de_ciclos.
void loop() {
for(int x = 1; x <= quantidade_de_ciclos; x++){
digitalWrite(ledSaoJoao, HIGH); // Acende o ledSaoJoao
delay(50); // Delay de 50 milisegundos
digitalWrite(ledSaoJoao, LOW); // Apaga o ledSaoJoao
delay(50);
}
digitalWrite(luzSaoJoao, HIGH); // Acende a Luz de sao joao
delay(60000);
digitalWrite(luzSaoJoao, LOW); // Apaga a luz de sao joao
}
acabei de chegar e testei, o valor não é 1000, fiz os testes aqui em casa, pois ontem eu estava na casa da minha mulher...
o valor pra colocar no loop é 500!
500 da exatamente 50 segundos o led piscando, e a luz fica acesa por 1min.
desculpa pelos calculos errados, estava tao apressado que coloquei os valores errados hehehehe
vai ficar assim colocando a porta do led no digital 10 e a luz na porta digital 9:
int ledSaoJoao = 10;
int luzSaoJoao = 9;
void setup() {
pinMode(ledSaoJoao, OUTPUT);
pinMode(luzSaoJoao, OUTPUT); }
void loop() {
for(int x = 1; x <= 500; x++){
digitalWrite(ledSaoJoao, HIGH); // Acende o ledSaoJoao
delay(50); // Delay de 50 milisegundos
digitalWrite(ledSaoJoao, LOW); // Apaga o ledSaoJoao
delay(50); }
digitalWrite(luzSaoJoao, HIGH); // Acende a Luz de sao joao
delay(60000);
digitalWrite(luzSaoJoao, LOW); // Apaga a luz de sao joao
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por