Etape 16 : Le code
Commentaires expliquent presque tout quoi.
Le code :
#include < AFMotor.h >
#include < Servo.h >
goupille de résistance photo
int LDR = 0 ;
moteurs
Servo myServo ;
AF_DCMotor centralMotor (2, MOTOR12_64KHZ) ;
AF_DCMotor artMotor(1,MOTOR12_64KHZ) ;
axe servo et lumière variable
int servoPin = 9 ;
int lightread = 0 ;
Contrôles de l’acryliques
//----------------------------------------------------------
Sub AcrylicClockWise()
{
centralMotor.run(FORWARD) ;
Delay(300) ;
}
Sub AcrylicCounterClockWise()
{
centralMotor.run(BACKWARD) ;
}
Sub AcrylicStop()
{
centralMotor.run(RELEASE) ;
}
//----------------------------------------------------------
Contrôles de l’Artemis
//----------------------------------------------------------
Sub ArtemisStart()
{
artMotor.run(FORWARD) ;
}
Sub ArtemisStop()
{
artMotor.run(RELEASE) ;
}
//----------------------------------------------------------
Contrôles de Apollo
//----------------------------------------------------------
Sub ApolloClockWise()
{
myServo.attach(servoPin) ;
myServo.write(97) ;
}
Sub ApolloCounterClockWise()
{
myServo.attach(servoPin) ;
myServo.write(112) ;
}
Sub ApolloStop()
{
myServo.detach() ;
}
//-----------------------------------------------------------
void setup()
{
définir le mode de la broche à l’entrée
pinMode (entrée, LDR) ;
Serial.Begin(9600) ;
régler les vitesses du moteur
centralMotor.setSpeed(40) ;
artMotor.setSpeed(40) ;
}
void loop()
{
aiguilles d’acrylique tout le temps
AcrylicClockWise() ;
arrêter à intervalles réguliers
AcrylicStop() ;
lire la lumière dans variable
lightread = analogRead(LDR) ;
si légèrement beaucoup est ensuite défini Apollon pour faire tourner et arrêter artemis
if(lightread<700)
{
centralMotor.setSpeed(40) ;
ArtemisStop() ;
ApolloClockWise() ;
}
d’autre
{
d’autre ensemble artemis pour aller et apollo pour arrêter
centralMotor.setSpeed(40) ;
ApolloStop() ;
ArtemisStart() ;
}
}