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.
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!