Índice:
- Etapa 1: um pouco de teoria sobre Fading-in e Fading Out usando a modulação por largura de pulso
- Etapa 2: O Trabalho Mecânico
- Etapa 3: os eletrônicos
- Etapa 4: o software
- Etapa 5: o resultado final
Vídeo: Presentes iluminados: 5 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Em casa temos dois presentes iluminados que são usados na época do Natal. Estes são presentes iluminados simples usando um LED vermelho-verde de 2 cores que muda de cor aleatoriamente, que aparece e desaparece gradualmente. O dispositivo é alimentado por uma célula-botão de 3 volts. Este último foi o motivo deste projeto, pois a bateria se esgota muito rapidamente quando os presentes ficam ligados por mais tempo.
Para evitar o uso de uma grande quantidade de baterias tipo botão, desenvolvi minha própria versão usando três baterias AAA recarregáveis. Esta versão usa um LED RGB então azul também é possível, mas que não fazia parte do design original. Minha versão possui as seguintes funções:
- O controle 2 é apresentado ao mesmo tempo usando um microcontrolador PIC12F617. O software do microcontrolador foi escrito na linguagem de programação JAL.
- Ligue e desligue o presente usando um botão de pressão. A versão original usava um interruptor para esse propósito, mas um botão de pressão era mais fácil de usar.
- Altere aleatoriamente a cor dos presentes por fade-in e fade-out das cores vermelho e verde.
- Desligue os presentes quando a tensão da bateria cair abaixo de 3,0 Volt. Isso evitará que as baterias recarregáveis sejam descarregadas demais.
Após o desbotamento em uma cor, o LED permanece aceso por um tempo entre 3 e 20 segundos. Como eu ainda tinha o LED azul não usado, adicionei o recurso de que ambos os pacotes ficarão azuis quando o tempo de ativação for de exatamente 10 segundos. Isso não acontece com muita frequência, pois o tempo aleatório é gerado em tiques do cronômetro de 40 milissegundos, conforme descrito posteriormente.
Etapa 1: um pouco de teoria sobre Fading-in e Fading Out usando a modulação por largura de pulso
A melhor maneira de alterar o brilho de um LED não é alterando a corrente que flui pelo LED, mas alterando o tempo em que o LED fica ligado em um determinado intervalo de tempo. Esta forma de controlar o brilho de um LED é denominada Modulação por Largura de Pulso (PWM), que foi descrita várias vezes na Internet, e. Wikipedia.
O PIC e o Arduino têm hardware PWM especial integrado que simplifica a geração desse sinal PWM, mas eles geralmente têm uma saída para isso e, portanto, você só pode controlar um LED. Para esta versão, eu precisava controlar 5 LEDs (2 vermelhos, 2 verdes e 1 azul combinado), então o PWM precisava ser feito no software usando um temporizador que gera tanto a frequência do PWM quanto o ciclo de trabalho do PWM.
O PIC12F617 possui um temporizador integrado com recursos de recarregamento automático. Isso significa que, assim que você definir o valor de recarregamento do cronômetro, ele usará esse valor cada vez que o tempo limite tiver passado e, portanto, o cronômetro operará sozinho em uma frequência especificada. Como a temporização é crítica para um sinal PWM estável, o temporizador opera em uma base de interrupção, não sendo influenciado pelo tempo que o programa principal precisa para controlar e determinar o tempo de ativação aleatório para os LEDs.
A frequência PWM deve ser alta o suficiente para evitar qualquer oscilação, então escolhi uma frequência PWM de 100 Hz. Para o efeito fade-in e fade-out, precisamos alterar o ciclo de trabalho e, portanto, o brilho do LED. Decidi usar um incremento de etapa de 5 para aumentar ou diminuir o brilho para obter o efeito fade-in e fade-out e, uma vez que o cronômetro usa uma faixa de 0 a 255 para o ciclo de trabalho, o cronômetro precisa ser executado em 255 / 5 = 51 vezes a frequência normal ou 5100 Hz. Isso resulta em uma interrupção do cronômetro a cada 196 us.
Etapa 2: O Trabalho Mecânico
Para fazer os presentes usei plástico acrílico branco leite e para o resto da montagem usei MDF. Para evitar que você veja o formato do LED na embalagem quando o LED está ligado, coloquei uma tampa em cima dos LEDs que difunde a luz do LED. Esta capa veio de algumas velas eletrônicas antigas que eu tinha, mas você também pode criar uma capa usando o mesmo plástico acrílico. Nas fotos você vê o que usei como equipamento e material.
Etapa 3: os eletrônicos
O diagrama esquemático mostra os componentes eletrônicos de que você precisa. Conforme mencionado anteriormente, 5 LEDs são controlados independentemente, onde o LED azul é combinado. Como o PIC não pode acionar dois LEDs em um pino de porta, adicionei um transistor para controlar os LEDs azuis combinados. A eletrônica é alimentada por 3 baterias recarregáveis AAA e pode ser ligada ou desligada pressionando o botão de reset.
Você precisa dos seguintes componentes eletrônicos para este projeto:
- 1 microcontrolador PIC 12F617 com soquete
- 2 capacitores cerâmicos: 2 * 100nF
- Resistores: 1 * 33k, 1 * 4k7, 2 * 68 Ohm, 4 * 22 Ohm
- 2 LEDs RGB, alto brilho
- 1 transistor BC557 ou equivalente
- 1 botão de pressão
Você pode construir o circuito em uma placa de ensaio e não requer muito espaço, como pode ser visto na foto. Você pode se perguntar por que os valores do resistor para controlar a corrente máxima através dos LEDs são tão baixos. Isso ocorre devido à baixa tensão de alimentação de 3,6 Volt em combinação com a queda de tensão que cada LED apresenta, que depende da cor por LED, consulte também Wikepedia. Os valores do resistor resultam em uma corrente máxima de cerca de 15 mA por LED, onde a corrente máxima de todo o sistema é em torno de 30 mA.
Etapa 4: o software
O software executa as seguintes tarefas:
Quando o dispositivo é reinicializado pelo botão de pressão, ele ligará o dispositivo se estiver desligado ou desligará o dispositivo se estiver ligado. Desligado significa colocar o PIC12F617 em modo de suspensão no qual quase não consome energia.
Gere o sinal PWM para controlar o brilho dos LEDs. Isso é feito usando um temporizador e uma rotina de serviço de interrupção que controla os pinos do PIC12F617 que ligam e desligam os LEDs.
Fade-in e fade-out dos LEDs e mantenha-os acesos por um tempo aleatório entre 3 e 20 segundos. Se o tempo aleatório for igual a 10 segundos, ambos os LEDs ficarão azuis por 10 segundos, após os quais o padrão de fade-in e fade-out vermelho-verde normal será usado.
Durante a operação, o PIC medirá a tensão de alimentação usando seu conversor analógico para digital (ADC) integrado. Quando essa tensão cair abaixo de 3,0 V, os LEDs serão desligados e o PIC entrará em modo de espera novamente. O PIC ainda pode operar bem a 3,0 V, mas não é bom que as baterias recarregáveis fiquem completamente descarregadas.
Conforme mencionado anteriormente, o sinal PWM é criado usando um temporizador que usa uma rotina de serviço de interrupção para manter um sinal PWM estável. O fading-in e fading-out dos LEDs, incluindo o tempo em que os LEDs estão ligados, é controlado pelo programa principal. Este programa principal usa um tique do temporizador de 40 milissegundos, derivado do mesmo temporizador que cria o sinal PWM.
Como não usei nenhuma biblioteca JAL específica para este projeto desta vez, tive que fazer um gerador aleatório usando um registro de deslocamento de feedback linear para gerar o tempo de ativação aleatório e o tempo de desativação aleatório dos LEDs.
Etapa 5: o resultado final
Existem 2 vídeos que mostram o resultado intermediário. Minha esposa ainda precisa transformar os cubos em presentes reais. Um vídeo mostra um close do resultado enquanto o outro o mostra com o presente original que deu origem a este projeto.
Como você pode esperar quando achar que terminou, novos requisitos aparecem. Minha esposa estava perguntando se o brilho dos LEDs também pode variar depois que eles diminuem. Isso é possível, pois eu usei apenas cerca de metade da memória de programa do PIC12F617.
O arquivo de origem JAL e o arquivo Intel Hex para programar o PIC estão anexados. Se você estiver interessado em usar o microcontrolador PIC com JAL - uma linguagem de programação semelhante ao Pascal - visite o site da JAL.
Divirta-se tornando este Instructable e aguardando suas reações e resultados.
Recomendado:
Arduino: caixa de aniversário cantando para presentes: 14 etapas
Arduino: Caixa de aniversário cantante para presentes: Esta caixa de aniversário cantante é feita com a finalidade de embalar presentes de aniversário, com a ajuda do Arduino para fornecer funções especiais, incluindo cantar e acender uma vela de LED. Com a habilidade de cantar a canção de feliz aniversário e acender o LED c
Acessórios para sapatos iluminados: 9 etapas
Acessórios para sapatos iluminados: são acessórios para sapatos que detectam a quantidade de luz ambiente existente e acendem com pouca luz para tornar o usuário mais visível para os outros! Eles são ideais para caminhar ao ar livre à noite, esteja você correndo, indo ao supermercado ou caminhando com você
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
Oferecendo presentes para o First Life no Second Life usando a Amazon.com: 9 etapas
Oferecendo presentes para o First Life no Second Life usando a Amazon.com: No mundo virtual do Second Life, é fácil formar amizades muito próximas com alguém que você talvez nunca tenha a oportunidade de conhecer pessoalmente. Os residentes do Second Life celebram os feriados do First Life como o Dia dos Namorados e o Natal, bem como os feriados pessoais
3 presentes de Natal fáceis da ATTiny: 4 etapas
3 Presentes de Natal fáceis da ATTiny: Todos os anos, a temporada de férias chega e eu fico sem saber o que dar para meus amigos e família. As pessoas sempre dizem que é melhor fazer o presente você mesmo do que comprá-lo em uma loja, então este ano eu fiz exatamente isso. A primeira exibição