Como adicionar uma opção de entrada e botões para seu projeto relógio arduino

Video: RELÓGIO CALENDÁRIO COM RTC | Curso de Arduino #095

Para o seu Project Clock Arduino, você primeiro adicionar um dos interruptores de botão de pressão e um dos resistores, que você usa como uma entrada para incrementar as horas de alarme. Os trabalhos de botão de pressão ao permitir + 5V para ser aplicada ao pino 7 quando é pressionado.

Video: INTERFACE HM SIMPLES COM BOTÕES E LCD | Curso de Arduino #007

Quando a corrente flui através do switch, ele encontra a resistência e, em vez toma o caminho mais fácil para a terra através Pino 7 (há conexões para a terra internamente, dentro do microcontrolador ATmega328 IC). Lendo o pino 7 com o digitalRead () função retorna um valor de Alto (+ 5V).

Quando não está pressionado, PIN 7 é conectado através do resistor para GND, via o trilho chão. Lendo o pino 7 com o digitalRead () função retorna um valor de nível baixo (0V).

Agora adicione o segundo botão interruptor e resistência, o que incrementa os minutos. Deve ser conectado ao pino digital 8.

Video: Curso Arduino - Aula 4 - Input Digital - Acendendo Um LED Com Um Botão

Por último, acrescente o interruptor deslizante, que tem três posições e dois resistores. Você pode ver que as ligações eléctricas para o interruptor deslizante são muito semelhantes aos dois interruptores de tecla. Mas porque é um controle deslizante, ele permanece na posição que você colocá-lo.

Na posição esquerda, ele mantém + 5V no pino digital 10. Na posição correta, ele mantém + 5V no pino digital 10. No centro, não faz sentido, e ambos os pinos digitais estão ligados apenas ao trilho do solo .

Lendo estes pinos, você pode determinar se o relógio é Alarme modo SET (Pino 6 é HIGH), Relógio modo armado (Pin 10 é HIGH), ou simplesmente no modo Time Display (sem connection- Pin 6 e Pin 10 são LOW).



Agora adicione o código necessário para ler e responder ao hardware. Você precisa de algumas variáveis ​​para armazenar o estado do sistema e manter o controle de quando disparar o alarme. Na seção declaração da variável, adicione o seguinte código:

...DateTime agora boolean displayAlarmSet = falso-// Se estamos no modo ou programa de alarme hora do show definir modeboolean alarme = falso-// Se o alarme é atualmente happeningboolean armada = falso-// Se o alarme está armado ou notint alarmHrs = 12 // É possível definir o tempo de alarme em código, hereint alarmMins = 00-

a variável displayAlarmSet permite-lhe alternar entre mostrar a hora do relógio ou mostrando a hora do alarme, que você usa na updateDisplay () função, um pouco mais tarde. Você pode usar o interruptor deslizante para alterar o valor desta variável.

A variável “alarme” controla se ou não o alarme está acontecendo atualmente, de modo que você pode soar a sirene piezelétrica, se necessário.

Você também precisa manter o controle de quando disparar o alarme. Isto é feito com dois inteiros, alarmHrs e alarmMins. Se você deseja definir a hora do alarme a partir do software e não a partir dos botões, você pode definir que, alterando o valor inicial destas variáveis.

Contando os dois botões, e os dois estados que podem ser definidas pelo interruptor slide, você tem quatro entradas. Então, você precisa de quatro pinos digitais para lê-los. Você usá-los para a entrada, por isso eles precisam ser ativados no configuração() parte do seu código. Você também vai usar a sirene piezo para a saída, mais tarde, mas ele pode ser adicionado agora, para adicionar o seguinte código:

// entrada de utilizador para ajustar o alarme timeconst int alarmSetPin = 6- // usados ​​para alterar a alarme definido modeconst int incrementAlarmHrsPin = 7- // usado para incrementar as horas de alarme em alarme estabelecidos modeconst int incrementAlarmMinsPin = 8- // usado para incrementar o alarme minutos em alarme definido modeconst int piezoPin = 9 // Usado para a piezoelétrico sounderconst int alarmArmedPin = 10 // Use para ativar o alarme para disparar ... setup () {... lcd.clear () - / / SET vários pinos para entrada e -pinMode (incrementAlarmHrsPin, eNTRADA) -pinMode (incrementAlarmMinsPin, eNTRADA) -pinMode outputpinMode (alarmSetPin, eNTRADA) (alarmArmedPin, eNTRADA) -pinMode (piezoPin, OUTPUT) -

Nota, as elipses (...) indicam o código que você adicionou anteriormente - não há necessidade de repetir isso aqui. Há cinco novos números inteiros, que lidam com os pinos de entrada. Estas não mudam ao longo do programa assim que são inteiro constantes.

Ligou o interruptor ao Pino 6 e Pino 10 para lidar com qualquer definir o alarme ou armar-la para sair. Estão ligados os interruptores de botão de pressão para o pino 7 e 8. Cada um Pin controla separadamente incrementar as horas e minutos.

Você só pode incrementar para cima. Caso contrário, você nem precisa botões adicionais para diminuir horas e minutos ou uma maneira de alternar entre Aumentando e Diminuindo, que seria desnecessariamente complicado. Finalmente, estes pinos são usados ​​para a entrada, para que eles têm de ser explicitamente definido para ser usado para entrada com o pinMode () função.


Publicações relacionadas