Bonjour j'aimerais que vous me donner le code svp pour que puisse le faire pour mon robot merci
Et j'es paire que vous me dirais oui
PS:je peut le faire mais je suis trop nul en programation
Salut, dsl pour le temps a répondre ( une semaine de vacance ^^), pour moi il y a pas de souci un forum a pour base le partage ( ma vision des choses XD,) pour le code le voici ( j'ai rajouter une petite lampe verte de puis le temps ^^):
#include <Servo.h> //Déclaration des fonctions void rechercher_lumiere(void); unsigned int read_capteur_write_servo(unsigned char, char); // Déclaration des variables #define pas_servo 5 // le servomoteur aura un pas de 5degrés unsigned int R_valeur=0; Servo SnootServo; unsigned int position_servo=0, position_min=0; unsigned int value_capteur=0,value_min=4096; unsigned char angle_min=0, angle_max =180; // Déclaration des pins reliées aux éléments const char pin_lampe =2; const char pin_moteur =9; const char pin_capteur =A0; // Configuration void setup(void) { pinMode(pin_lampe,OUTPUT); pinMode(pin_capteur,INPUT); pinMode(pin_moteur,OUTPUT); SnootServo.attach(9); delay(100); rechercher_lumiere(); digitalWrite(pin_lampe,LOW); } // MAIN void loop(void) { // Faire une acquisition de 1 échantillon, // en déplacant le capteur de 0 pas value_capteur=read_capteur_write_servo(1,0); //Si la valeur mesurée est plus grande que la dernière valeur if(value_capteur>(value_min+20) ) { //Allumer la lampe digitalWrite(pin_lampe,HIGH); delay(2000); //Refaire une nouvelle capture avec 2 échantillons value_capteur=read_capteur_write_servo(2,0); //Si c'est toujours supérieur : rechercher le meilleur angle if(value_capteur>(value_min+20) ) { value_min=value_capteur; rechercher_lumiere(); } } //Une fois l'angle trouvé : éteindre la lampe digitalWrite(pin_lampe,LOW); } //Sous-routines void rechercher_lumiere(void) { //Cette fonction sert à faire un balayage complet du servo, //en faisant l'acquisition des valeurs pour chaque angle, //et en déterminant si on vient de trouver la valeur max ou non //l'angle est incrémenté à chaque fois de la valeur du pas unsigned char maximum_lumiere; for(position_servo=angle_min; position_servo <angle_max;position_servo+=pas_servo) { value_capteur=read_capteur_write_servo(2,0); if(value_capteur<value_min) { value_min=value_capteur; maximum_lumiere=position_servo; } } position_servo=maximum_lumiere; read_capteur_write_servo(0,0); } unsigned int read_capteur_write_servo(unsigned char nombre_lecture, char angle_servo) { //Cette fonction sert à faire tourner le servo d'un multiple de son pas //Elle sert également à faire des relevés de la photorésistance //Elle permet de faire la moyenne sur 1, 10 jusqu'à 64 relevés, //le nombre de relevés maximum possible est divisé par l'amplification capteur unsigned int valeur =0; unsigned char indice; unsigned char amplification_capteur=4; SnootServo.write(position_servo+angle_servo); delay(100); for(indice=1;indice <= nombre_lecture; indice++) { valeur+=(analogRead(pin_capteur)*amplification_capteur); } valeur/=nombre_lecture; return (valeur); }
donne de tes nouvelles une fois la tête réalisé AVEC PHOTOS xd . Bon courage