Hur göra "Föraktliga Me" bomba sängar (4 / 7 steg)
Steg 4: Barnen vakna
Vi kan göra detta med relativt enkla kretsar med populära Arduino. Du kan få några bra tutorials på ladyada.org eller arduino.cc. Koden är en blandning mellan grundläggande ljussensor upptäckt och enkel servo rörelse. Det finns nedan. En anteckning om koden nedan. Vi fick två olika storlek servon, av någon anledning rörelsen av dessa är olika så en modifierad intervallet för mindre servo för att användas. Viktigt är servo flyttar från vågrät till lodrät. Detta kan innebära måste du antingen spela med värdena i koden eller servo armen faktiska ställning.
Demo:
Kod:
#include < Servo.h > servo grejer lätta grejer void setup() Count = 0; void loop()
#include < stdio.h >
Servo myservo; skapa objekt för att styra en servo servo
maximalt åtta servo objekt kan skapas
Servo smallservo;
int pos = 0; variabel att lagra servo position
int wakeUp = 0; variabel att säga om kid bör vara upp eller inte 0: ner 1: upp
int val = 0; variabel för att lagra värdet kommer från sensorn
int antal;
{
Serial.BEGIN(9600);
servo grejer
myservo.attach(9); tillmäter objektet servo servo på pin 9
smallservo.attach(13);
POS = 110.
lätta grejer
pinMode (A2, indata); förklara LDR som indata
}
{
greve ++;
sitta i sängen
IF(wakeUp == 1)
{
för (pos, pos < 179, pos + = 1) / / går från 0 grader till 180 grader
{/ / i steg om 1 grad
myservo.write(POS); berätta servo gå för att placera i variabel "pos"
smallservo.write(POS-70);
Delay(15); Waits 15 MS för servo att nå ställning
}
}
fastställa
IF(wakeUp == 0)
{
för (pos, pos > = 110; pos-= 1) / / går från 180 grader till 0 grader
{
myservo.write(POS); berätta servo gå för att placera i variabel "pos"
smallservo.write(POS-70);
Delay(15); Waits 15 MS för servo att nå ställning
}
}
ljussensor grejer
Val = analogRead(A2);
Serial.Print ("ljus värde =");
Serial.println(val);
om (val > 800) //change baserad på omgivande ljuset nivåer
{
wakeUp = 1;
}
annat
{
wakeUp = 0;
}
Delay(1000);
}