Paso 7: Otro paso más cerca de poner todos juntos
http://www.Arduino.CC/en/Reference/AttachInterrupt
Antes de adentrarnos en la RTC de la lectura y análisis de los datos, solo hagamos la señal del medidor otra vez como en el paso 4, pero esta vez usando la onda cuadrada de la RTC y una interrupción. Usted notará en el esquema que muestro un tirón para arriba del resistor en el pin 2. Esto es necesario por el RTC para generar la onda cuadrada de 1Hz (leer el derecho de la hoja de datos? :^) pero en el circuito de la foto es falta. Esto es porque las clavijas de entrada en el arduino han construido en dominadas, pero tienes que poder. Escribiendo un valor alto al pin 2, el Levante interior está habilitado para que pin y no tiene que utilizar un externo. Leer los comentarios en el código para ver el comando que hace esto.
Rutina de garrapata con una interrupción provocada por la onda cuadrada del DS3231 RTC
#define pwmpin 5
pwmval bytes;
void setup()
{
pwmval = 0; inicializar
Serial.Begin(9600); habilitar salida serie
digitalWrite(2,HIGH); permiten interno tire para arriba en el pin 2. Esto evita la necesidad de la extracción externa hasta resistencia que se muestra en el esquema
attachInterrupt (0, interrumpida, levantamiento); Coloque interrupción 0 a la función 'interrumpido' cuando pin dos ve una tensión creciente
}
void loop() {}
; Añadir cosas aquí si quieres
}
void interrupted() {//this es la función llamada cuando pin 2 ve una tensión creciente
Serial.println ("interrupción detectado"); imprimir en terminal de serie
pwmval += 4; incrementar el valor de pwm de 4 cuentas
Si (pwmval > 240) {//set pwmvalue a cero cuando supera los 240
pwmval = 0;
}
updateGauge(); llamar a la función de indicador de actualización
}
void updateGauge() {}
analogWrite (pwmpin, pwmval); salida pwmvalue a pin 5
}