/*=======================================================================
Séquence de mise a l'eau d'une embarcation
la séquence est commandée par une impulsion envoyée
par une voie de la radiocommande
=======================================================================*/
#include <Servo.h>
int signal = 2; // signal recepteur
int val1; //valeur du signal recepteur
Servo servom ; // servo monteé embarcation
int pos = 0;
int posA = 120; // position embarcation sur pont
int posB = 180; // position embarcation en haut
int posC = 0; // position embarcation dans l'eau
int vitesse = 50; // vitesse de montee et de descente embarcation
//=========================================================================
Servo servor ; // servo rotation grue
//
int prA = 0; // position rotation sur mer
int prB = 90; // position rotation sur pont
int vr = 50; // vitesse de rotation
//=========================================================================
void setup()
{
servom.attach(3); // attaches le servo au pin 3
servor.attach(4); // attaches le servo au pin 4
pinMode(signal, INPUT); // signal entrée
}
//=========================================================================
void loop()
{
servor.write(prB); // met l'embarcation sur le pont
servom.write(posA); // met l'embarcation sur le pont
//=============================== monte embarcation==========================================
val1 = pulseIn(signal, HIGH); //Lire pulse1 et de le stocker en tant que val1
if (val1 < 1400 && val1 > 10 )
{
for(pos = posA; pos < posB; pos += 1)
{
servom.write(pos);
delay(vitesse);
}
//===============================rotation grue==========================================
for(pos = prB; pos > prA; pos -= 1)
{
servor.write(pos);
delay(vr);
}
//============================ descente embarcation a la mer ============================================
for(pos = posB; pos >= posC; pos-=1)
{
servom.write(pos);
delay(vitesse);
}
//=========================================================================
delay(6000); // attente avant remontee
//============================ montee zodiac =============================================
for(pos = posC; pos < posB; pos += 1)
{
servom.write(pos);
delay(vitesse);
}
//===========================rotation grue==============================================
for(pos = prA; pos < prB; pos += 1)
{
servor.write(pos);
delay(vr);
}
//==================== pose embarcation sur le pont ============================================
for(pos = posB; pos >= posA; pos-=1)
{
servom.write(pos);
delay(vitesse);
}
}
}
//=============================== FIN DE PROGRAMME ==========================================