Elektroniska Dream Catcher (2 / 2 steg)
Steg 2: Koden...
#define orangePin 11
#define redPin 9
#define whitePin 10
#define SPKpin 3
int pinChange;
flyktiga int BadDreamsCount, DCounter;
void setup() {
pinMode (orangePin, produktionen);
pinMode (redPin, produktionen);
pinMode (whitePin, produktionen);
pinMode (SPKpin, OUTPUT);
pinMode (2, INPUT_PULLUP);
Serial.BEGIN (9600);
randomSeed(millis());
BadDreamsCount = random (1, 5);
}
void loop() {
randomSeed(millis());
dreamsScan();
om (random (1100) < = 10 & & DCounter < = BadDreamsCount) {
CND();
DCounter ++;
Serial.Print ("BadDreamsCount =");
Serial.Print (BadDreamsCount);
Serial.Print ("DCounter =");
Serial.println (DCounter);
}
Zero();
noTone (SPKpin);
}
Fånga och förstöra animation förfarande
void CND() {
randomSeed(millis());
Stängning på drömmen
för (int en = 200, en > = 30; en = a-10) {
Serial.println a.
digitalWrite (orangePin, hög);
digitalWrite (redPin, låg);
tonen (SPKpin, 500-en);
dröjsmål a.
digitalWrite (orangePin, låg);
digitalWrite (redPin, hög);
dröjsmål a.
noTone(SPKpin);
}
Håller den
tonen (SPKpin, 300, 4000);
för (int en = 1; en < = 50; a ++) {
digitalWrite (orangePin, hög);
digitalWrite (redPin, låg);
fördröjning (30);
digitalWrite (orangePin, låg);
digitalWrite (redPin, hög);
fördröjning (30);
noTone (SPKpin);
}
ZAPPA det
för (int en = 1; en < = random (10, 50); a ++) {
analogWrite (whitePin, random (10, 255));
tonen (SPKpin, random (20,300));
fördröjning (30);
}
noTone (SPKpin);
noll ();
}
Stänga av alla lampor
void zero() {
digitalWrite (orangePin, låg);
digitalWrite (redPin, låg);
digitalWrite (whitePin, låg);
}
Scan deam animation förfarande
void dreamsScan() {
tonen (SPKpin, 2000, 100);
för (int jag = 9; jag < = 11; i ++) {
/ * digitalWrite (i,! digitalRead(i));
digitalWrite (i,! digitalRead(i));
digitalWrite (i,! digitalRead(i));
Serial.println (i);
fördröjning (200); */
digitalWrite (orangePin, hög);
digitalWrite (redPin, låg);
fördröjning (400).
digitalWrite (orangePin, låg);
digitalWrite (redPin, hög);
fördröjning (400).
}
}