IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Suiveur solaire pour pompage


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2018
    Messages : 7
    Par défaut Suiveur solaire pour pompage
    Bonne année à tous, merci de votre accueil. Nouveau sur ce forum je débute la programmation sur Arduino uno et cherche quelques conseils. j’ai étudié la chose grâce au super doc du célèbre Eskimon puis quelques recherches ici. Très engagé dans le développement des énergies renouvelables, je démarre un projet de suiveur solaire pour du photovoltaïque sur pompe, mais papy de 67ans j’avoue être un peu limite. J’ai bidouillé un code que je vous soumettrai si vous avez l’obligeance de m’aider … Pour l’heure je rassemble le matériel (LDR , L298N, moteurs CC en 12v, batterie) et "bricole" le montage mécanique. A très vite donc. MB

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 497
    Billets dans le blog
    1
    Par défaut
    Salut papy,

    C'est un forum d'entre-aide, n'hésite pas à poser tes questions et à montrer du code

    @+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2018
    Messages : 7
    Par défaut suiveur papy suite
    Super sympa,
    je donne ici le code que j'ai médité !
    il concerne mon projet: 3 LdRs en triangle captant la lumière et informant l'arduino Uno en Analogique. Puis un module Pont H L298N commande 2 moteurs CC en 12v en 2 sens de rotation pour déplacer le panneau photovoltaïque face au soleil. j'ajoute un écart pour éviter le sautillement et un minimum de luminosité.
    Bref - Après test à vide ça à l'air de coller , faut voir la vitesse moteur et le couple nécessaire; je monte des vérins linéaires à tige filetées...
    Peut-être un autre système serait plus judicieux ? Mais j'ai déjà ces moteurs...Il leur faut bien 12 v aussi j'ai cru comprendre qu'il fallait, sur le L298N ôter le Jumper du Régul 5V, mais comment est alimenté le module, la Led est éteinte?
    Merci de vos lumières (sans jeu de mot !) Cordlt. MB.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    // Trackeur solaire - papy 2018
     
    int PinLdrEst = A0;             // 3 LdRs capteurs de lumière
    int PinLdrOuest = A1;
    int PinLdrHauteur = A2;
    int Ecart = 40;
     
                                    // 2 moteurs horizontal Est/Ouest et vertical Haut/Bas
    //Mot H
    const int ENA = 10;
    const int IN1 = 9;
    const int IN2 = 8;
    //Mot V
    const int ENB = 5;
    const int IN3 = 6;
    const int IN4 = 7;
    int lumi = 900;           // intensité lumineuse minimum
     
    void setup()  
    {
      Serial.begin(9600);         // lecture écran
      pinMode(PinLdrEst,INPUT);   // entrées / sorties Ldrs et moteurs
      pinMode(PinLdrOuest,INPUT);
      pinMode(PinLdrHauteur,INPUT);
      pinMode(ENA, OUTPUT);  
      pinMode(ENB, OUTPUT);
      pinMode(IN1, OUTPUT);
      pinMode(IN2, OUTPUT);
      pinMode(IN3, OUTPUT);
      pinMode(IN4, OUTPUT);
     
    }
      void loop()  
      {
      int ValLdrEst = analogRead(PinLdrEst);     // lire et calculer les valeurs                     
      int ValLdrOuest = analogRead(PinLdrOuest); 
      int ValLdrHauteur = analogRead(PinLdrHauteur); 
      int Bas = (ValLdrEst + ValLdrOuest) / 2;
     
      Serial.print("   H "); Serial.println(ValLdrHauteur);
      Serial.print("   E "); Serial.println(ValLdrEst);
      Serial.print("   O "); Serial.println(ValLdrOuest);
      Serial.print("   B "); Serial.println(Bas);
     
      int test = ValLdrEst + ValLdrOuest + ValLdrHauteur;  // établit la luminosité ambiante
      test = test / 3;                    
      Serial.print("  test "); 
      Serial.print (test);
      Serial.print("  ");
     
      int Diff1 = ValLdrEst - ValLdrOuest;
      Diff1 = abs(Diff1);
      int Diff2 = ValLdrHauteur - Bas;
      Diff2 = abs(Diff2);
     
     if (test <= lumi || Diff1 <= Ecart || Diff2 <= Ecart)
     { 
        digitalWrite(ENA, LOW);  // les 2 Moteurs sont arrétés !
        digitalWrite(ENB, LOW);
     }         
     if (test >= lumi && ValLdrEst < ValLdrOuest && Diff1 > Ecart)
     {
        digitalWrite(IN1, LOW);  // Moteur H tourne dans un sens
        digitalWrite(IN2, HIGH);
        analogWrite(ENA, 130);
        Serial.println(" Est < Ouest");
     }
    else if (test >= lumi && ValLdrEst > ValLdrOuest && Diff1 > Ecart)
     { 
        digitalWrite(IN1, HIGH);  // Moteur H tourne dans l'autre sens
        digitalWrite(IN2, LOW);
        analogWrite(ENA, 130);
        Serial.println(" Est > Ouest ");
     } 
     
      // SENS vertical  
      if(test >= lumi && ValLdrHauteur < Bas && Diff2 > Ecart)
     {
        digitalWrite(IN3, LOW);  // Moteur V tourne dans un sens
        digitalWrite(IN4, HIGH);
        analogWrite(ENB, 120);
        Serial.println(" Hauteur < Bas");  
     }
    else if (test >= lumi && ValLdrHauteur > Bas && Diff2 > Ecart)
     {
        digitalWrite(IN3, HIGH);  // Moteur V tourne dans l'autre sens
        digitalWrite(IN4, LOW);
        analogWrite(ENB, 120);
        Serial.println(" Hauteur > Bas ");
     }
       delay (1000);
     }

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 256
    Billets dans le blog
    48
    Par défaut
    Hello,

    La doc précise que jusqu'à 12V, tu peux laisser le jumper pour activer le régulateur 5V et alimenter le circuit. Et dans ce cas, tu disposes éventuellement d'une sortie +5V sur le circuit du l298N pour alimenter autre chose.

    Si tu alimentes avec une tension supérieure à 12V (ce qui ne semble pas être ton cas), il faut effectivement retirer le jumper pour ne pas fatiguer le régulateur. Dans ce cas, il faut fournir du 5V au connecteur +5V du circuit pour l'alimenter correctement.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2018
    Messages : 7
    Par défaut
    Ok je vois. Merci.
    Même si ça semble évident à posteriori, je n'ai trouvé aucune précision de ce genre sur le branchement 5V. En fait le plot +5V Output devient Input en 12v et plus .
    Bien, bien , toutefois, sur la charge batterie par du photovoltaïque le régulateur autorise jusqu'à 13,8V ou dépasse allègrement le 12V, aussi je m'inquiète un peu de la connexion avec jumper...quelle limite est acceptable dans la durée, mon installation devra tourner des mois !
    Que pensez-vous de mon Code ?
    J'apprécie vraiment votre aide - J'apprends beaucoup; Merci encore.

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 159
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 159
    Par défaut
    Salut,
    Citation Envoyé par zwingli84 Voir le message
    quelle limite est acceptable dans la durée, mon installation devra tourner des mois !
    Si ce n'est des années !

    Comme d'habitude, le cas normal est simple à coder : c'est le matin, le soleil se lève et le détecteur va faire suivre le capteur au fur et à mesure de la course du soleil.
    Fastoche.
    Ce qui est compliqué (comme toujours en info.) c'est de gérer les cas particuliers :
    • il pleut : la lumière faible est identique sur les 3 cellules, comment ton code réagit-il ("ctcri" dans le reste de mon texte) ?
    • un hélicoptère (j'aurais pu dire un avion mais ça aurait mis moins de temps) occulte une cellule, ctcri ?
    • une chiure d'oiseau tombe sur une (ou des) cellule(s), ctcri ?
    • une cellule claque (panne hardware), en cc ou toujours ouverte, ctcri ?
    • une éclipse ça arrive, ctcri ?
    • etc.

    Et je ne parle pas de la corrosion des fils, c'est du bête hardware mais je l'ai constaté en démontant les gadgets "lampe solaire de jardin" qu'on trouve dans les déchetteries...

    Voilà, désolé de doucher l'enthousiasme, mais ce sont des réflexions que je m'étais faites à une lointaine époque où j'avais aussi pensé à ça, sans finaliser.

    Un dernier mot : j'ai vu que la boucle tournait sur 1 seconde. Ça ne serait pas mieux sur 5 minutes (au pif -- à voir), histoire d'activer les moteurs pour un vrai déplacement ?
    Juste une idée comme ça...

Discussions similaires

  1. [Python 3.X] Programme pour le dimensionnement solaire
    Par rodicus dans le forum Général Python
    Réponses: 6
    Dernier message: 15/01/2015, 13h36
  2. Suiveur solaire ; réalisation du diagramme
    Par Srygor dans le forum LabVIEW
    Réponses: 6
    Dernier message: 08/04/2013, 15h11
  3. Réponses: 36
    Dernier message: 18/07/2011, 18h24
  4. Réponses: 11
    Dernier message: 28/07/2009, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo