Bonjour à tous, je suis actuellement élève de terminale STI2D nous avons un projet de fin d'année qui est de contrôler une porte dans une résidence sécuriser. La porte est déverrouillable à l'aide d'un badge pour les administrateurs et un code pour les invités. Ma partie consiste à ouvrir et fermer la porte grâce à un vérin et j'ai un ami qui devait s'occuper d'un capteur infra-rouge qui réouvre la porte si quelq'un n'était par encore passer mais c'est ami est partie donc je dois ajouter une variable sur mon programme qui permet juste de reouvrir la porte à sa place mais je n'y arrive pas s'il vous plait j'aimerai avoir un peu d'aide s'il vous plait. J'utilise un Ardumoto motor shield (SparkFun Ardumoto - Motor Driver Shield - DEV-14129 - SparkFun Electronics)
et un vérin L12-XT-50 (8 bonnes raisons d'utiliser la gamme Lego Mindstorms dans vos cours). j'ai fait mon programme qui sert à l'ouverture et la fermeture de la porte:
// Depending on how you wired your motors, you may need to swap.
#define CW 0
#define CCW 1
// Motor definitions to make life easier:
#define MOTOR_A 0
const byte PWMA = 3; // PWM control (speed) for motor A
const byte DIRA = 12; // Direction control for motor A
void setup()
{
setupArdumoto(); // Set all pins as outputs
}
void loop()
{
// Drive motor A (and only motor A) at various speeds, then stop.
driveArdumoto(MOTOR_A, CCW, 255); // Set motor A to CCW at max
delay(20000); // Motor A will spin as set for 1 second
driveArdumoto(MOTOR_A, CW, 127); // Set motor A to CW at half
delay(20000); // Motor A will keep trucking for 1 second
stopArdumoto(MOTOR_A); // STOP motor A
driveArdumoto(MOTOR_A, CW, 255);
delay(10000); // Drive forward for a second
// Now go backwards at half that speed:
driveArdumoto(MOTOR_A, CCW, 127); // Motor A at max speed.
}
void driveArdumoto(byte motor, byte dir, byte spd)
{
if (motor == MOTOR_A)
{
digitalWrite(DIRA, dir);
analogWrite(PWMA, spd);
}
}
void stopArdumoto(byte motor)
{
driveArdumoto(motor, 0, 0);
}
// setupArdumoto initialize all pins
void setupArdumoto()
{
pinMode(PWMA, OUTPUT);
pinMode(DIRA, OUTPUT);
// Initialize all pins as low:
digitalWrite(PWMA, LOW);
digitalWrite(DIRA, LOW);
}