Como adicionar um alarme para seu Arduino Project Clock

Adicionando um alarme é o mais fácil modificação de hardware para o seu Project Clock Arduino. Você só precisa ligar a sirene piezoelétrica. Com isso adicionado, basta criar uma função a desempenhar o alarme. Adicione o seguinte código para o fundo do seu esboço Arduino:

vazio soundAlarm () {float alarmFrequency = 1400- // O valor para o tom de alarme em Hzfloat período = (1,0 / alarmFrequency) * 1000000-long beepDuration = 250000- // o tempo em microssegundos (0,25 segundos) de comprimento elapsedTime = 0- while (elapsedTime lt; beepDuration) {digitalWrite (piezoPin, alto) -delayMicroseconds (período / 2) -digitalWrite (piezoPin, LOW) -delayMicroseconds (período / 2) -elapsedTime + = (período) -} digitalWrite (piezoPin, baixa) -delayMicroseconds (beepDuration) - // Ouvir para qualquer botão para ser pressionado e se assim for, desligue o hrs alarmint = digitalRead (incrementAlarmHrsPin) -int mins = digitalRead (incrementAlarmMinsPin) -se (hrs == ALTAS || minutos == HIGH) {alarme = false -}}

Este código utiliza a fórmula de padrão para se obter o período de um em frequência o período é a duração de um ciclo único de um evento de repetição e é o recíproco da frequência. Você especificar a freqüência de seu tom de alarme em Hertz (Hz) e atribuí-lo ao flutuador variável alarmFrequency.

O alarme irá alternar entre jogar um tom a esta frequência.

image0.jpg

Dois inteiros longos, beepDuration e tempo gasto, armazenar o tempo decorrido o tom foi jogar ea duração que você quer jogar. o enquanto loopuses estes para limitar o tempo que a nota é reproduzido para 0,25 segundos (beepduration).

Com o período de cálculo, você usa esse valor para escrever rapidamente valores altos e baixos ao piezoPin. Um ciclo inclui dentro e fora vezes, por isso a quantidade de tempo para escrever o pino de alta e baixa é metade do período total. Isto é escrito para os pinos digitais usando:

digitalWrite (piezoPin, HIGH) -delayMicroseconds (período / 2) -digitalWrite (piezoPin, LOW) -delayMicroseconds (período / 2) -

o delayMicroseconds () função é mais curto espaço de tempo que você pode atrasar o Arduino, e é necessária para gerar um tom. Após o tom foi jogado, as duas linhas a seguir criam o silêncio durante o mesmo período, 0,25 segundos, mantendo o piezoPin BAIXO:

digitalWrite (piezoPin, baixo) -delayMicroseconds (beepDuration) -

A última coisa a fazer é fornecer uma maneira de silenciar o alarme, se você pressionar um dos botões. Os inteiros locais, hrs e mins, armazenar o valor dos botões utilizados para programar o alarme. Se o botão de horas ou o botão minutos passa alto porque o botão foi pressionado, a condição de alarme é definida como falsa. As barras verticais | | indica uma contagem lógica OU:

int h = digitalRead (incrementAlarmHrsPin) -int mins = digitalRead (incrementAlarmMinsPin) -se (hrs == ALTAS || minutos == HIGH) {alarme falso-=}}

Ufa. Isso foi um monte de code-mas agora o relógio está pronto para ter seu funcionamento experimental. No código, defina a hora do alarme ser algo no próximo minuto ou so- seguida, no código e enviar o código para o Arduino. Verifique se o interruptor estiver na posição armada e que o asterisco é exibido. Em breve, você deve ter seu alarme gratificante.

Se você tiver qualquer problema, verifique suas conexões. Em seguida, verifique seu código para ter certeza que é correto.

Bip! Bip!! Bip!!! É hora de dar palmadinhas nas costas para a construção de um despertador totalmente funcional a partir do zero!

image1.jpg

menu