first commit

This commit is contained in:
Jérôme Delacotte
2025-03-06 11:15:32 +01:00
commit 7b30d6e298
5276 changed files with 2108927 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
/*
* Commande d'un servo moteur en plusieurs séquences.
* Clignotement de la Led onBoar:
* - rapide en début de programme.
* - lente en entre les séquences.
* - fixe en fin de programme
*
* Commande servo à l'aide de servo.h et
* seulement sur les pin 9 ou pin 10.
*
*/
#include <Servo.h>
Servo monServo;
int pos = 0;
const int pinLed = 13; // Led sur le board
const long blinkTimeMs = 2000; // temps de clignotement de la led (2 sec)
const int FAST = 50; // interval entre deux clignotement (rapide)
const int SLOW = 150; // interval entre deux clignotement (lent)
const int FIXED = -1; // valeur spécial pour éclairage continu
void setup(){
pinMode( pinLed, OUTPUT );
// Attacher la pin 9 à l'objet servo.
// ATTN: le code initialise l'angle à 90 degrés par défaut.
monServo.attach(9);
// remettre l'angle à 0 degrés
monServo.write( 0 );
}
void loop(){
// Faire clignoter led 13 sur le board.
// Démarrage de séquence --> clignotement rapide
blinkBoardLed( FAST );
// Passer de 0 a 180° par angle de 10 degré
for( int iAngle=0; iAngle<= 360; iAngle+=10 )
{
monServo.write(iAngle);
delay( 250 );
}
// Clignotement lent entre deux séquences
blinkBoardLed( SLOW );
// Angle décroissant progressif
for( int iAngle = 360; iAngle>=0; iAngle-- )
{
monServo.write( iAngle );
delay( 10 );
}
// Clignotement lent entre deux séquences
blinkBoardLed( SLOW );
// Angle arbitraire de 45 degrés
monServo.write( 0 );
// Find de séquence -> eclairage fixe
blinkBoardLed( FIXED );
}
/* Fait clignoter la led 13 sur le board pendant 2 secondes
*
* interval: Interval de clignotement. -1 pour fixe.
*/
void blinkBoardLed( int interval ){
long startMillis = millis();
// temps que pas 2 sec d'écoulée
while( (millis() - startMillis) < blinkTimeMs ) {
switch( interval ){
case -1 : // Cas spécial, allumage fixe
digitalWrite( pinLed, HIGH );
delay( blinkTimeMs ); // attendre le temps total
digitalWrite( pinLed, LOW );
break;
default:
// faire clignoter
digitalWrite( pinLed, HIGH );
delay( interval );
digitalWrite( pinLed, LOW );
delay( interval );
} // eof Case
} // eof While
}