Steampunk Analog mätare månfas klocka (7 / 11 steg)
Steg 7: Ytterligare ett steg närmare till att sätta allt ihop
http://www.Arduino.cc/en/reference/AttachInterrupt
Innan vi går in läsa RTC och analysera data, låt oss bara göra gauge fästingen igen som i steg 4, men denna gång med fyrkantsvåg från RTC och ett avbrott. I schematiskt kommer du märka att jag visar en dra upp motstånd på pin 2. Detta måste enligt RTC utgång 1 Hz fyrkantsvåg (du läser datablad rätt? :^) men i kretsen i på bilden är det saknas. Detta beror input stiften på arduino har inbyggda pull-ups, men du måste aktivera dem. Genom att skriva ett högt värde till stift 2, aktiveras den inre dra upp för att PIN-koden och du behöver inte använda en extern. Läs kommentarerna i koden för att se kommandot som gör detta.
Tickande rutin med ett avbrott utlöses av fyrkantsvåg från DS3231 RTC
#define pwmpin 5
byte pwmval;
void setup()
{
pwmval = 0; initiera
Serial.BEGIN(9600); Aktivera seriella produktionen
digitalWrite(2,HIGH); Aktivera interna dra upp på pin 2. Detta undanröjer behovet av extern dra upp motstånd i schematiskt
attachInterrupt (0, avbruten, RISING); bifoga avbrott 0 till funktionen avbryts när pin två ser en stigande spänning
}
void loop() {
; lägga till grejer här om du vill
}
void interrupted() {//this är funktionen kallas när stift 2 ser en stigande spänning
Serial.println ("avbrott upptäcktes"); skriva ut till seriell terminal
pwmval += 4. öka värdet pwm med 4 räknas
om (pwmval > 240) {//set pwmvalue tillbaka till noll när det överstiger 240
pwmval = 0;
}
updateGauge(); anropa funktionen Uppdatera mätare
}
void updateGauge() {
analogWrite (pwmpin, pwmval); utgång pwmvalue till stift 5
}