Índice:
- Etapa 1: Visão geral dos elementos de hardware
- Etapa 2: Visão geral do software
- Etapa 3: Lista de peças
- Etapa 9: Projetar e escrever o código
- Etapa 10: instalar o programa
- Etapa 11: montar o cronômetro
- Etapa 12: Teste de Integração
- Etapa 13: Considerações Finais
Vídeo: Multi-temporizador com controle externo: 13 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Este projeto Instructable é uma construção de um Timer multifuncional
Este temporizador é capaz de funcionar como:
- Um alarme de uso geral com tempos selecionáveis entre 1 segundo e +90 horas. Ter uma contagem regressiva com alarme sonoro e / ou controle de dispositivo externo até o final e então uma indicação de contagem do tempo desde o alarme.
- Um cronômetro de sesta com 7 horas selecionáveis, contagem regressiva e alarme na conclusão.
- Um cronômetro de meditação com 4 tempos selecionáveis, com contagem regressiva e um chilrear curto na conclusão, conte com outro chilrear 5 minutos depois disso.
Este projeto pode ser construído conforme descrito aqui ou modificado para se adequar. Eu anteriormente construí um cronômetro com essa funcionalidade e usei-o no meu primeiro Instructable para controlar a caixa de exposição UV.
Achei que poderia publicar o programa original e os designs da placa. No entanto, por algum motivo, não consegui encontrar o código. Eu também queria fazer melhorias no hardware para tornar os circuitos de controle mais flexíveis e reduzir o consumo da bateria. O redesenho resultante da placa de circuito principal e a reescrita do código fornecem uma oportunidade para discutir a abordagem de programação e design de hardware.
Sempre que crio uma placa de circuito, muitas vezes descubro que há falhas no design ou no posicionamento dos componentes. As placas que construo também são uma de duas. Além disso, gosto de estar envolvido em todos os aspectos de um projeto, do início ao fim. Essas são algumas das razões pelas quais eu faço minhas próprias placas de circuito em vez de enviar os arquivos Gerber para o exterior para fabricação. Talvez eu esteja apenas velho e preso em meus caminhos. Este projeto reflete esse viés. Como faço minhas próprias placas de circuito, meus projetos e arquivos Gerber não atendem aos padrões de fabricação, não incluí esses arquivos. Aqueles que não desejam gravar e terminar as placas podem preparar seus próprios designs e postar os arquivos Gerber na seção de comentários. Por favor, tenha suas placas fabricadas e testadas antes de postar.
Etapa 1: Visão geral dos elementos de hardware
O dispositivo é alimentado por 4 baterias AAA e é controlado por um Arduino Pro Mini 5V.
Uma pequena campainha / alto-falante fornece um alarme audível.
Um relé de 5 V em miniatura fornece tensões de controle para dispositivos externos. A flexibilidade é fornecida na fonte desta saída de tensão de controle.
Um codificador rotativo com botão permite a seleção do menu.
Um display OLED e um interruptor momentâneo de iniciar / parar completam a interface do usuário.
O hardware eletrônico adicional consiste em um botão liga / desliga SPDT e um conector de telefone em miniatura para conectar a dispositivos externos.
Além disso, são fornecidos arquivos para ajudá-lo neste projeto:
Arquivos STL para um caso de projeto impresso em 3D.
Imagens de máscara de cobre e solda para gravação e acabamento da placa de circuito de controle e codificador rotativo.
Imagens esquemáticas e de tabuleiro como referência para quem deseja modificar o meu desenho.
Você pode querer rever meu Instructable na criação de placas de circuito de dupla face como um exemplo de como fazer a produção de placa de circuito.
Etapa 2: Visão geral do software
Junto com os arquivos de origem do Arduino, algumas informações adicionais que podem ser úteis.
Bibliotecas de controle de hardware são usadas quando disponíveis (botão de rebatimento, controle OLED, leitura do codificador rotativo).
O programa implementa uma máquina de estado finito simples (FSM) para controlar a execução do código como uma instrução switch na função de loop.
Uma classe de menu é definida para permitir a seleção das opções exibidas no OLED e a seleção usando o codificador rotativo.
A entrada é implementada por polling direto (conduzido sem interrupção), uma vez que não é crítico em termos de tempo e torna o código mais claro.
As instruções de impressão para serial são usadas para ajudar no rastreamento de execução de código e depuração
Vários tipos de elementos da estrutura do programa, incluindo:
- Várias guias de código para isolar algumas das funções e variáveis de controle de hardware.
- Alterne as declarações para definir o valor de estado (FSM) e as variáveis de controle.
- Definição de estrutura
- Enumerações para permitir a atribuição de valores de estado como texto.
- # define as definições do pré-processador para o pino do hardware e os valores padrão.
Etapa 3: Lista de peças
Eu não tinha certeza de onde colocar essa etapa, pois ela pode ser feita em quase qualquer ponto. Usei uma caixa impressa em 3D. Você pode não ter acesso a uma impressora 3D ou preferir outro tipo de gabinete, como caixa de alumínio, plástico cortado a laser, madeira entalhada à mão ou outro tipo que você use para seus projetos eletrônicos. Incluí os arquivos STL para a parte superior, inferior, botão giratório do codificador e moldura OLED. Use esses arquivos e o fatiador de sua escolha para criar arquivos gcode para sua impressora.
Eu imprimo todas as peças usando filamento PLA, uma cor para a parte superior e inferior da caixa, outra cor contrastante para o botão e a moldura (que é colada na parte superior). Não vou especificar todas as minhas configurações de fatiador, mas, uso um Tri - Enchimento hexagonal de pelo menos 35% para permitir o rosqueamento dos parafusos dos cantos e uma configuração "sem suporte" para a leitura das letras incisas. Imprimi a caixa usando a altura da camada "normal" da minha impressora.
Etapa 9: Projetar e escrever o código
Esta etapa é opcional, mas sugerida para melhor compreensão.
A maior parte do esforço em termos de horas é a escrita do código. Você pode pular esta etapa se usar o programa anexado como -is. No entanto, sugere-se que você reserve um tempo para revisar o código para melhor compreensão ou modificação para atender às suas necessidades.
Os comentários a seguir podem ser úteis para a compreensão desse processo.
- Comentários - Comente extensivamente conforme você avança - freqüentemente escrevo os comentários antes de escrever o código.
- Divida e conquiste - use funções, classes e módulos (guias.) Use compilações frequentes (Verificar) para verificar a sintaxe. Depurar - Use as instruções de impressão para verificar o fluxo e os valores de teste e as interfaces de hardware. Não tenha medo de resolver os problemas à medida que avança, ninguém escreve código sem erros!
- Constantes - #define as instruções do pré-compilador atribuem nomes aos números dos pinos. As definições de variáveis Const com comentários reduzem ou eliminam números "mágicos". O uso de constantes localizadas no início de um programa ou função permite alterar os parâmetros sem reescrever o código
- Bibliotecas predefinidas - O uso de bibliotecas predefinidas reduz a carga de programação e o tempo de depuração.
- Blocos de projeto - criados usando funções, código de isolamento em guias separadas (programas associados e.hfiles), enumerações, classes e estruturas. Concentre sua atenção em cada um para entender como eles funcionam em relação ao resto do código.
- Máquina (s) de estado - é um padrão de programação que funciona muito bem com Arduinos ou qualquer programa usado para controlar saídas ou reagir às entradas. Existem vários tipos de máquinas de estado. Este código usa uma máquina de estado com base na instrução switch na função de loop. Este formulário é fácil de entender e depurar.
- Visor e menus - A saída OLED é concisa, mas fornece feedback suficiente para usuários casuais e oferece suporte à seleção de opções. Ele se integra bem com a máquina de estado (quase todos os estados têm uma tela OLED associada). A classe Menu foi útil para isolar o código para exibir e selecionar as opções do menu
Por favor, leia o programa várias vezes. Ajuda ter uma função ou seção de cada vez. Freqüentemente, não entendo o código que escrevi, a menos que o tenha lido pelo menos duas vezes!
Etapa 10: instalar o programa
Copie o arquivo anexado para o seu computador e descompacte-o no diretório Sketches
Conecte o Arduino ao seu computador e baixe o código do programa normalmente. Abra o monitor serial Arduino IDE para verificar se o programa está sendo executado e ajudar na depuração.
Etapa 11: montar o cronômetro
Assim que as partes superior e inferior da caixa forem impressas e limpas, os componentes podem ser fixados usando pequenos parafusos de plástico auto-roscantes. Primeiro, o suporte da bateria é encaixado na parte traseira. O resto das peças são fixadas na parte superior do gabinete na seguinte ordem:
- OLED e cabo
- Chave de partida / parada e fiação
- Codificador Rotativo e cabo
- Alto-falante / campainha e fiação
- Jack de controle externo e fiação
- Chave deslizante liga / desliga e fiação (verifique a orientação para que esteja na direção desejada
Se você estiver soldando os cabos diretamente na placa de circuito, faça isso depois que todas as peças estiverem conectadas ao gabinete para reduzir a quebra do fio. Você deve esperar até que os cabos estejam ligados à placa principal antes de parafusá-la na parte de trás.
Se você estiver usando conectores de pinos e conectores Dupont, primeiro prenda a placa principal na parte traseira usando parafusos e, em seguida, conecte os componentes. Tenha cuidado ao conectar a bateria à placa principal e observe a polaridade correta. Você também deve configurar os jumpers de controle do relé ou a fiação neste momento.
A parte inferior do gabinete se conecta à parte superior por meio de parafusos de máquina de cabeça redonda 4-40, um em cada canto. Os quatro furos na parte superior devem ser rosqueados com um macho de 4/40 ou, se você usar pastilhas roscadas 4-40, precisará fazer os furos para aceitá-los. Os 4 orifícios para a montagem da placa de circuito principal na parte inferior também precisam ser perfurados. Encaixe esta placa na montagem de bateria de encaixe e marque os locais dos orifícios. Perfure conforme apropriado para seus parafusos de montagem.
Etapa 12: Teste de Integração
O teste final (integração) é realizado experimentando todas as opções do menu e verificando se funcionam com o hardware conforme projetado. Para o código que forneci, isso deve ser suficiente. Se você escreveu seu próprio código ou modificou o meu, seus testes precisarão ser mais extensos. Não acredito que todas as seleções de tempo precisem ser exercitadas, mas você precisa tentar todas as opções de alarme padrão e validar o funcionamento dos alarmes de soneca e meditação conforme planejado.
Etapa 13: Considerações Finais
Parabéns pelo seu projeto bem-sucedido, espero. Tenho certeza de que você encontrou problemas ao longo do caminho que precisava resolver. Também estou certo de que algumas de minhas instruções poderiam ter sido mais completas ou claras. Por favor, deixe-me saber através da seção de comentários quais foram seus resultados e sugestões sobre como essas instruções podem ser melhoradas.
Obrigado pelo seu tempo visualizando e / ou construindo este projeto.
Recomendado:
Raspberry Pi 4 Retropie Boot externo se não houver cartão SD presente: 5 etapas
Raspberry Pi 4 Retropie Boot de externo se não houver cartão SD presente: ~ github.com / engrpanda
Tiras de multi LED de um controle: 3 etapas
One Control Multi LED Strips: Tenho 5 peças de mobiliário em que gostaria de instalar luzes de LED. Os LEDs tiveram que ser controlados remotamente com uma opção para Alexa ON / OFF. TODOS os LEDS tiveram que ligar & mudar a cor em sincronia com apenas um toque do controle romote. Eles também
Hackeando uma luz negra estroboscópica para controle externo e estável: 5 etapas (com imagens)
Hackeando uma luz negra estroboscópica para controle externo e constante: Todos os anos, as grandes lojas vendem luzes negras estroboscópicas feitas com LEDs UV. Há um botão na lateral que controla a velocidade do estroboscópio. Eles são divertidos e baratos, mas não têm um modo de ativação contínua. Além do mais, seria bom controlar a luz ext
Controle externo do Winamp: 4 etapas
Controle Externo do Winamp: Hoje em dia, o winamp tem suporte total para atalhos de teclado. Mas algum tempo, quando o winamp não tinha esse recurso, pensei de alguma forma em fazer uma maneira fácil de mudar a música simplesmente pressionando um botão, isso tornaria as coisas mais rápidas e
Faça um HDD externo a partir de um CD / RW externo antigo: 5 etapas
Faça um HDD externo a partir de um CD / RW externo antigo: conversão bastante direta de um cd / rw externo antigo em um disco rígido externo mais útil. Suprimentos1-cd / rw externo (de preferência o tipo mais quadrado) 1-disco rígido (deve corresponder ao conector interno da caixa da unidade, precisa ser formatado / sisado) 1-sm