Död råtta (21 / 24 steg)
Steg 21: Kodad råttan
Till summan saker upp, här är vad jag ville råttan att göra, lätt effect-wise:
-Ögonen behövde vara blå punkter, dvs enda blå lysdioder. De bör ändra i intensitet över tid och samtidigt inte flimmer, och de bör "blink" (inaktivera) då och då. Blinkar två gånger på måfå skulle vara trevligt, och så skulle vara blinka, dvs blinkar bara ett öga.
-Hourclass bör skimrande på något sätt, om möjligt en uneartly lätta inbäddad i sanden.
Jag började med två lysdioder på PWM stift och programmerat något för subtila ändringen i ljusstyrka. Sedan la jag blinkar med en slumpmässig elementet, och efter att övervinna ett tekniskt fel som orsakade ögonen att flash upprepade gånger efter ett första ögonblick bestämde jag mig för att jag verkligen inte ville råttan att wink trots allt.
Med tiden har förstärkt jag koden för att göra den blinkande smidigare och Slumpa de subtila skiftet.
För den skimrande bestämde jag mig att använda ett skiftregister, åtminstone i början. Jag trodde detta skulle tillåta mig att sätta ett antal lampor i timglaset med mindre kablar. Det var ett trevligt sätt att träna, men jag skrotade idén på en skärbräda. Det kan spara trådar, men jag skulle använda en mikrokontroller med cirka 10 stift oanvända.
Så jag bestämde mig att hoppa över skiftregister och använda lamporna direkt, vilket gör att jag kan dra nytta av PWM för fler effekter, också.
Det största problemet där var att bestämma vilken färg du använder. I filmer och böcker i allmänhet, finns det ett problem. Visst, det finns massor av bilder och beskrivningar av död (han är en av de bästa karaktärerna, tro mig), och timglas är dagens, också, men det är... Dödens domän är
.
Going av vad jag hade var inte möjligt heller, eftersom jag har fortfarande ett ganska stort lager av lysdioder i olika färger - de billiga sådana, men de tänds och som är det som räknas. Så hade jag grön, röd, blå, gul, orange... Att hålla på att ögonen är blå tanken grön skulle vara ett bra val, men då en liten röst i mitt huvud - en skälla mig för att använda en förskjutning registren i första hand när jag kunde ha PWM istället - sa "Varför valde?".
Så jag bestämde mig att gå för grönt som blinkande lampor, enbart på/av, och lägga till andra färger som skulle blekna, främst rött och gult. De 2-3 lysdioder skulle göra några slumpmässiga up-and-down ljusreglering medan 5-7 grön som skulle blinka på måfå.
Jag satte ihop något som det och efter några spela arround, bestämde jag mig för att mitt beslut hade varit felaktig. Så bytte jag till grönt och orange, mer grönt än orange, med blekning och blinkande lysdioder i båda färger.
Och sedan kom det som jag ska be om ursäkt för, att du läsa alla att bara för att berätta att det i slutet, att vara missnöjd med mina alternativ och hur de såg ut, jag skrotade ljuset för timglaset helt.
Så, här är koden jag använde för råttan. Allt det gör det gör det blinka.
-----
int auge1 = 6; PIN-koden som ögonen är kopplade till
int auge2 = 5;
int auge_hell = 100; Hur ljus LED är
int auge_fade = 4; Hur många poäng att blekna LED av
int auge_hellmax = 250;
int auge_hellmin = 80.
int blinkytime = 0;
int auge_hellalt = 0;
void setup() {
pinMode (auge1, produktionen);
pinMode (auge2, produktionen);
}
void loop() {
analogWrite (auge1, auge_hell);
analogWrite (auge2, auge_hell);
om (blinkytime == 0 & & random(175) == 1) {
blinkytime = random (4, 14);
auge_hellalt = auge_hell;
auge_hell = 0;
}
växel (blinkytime) {
fall 0:
auge_hell = auge_hell auge_fade;
om (auge_hell < = auge_hellmin) {
auge_fade = - auge_fade;
auge_hellmin = random(50,100);
}
annars om (auge_hell > = auge_hellmax) {
auge_fade = - auge_fade;
auge_hellmax = random(120,250);
}
bryta;
fall 1:
auge_hell = auge_hellalt;
blinkytime = 0;
bryta;
standard:
blinkytime--;
bryta;
}
Delay(60);
}