Hur göra "Föraktliga Me" bomba sängar (7 / 7 steg)
Steg 7: Full koden
#include < Servo.h >#include < stdio.h >
Servo bigServo;
Servo smallServo;
int SmallServoPin = A13;
int BigServoPin = A15;
int pos = 0;
int wakeUp = 0;
int moveBeds = 0;
int lightChange = 0;
int val = 0;
int antal;
int tid;
int BlackGreenPin = 24.
int RedBluePin = 22.
int lightThreshold = 500.
int steg = 70.
int stepDelay = 100;
void setup()
{
Serial.BEGIN(9600);
bigServo.attach(BigServoPin);
smallServo.attach(SmallServoPin);
POS = 110.
Count = 0;
PIN kontroller
pinMode (BlackGreenPin, OUTPUT);
pinMode (RedBluePin, OUTPUT);
pinMode (A2, indata);
}
void loop()
{
Serial.println(Serial.list());
Serial.println();
Val = analogRead(A2);
Serial.Print ("ljus värde =");
Serial.println(val);
IF(Val > lightThreshold)
{
wakeUp = 1;
IF(lightChange == 1)
{
moveBeds = 1;
lightChange = 0;
}
}
annat
{
wakeUp = 0;
IF(lightChange == 0)
{
moveBeds = 1;
lightChange = 1;
}
}
IF(wakeUp == 0)
{
för (pos, pos > = 110; pos-= 1)
{
bigServo.write(pos);
smallServo.write(pos-70);
Delay(15);
}
IF(moveBeds == 1)
{
moveBeds = 0;
Move(0);
}
}
IF(wakeUp == 1)
{
IF(moveBeds == 1)
{
moveBeds = 0;
Move(1);
}
för (pos, pos < 179, pos + = 1)
{
bigServo.write(pos);
smallServo.write(pos-70);
Delay(15);
}
}
Delay(1000);
}
void flytta (int upp)
{
om (upp == 1)
{
för (int jag = 0; jag < steg; i ++)
{
digitalWrite (BlackGreenPin, hög);
Delay(stepDelay);
digitalWrite (RedBluePin, låg);
Delay(stepDelay);
digitalWrite (BlackGreenPin, låg);
Delay(stepDelay);
digitalWrite (RedBluePin, hög);
Delay(stepDelay);
}
}
annars om (upp == 0)
{
för (int jag = 0; jag < steg; i ++)
{
digitalWrite (BlackGreenPin, hög);
Delay(stepDelay);
digitalWrite (RedBluePin, hög);
Delay(stepDelay);
digitalWrite (BlackGreenPin, låg);
Delay(stepDelay);
digitalWrite (RedBluePin, låg);
Delay(stepDelay);
}
}
annat
{
Serial.Print ("fel i flytta funktion. Oväntat värde - ");
Serial.println(up);
}
}