Artemis & Apollo: Dans med Arduino och ljus upptäckt (16 / 18 steg)
Steg 16: Koden
kommentarer förklara vad de flesta allt gör.
Koden:
#include < AFMotor.h >
#include < Servo.h >
Foto resistor pin
int LDR = 0;
motorer
Servo myServo;
AF_DCMotor centralMotor (2, MOTOR12_64KHZ).
AF_DCMotor artMotor(1,MOTOR12_64KHZ);
servo pin och ljus variabel
int servoPin = 9;
int lightread = 0;
Akryl kontroller
//----------------------------------------------------------
void AcrylicClockWise()
{
centralMotor.run(FORWARD);
Delay(300);
}
void AcrylicCounterClockWise()
{
centralMotor.run(BACKWARD);
}
void AcrylicStop()
{
centralMotor.run(RELEASE);
}
//----------------------------------------------------------
Artemis kontroller
//----------------------------------------------------------
void ArtemisStart()
{
artMotor.run(FORWARD);
}
void ArtemisStop()
{
artMotor.run(RELEASE);
}
//----------------------------------------------------------
Apollo kontroller
//----------------------------------------------------------
void ApolloClockWise()
{
myServo.attach(servoPin);
myServo.write(97);
}
void ApolloCounterClockWise()
{
myServo.attach(servoPin);
myServo.write(112);
}
void ApolloStop()
{
myServo.detach();
}
//-----------------------------------------------------------
void setup()
{
Ange pin-läge att mata in
pinMode (LDR, indata);
Serial.BEGIN(9600);
ställa in motor hastigheter
centralMotor.setSpeed(40);
artMotor.setSpeed(40);
}
void loop()
{
Vrid akryl medurs hela tiden
AcrylicClockWise();
sluta med jämna mellanrum
AcrylicStop();
läsa in ljuset i variabeln
lightread = analogRead(LDR);
om ljus anges mycket då apollo att snurra och stoppa artemis
IF(lightread<700)
{
centralMotor.setSpeed(40);
ArtemisStop();
ApolloClockWise();
}
annat
{
annan uppsättning artemis gå och apollo att stoppa
centralMotor.setSpeed(40);
ApolloStop();
ArtemisStart();
}
}