Stap 12: De Code
Tijd voor het programmeren van de Arduino. Voel je vrij om de onderstaande code gebruiken. U moet eerst de tijd bibliotheek downloaden van http://arduino.cc/playground/Code/Time . Zodra gedownload, zal u de bibliotheek tijd gestoken in de omslag van de bibliotheken van uw directory van de Arduino. Vervolgens moet u schets---naar bibliotheek importeren---tijd om te nemen van de tijd-bibliotheek in uw tekening.Hier is hoe het werkt:
1. de individuele LED's zijn ingeschakeld door de rij van de LED instelt op laag, en de kolom van de LED op hoog. De truc is dat slechts één LED tegelijk kan worden gecontroleerd. Als u de code bekijkt, ziet u dat zodra een LED is ingeschakeld, is uitgeschakeld meteen. Dit werkt vanwege onze persistentie van de visie en omdat de LED's zijn uit en weer aan waarnaar wordt overgeschakeld op een zeer hoog tempo. Het gehele scherm krijgen op de orde van 500 keer per seconde opnieuw getekend.
2. u zult opmerken dat ik heb de puntjes van de dikke darm vastgehaakt aan twee van de pennen. Waarom zou ik dit doen wanneer zij staan altijd voor u? Goede vraag! Het is omdat als we don't turn de puntjes van de dikke darm af en op hetzelfde tarief als de rest van de LED's, de puntjes van de dikke darm zou ongeveer tien keer helderder die hun buren. Ik probeerde met behulp van constant vermogen naar de dots, en het zag er verschrikkelijk.
3. Ik schreef een functie die elk cijfer op de eerste positie van de 7 segment trekt. Ik maakte ook de functie, zodat het een offset parameter zou accepteren. Als u wilt schrijven het cijfer op de eerste positie, is de offset -1. Het derde standpunt is + 3 en de laatste positie is + 6. Mijn code is waarschijnlijk vrij inefficiënt, maar dit deel werkt goed.
4. het uur is eenvoudig te parsen van de functie van de timeFormat12() van de Time.h-bibliotheek. Het alleen lastige deel is het verkrijgen van de twee delen van de notulen. Het eerste cijfer van de notulen kan worden verkregen bij eenvoudige integer divisie door 10. Dit zal afkappen van het tweede cijfer en alleen het gedeelte van de tien minuten terug te keren. Bijvoorbeeld 59/10 = 5 in de integer deling. Voor het tweede cijfer van de notulen gebruikt u de functie mod om terug te keren de bleef na het delen door 10. Dus, 59% 10 = 9.
5. Ik realiseer me de code van de klok kon hebben geschreven veel efficiënter, en als iemand stoort te verbeteren, ik zou graag zien dat het goed gedaan. Ik deed het beste wat die ik kon voor een man die niet een ingenieur of programmeur is. Alles wat ik kan echt zeggen over mijn code is dat het lijkt te werken.
#include < Time.h >
int kolom [] = {0,1,2,3,4,5,6,7,8,9,10,11};
int rij [] = {14,15,16,17,18};
VOID Setup
{
setTime(9,27,0,27,7,2012);
for (int i = 0; ik < 13; i ++) {}
pinMode(column[i],OUTPUT);
digitalWrite(column[i],LOW);
}
for (int j = 0; j < 5; j ++) {}
pinMode(row[j],OUTPUT);
digitalWrite(row[j],HIGH);
}
}
void loop () {}
digitalWrite(column[11],HIGH);
digitalWrite(column[12],HIGH);
digitalWrite(column[11],LOW);
digitalWrite(column[12],LOW);
schakelaar (hourFormat12()) {}
Case 1:
One(0);
breken;
Case 2:
Two(0);
breken;
Case 3:
Three(0);
breken;
Case 4:
Four(0);
breken;
Case 5:
Five(0);
breken;
Case 6:
Six(0);
breken;
Case 7:
Seven(0);
breken;
zaak 8:
Eight(0);
breken;
Case 9:
Nine(0);
breken;
zaak 10:
One(-3);
Zero(0);
breken;
zaak 11:
One(-3);
One(0);
breken;
zaak 12:
One(-3);
Two(0);
breken;
}
schakelaar ((minute()/10)) {}
Case 0:
Zero(3);
breken;
Case 1:
One(3);
breken;
Case 2:
Two(3);
breken;
Case 3:
drie (3);
breken;
Case 4:
Four(3);
breken;
Case 5:
Five(3);
breken;
}
schakelaar (minute()%10) {}
Case 0:
Zero(6);
breken;
Case 1:
One(6);
breken;
Case 2:
Two(6);
breken;
Case 3:
Three(6);
breken;
Case 4:
Four(6);
breken;
Case 5:
Five(6);
breken;
Case 6:
Six(6);
breken;
Case 7:
Seven(6);
breken;
zaak 8:
Eight(6);
breken;
Case 9:
Nine(6);
breken;
Als niets anders overeenkomt met, doen de standaard
Standaard is optioneel
}
}
ongeldig allOn() {}
voor (int x = 0; x < 5; x ++) {}
voor (int y = 0; y < 13; y ++) {}
digitalWrite(row[x],LOW);
digitalWrite(column[y],HIGH);
}
}
}
ongeldig allOff() {}
voor (int x = 0; x < 5; x ++) {}
voor (int y = 0; y < 13; y ++) {}
digitalWrite(row[x],HIGH);
digitalWrite(column[y],LOW);
}
}
}
VOID zero(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[1],HIGH);
}
VOID one(int x) {}
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
}
VOID two(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
}
VOID three(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
}
VOID four(int x) {}
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
}
VOID five(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
}
VOID six(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[1],HIGH);
}
VOID seven(int x) {}
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
}
VOID eight(int x) {}
digitalWrite(column[1+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
}
VOID nine(int x) {}
digitalWrite(column[3+x],HIGH);
digitalWrite(row[0],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[0],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[1],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[1],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[1+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[1+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[2],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[2],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[3],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[3],HIGH);
digitalWrite(column[2+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[2+x],LOW);
digitalWrite(row[4],HIGH);
digitalWrite(column[3+x],HIGH);
digitalWrite(row[4],LOW);
digitalWrite(column[3+x],LOW);
digitalWrite(row[4],HIGH);
}