Smart kudde... Hur man gör en väckarklocka kudde (10 / 10 steg)
Steg 10: Färdiga kudde och kod
/ * VARIABLER * /
int digPin [6] = {8, 9, 10, 11, 12}; Lysdioder / / 5 "Rundor" av LED är (leds ansluten till PIN 2 med ljus först, sedan LED'S
int vibePin = 7. VIBE STYRELSEN / /
int buzzPin = 4; LARM
int isOn = låg;
int isBuzzerOn = 0;
osignerade långa zeroCount = 0;
osignerade långa timestash = 0; Förra gången jag gjorde något.
/ * SETUP - initiera variabler. kör en gång. efter varje powerup/reset av LilyPad (mikro-controller) * /
void setup()
{
pinMode (digPin [0], produktionen);
pinMode (digPin [1], produktionen);
pinMode (digPin [2], produktionen);
pinMode (digPin [3], produktionen);
pinMode (digPin [4], produktionen);
pinMode (digPin [5], produktionen);
pinMode (vibePin, produktionen);
pinMode (buzzPin, ingång);
}
/ * LOOP - loopar consectively, att tillåta program att ändra och svara, aktivt styr LilyPad * /
void loop()
{
osignerade långa currTime = millis(); Få min aktuell tid / /--detta är den mekanism som vi använder för att göra något varje andra utan att använda en fördröjning
osignerade långa difTime = currTime - timestash; aktuell tid subtraheras från sparade tid att hitta skillnaden
Är summern på?
IF(digitalRead(buzzPin) > 0)
{
isBuzzerOn = 1;
zeroCount = 0;
} annat {
20 nollor?
zeroCount + = 1;
IF(zeroCount > 20)
{
isBuzzerOn = 0;
}
}
om (isBuzzerOn == 1) {
om (difTime > 1000) {
timestash = currTime; Jag har att lägga den aktuella tiden i timestash så jag starta om tidpunkten
difTime = 0;
VIBE STYRELSE
om (isOn == låg) {
isOn = hög;
digitalWrite (vibePin, hög);
} annat {
isOn = låg;
digitalWrite (vibePin, låg);
}
slå på alla lampor
digitalWrite (digPin [0], hög);
digitalWrite (digPin [1], hög);
digitalWrite (digPin [2], hög);
digitalWrite (digPin [3], hög);
digitalWrite (digPin [4], hög);
digitalWrite (digPin [5], hög);
}
}
--slutet av en andra sak
om (difTime > 100) {
digitalWrite (digPin [0], låg);
}
om (difTime > 200) {
digitalWrite (digPin [1], låg);
}
om (difTime > 300) {
digitalWrite (digPin [2], låg);
}
om (difTime > 400) {
digitalWrite (digPin [3], låg);
}
om (difTime > 500) {
digitalWrite (digPin [4], låg);
}
om (difTime > 600) {
digitalWrite (digPin [5], låg);
}
om (difTime > 700) {
digitalWrite (digPin [6], låg);
}
}