Começamos por incluir a biblioteca Stepper.h para manipular o motor de passo. Em seguida, declaramos uma constante com o número de passos necessários para que o veio do motor complete uma volta, e criamos o objeto myStepper, especificando o número de passos por volta e as portas digitais associadas.
Além desses três passos, são necessárias mais duas constantes: a primeira para um botão de pressão usado para abrir e fechar o portão, e a segunda para a Chave Fim de Curso que indica quando o portão está fechado. Ambas as constantes incluem a informação sobre as portas digitais associadas a estes dispositivos.
Por fim, declaramos duas variáveis: 'aberto' é do tipo booleana, indicando se o portão está aberto ou fechado, e 'valueLMB' é do tipo inteiro, recebendo o valor proveniente da Chave Fim de Curso.
No bloco de código void setup()
, inicializamos o monitor de série para facilitar a monitorização do nosso código. Em seguida, especificamos a velocidade do motor de passo e configuramos os modos de entrada/saída para o botão de abertura e fecho do portão, assim como para a Chave de Fim de Curso. Por fim, verificamos o valor da Chave de Fim de Curso, assegurando que o portão está devidamente fechado.
Dentro do bloco de código void loop()
, começamos por ler os valores do botão de abertura e fecho do portão, assim como da Chave de Fim de Curso. Com base nestes valores, implementamos a lógica para abrir ou fechar o portão, garantindo a atualização contínua da variável booleana 'aberto'.
A função que se segue, fechaPortaoAutomatico(), fecha o portão da garagem, isto é, desce o portão 10 passos de cada vez até que o próprio portão pressione a chave fim de curso.
Mais uma vez, alcançamos com sucesso a automação da abertura do portão da garagem, empregando um motor de passo. A utilização do chip L293D permitiu o controlo preciso nos sentidos horário e anti-horário, enquanto a chave fim de curso assegurou o fechamento seguro do portão. Esta etapa representa não apenas um avanço técnico na automação residencial, mas também uma contribuição significativa para a segurança e comodidade dos utilizadores ao gerir o acesso à garagem de forma eficiente e controlada.