• Derniers Articles

    Créer votre porte de poulailler pour 12€ !!

    Bonjour à tous,

    Je vais présenter à travers ce blog comment créer une porte de poulailler qui s’ouvre automatiquement en fonction du soleil. Une porte de poulailler coûte dans le commerce environ 100€. Ici je vais vous montrer comment en créer une similaire pour seulement 12€ !!

    Dans le projet que je vais traiter, la porte s’ouvrira le matin à 9h et se fermera en fonction du soleil. Vous pourrez adapter ce projet en fonction de vos besoins. La partie purement électronique sera traitée dans cet article.

     Contexte:  Je possède 12 poules et mon père à l’intention de mettre un coq. La porte sert à l’empêcher de chanter et d’ameuter tout le quartier dès 6h du mat’. Je lui ai donc proposé de fabriquer toute la partie commande pour son moteur.

     

    Matériel nécessaire à la commande du moteur:

    - Un nano arduino    –> 4€ ( Aliexpress)

    - Une carte pour soudure –> 1€

    - Un L298N –> 4€

    - Deux borniers –> 1€

    - Un petit panneau solaire –> 2€

    -Un vieux moteur 12 V de récupération

     I- Introduction

    J’ai décidé après divers essais d’utiliser le nano arduino afin de gérer le soleil, l’envoi de commandes au moteur.

    Le nano arduino c’est quoi ?

    L’Arduino nano est un circuit imprimé en matière libre comprenant un Microcontroleur. Le Microcontrôleur c’est la petite puce noire avec plein de pattes. C’est un peu le cerveau d’un objet électronique, une version miniaturisée d’un circuit avec plein de composants. C’est aussi sur ce composant qu’est stocké le programme.

     

    Créer votre porte de poulailler pour 12€ !! ArduinoNanoFront_3_lg
    ArduinoNano

     

    Spécifications techniques

    Micro-contrôleur Atmel ATmega328
    Tension de fonctionnement (niveau logique) 5 V
    Tension d’alimentation (recommandée) 7-12 V
    Tension d’alimentation (maximum) 6-20 V
    E/S digitales 14 (dont 6 peuvent fournir une sortie PWM, notées par un trait blanc)
    E/S analogiques 8
    Courant disponible par pin E/S 40 mA
    Mémoire flash 32 KB (dont 2KB utilisés par le bootloader)
    SRAM 2 KB
    EEPROM 1 KB
    Vitesse d’horloge 16 MHz
    Dimensions 44mm x 18mm

    C’est bien beau tout ça mais qu’est ce que ça fait ?

    En vrai, beaucoup de choses. Les E/S analogiques permettent de récupérer des informations et envoyer des informations. Les E/S digitales permettent elles d’envoyer une sortie 0 ou 5V. Le PWM permet de faire varier par exemple la vitesse d’un moteur mais aussi l’intensité d’une lampe. Broches TX/RX (transmission/réception) permet de dialoguer avec d’autres composants ex:module radio-fréquence.

    II- Mise en place de l’arduino-nano

    Pour le contrôle de la lumière nous devons récupérer les infos du panneau solaire donc utilisation des E/S analogiques. J’ai choisi d’utiliser les broches D2 etD3 (choix perso).

    Contrôle du moteur:

    Pour contrôler un moteur avec un ampérage supérieur à 1A cela devient un peu plus compliqué… (Vous pouvez trouver l’indication d’ampérage sur le transformateur de votre moteur. Faites attention car un fort ampérage est dangereux !)

    Nous ne pouvons pas contrôler le moteur en passant directement par le nano-arduino. Pourquoi ?

    1.  Parce que le courant est tellement faible que votre moteur n’arrivera même pas à tourner.
    2. Lorsque le moteur finit sa course lorsqu’il n’est plus alimenté, il génère un courant. Ce courant arrive sur votre arduino et peut, selon l’intensité le griller. Super !

    Du coup on va utiliser un composant intermédiaire qui se nomme « pont en H ». Je ne rentrerais pas dans les détails mais ce composant permet de faire tourner un moteur dans les deux sens sans risquer de griller tous vos composants. Le pont en H utilisé ici est le L298.

    Jolie bette avec plein de petite papate :)

    On connecte donc ce petit composant sur les broches E/S digitales et aussi sur le 5V de l’arduino car il doit être alimenté pour fonctionner.

    Voici ma petite carte que j’ai créé pour ce composant. Sur la photo j’ai utilisé un L292D. Mais je vais le remplacer par un L298 pour plus de puissance.

    Arduino + carte externe

    La photo ci-dessus utilise un L292D.

    Pour plus de facilité et de puissance, il faut utiliser le L298D. La carte ne devient donc plus necessaire.

    ShemaPortepoulailler

    III- Programmer votre nano-arduino

    Installer sur votre pc Arduino IDE téléchargeable ici

    Configuration:

    1. Ouvrez-le, allez dans tools–> Boards et selectionnez Arduino nano /ATmega 328
    2. Allez dans tools–> serial ports selectionner le port.

    Votre arduino est prêt à être programmé !

    Copier-collez le code suivant:

    const int potar = 0;
    int D2 = 2;
    int D3 = 3;
    boolean securite = 0;    //On remet à 0 la valeur sécurité
    
    //variable pour stocker la valeur lue après conversion
    int valeurLue;
    //on convertit cette valeur en une tension
    float tension;
    
    void setup()
    {
        //on se contente de démarrer la liaison série
        Serial.begin(9600);
        pinMode(D2, OUTPUT);
        pinMode(D3, OUTPUT);
        // A chaque reset, le programme recommence et fait tourner le moteur dans le sens montée (ouverture à 8h)
        digitalWrite(D2, HIGH);
        digitalWrite(D3, LOW); 
        delay(3000);             // wait for 3 seconds
        //Arret
        digitalWrite(D2, LOW);
        digitalWrite(D3, LOW);
        delay(3000);             // wait for 3 seconds
    }
    
    void loop()
    {
        valeurLue = analogRead(potar);
        //on convertit en nombre binaire la tension lue en sortie du potentiomètre
        //on traduit la valeur brute en tension (produit en croix)
        tension = valeurLue * 5.0 / 1023;
    
        //on affiche la valeur lue sur la liaison série
        Serial.print("valeurLue = ");
        Serial.println(valeurLue);
    
        //on affiche la tension calculée
        Serial.print("Tension = ");
        Serial.print(tension,2);
        Serial.println(" V");
    
        //on saute une ligne entre deux affichages
        Serial.println();
        //on attend une demi-seconde pour que l'affichage ne soit pas trop rapide
        if (tension <0.48 && securite==0)         //Detection de la nuit et la porte est ouverte
        {
        securite=1;   //securité indiquant que la porte est fermée
        //Fermeture
        digitalWrite(D2, LOW);
        digitalWrite(D3, HIGH);
        delay(4000);             // wait for a second
        //Arret
        digitalWrite(D2, LOW);
        digitalWrite(D3, LOW);
        delay(1000);
        }
       delay(500);
    }

    Adaptez ce code en fonction de vos besoin. Lorsque vous cliquez sur la petite loupe en haut à droite vous pouvez voir les valeurs lu sur votre panneau solaire.

    Ca y est votre commande moteur est terminée !

    Attention, ici je n’ai pas utilisé de contact d’ouverture ni de fermerture. Je vous conseille fortement d’en utiliser. A quelque centimes l’unité pourquoi s’en priver. On les connectes sur l’arduino.

    Lorsqu’il est activé, la porte est arrivée à la butée et on coupe l’alimentation du moteur. C’est beaucoup plus propre et engendre moins de problèmes.

    L298

    L298

    69 Réponses à “Créer votre porte de poulailler pour 12€ !!”

    1. fretard vincent dit :

      bonjour je suis très intéressé par votre réalisation , ayant moi même des poules je souhaite automatiser une trappe. avez vous le projet final svp?

    2. portepoulailler dit :

      Bonjour Vincent, cela fait un p tit bout de temps que j ai finalisé le projet. Qu attends tu par projet final ?
      Le code en lui meme n as pas change si je me souviens bien.

    3. paul dit :

      bonsoir, j’ai fait mon câblage avec une arduino uno alimenté en 9v et un l298n alimenté par batterie 12v. pour mes essais j’ai tout branché sur des piles 9v et j’aurai besoin d’une confirmation avant de brancher du 12v sur le l298. Doit on enlever le cavalier 5v sous peine de faire cramer le composant? je n’ai pas compris a quoi il servait d’autant que je n’alimente pas la carte uno via le shieldmoteur. merci d’avance car je ne voudrai pas que çà sente le roussi dans le poulailler!! merci

    4. portepoulailler dit :

      Bonjour Paul, le but du L298 est d’éviter de faire cramer ton arduino uno. Si tu n’as aucun fils de ton arduino qui est connecté aux borniers du L298 il n’y a aucun risque et tu peux brancher ton 12V.
      Le cavalier permet de gérer l’utilisation du + 5V. Si tu ne t’en sert pas, et c’est ton cas si je comprends bien, tu n’en as pas besoin.
      En revanche si tu veux alimenter ton arduino uno ainsi que ton moteur avec une seule alimentation, tu connectes le cavalier sur J3 et branches ton arduino sur le +5V.

    5. Shade dit :

      Salut très bon tuto bien expliqué
      juste une petite question qui me trotte dans la tête,
      serai t’il possible d’avoir le shema électronique car je voir sur ta plaque comme 4 diode prés de tes borniers
      je te remercie

    6. denis catherine dit :

      bonjour, je vous remercie pour votre tuto que j’ai bien compris. Je viens de commander les pièces nécessaires, mais j’ai un grand service à vous demander. Je ne connais rien mais rien du tout aux branchement et c’est la première fois que je vais utiliser ce type de matériel, coté bricolage ça va, je viens de finir mes plans pour un poulailler sur pilotis construit dans un contener en plastique avec tout démontable afin de pouvoir tout bien nettoyer (lutte contre les poux rouges), ce contener est ensuite entouré de bardage en bois pour faire « abri de jardin » avec bain de poussière en dessous, toit végétalisé et enclos tout confort…pouvez vous m’adresser une ou des photos des montages qui correspondent à votre programmation. si quelqu’un est interessé par les plans du poulailler je peux vous les adresser. je vous remercie d’avance pour votre retour. Bien cordialement Mon petit fils attend avec impatience de monter tout cela avec moi et faire les tests.

      • portepoulailler dit :

        Bonjour,
        Je suis désolé mais suite à un déménagement, je ne possède plus le montage mécanique de la porte.
        Je peux vous décrire le principe: Le support est un planche en bois fixée sur ma porte à la verticale. Sur cette planche j’ai attaché mon moteur ainsi que tous les composants électriques. Une plaque en alu légère est rattaché par une corde qui s’enroule autour du moteur. Le principe repose sur le fait que la plaque en alu bloque l’entré et coulisse vers le haut pour libérer l’espace.
        En espérant vous avoir aidé. Cdlt

    7. PA dit :

      Bonjour,

      Je souhaite adapter ton montage pour mon propre poulailler mais je ne comprends pas comment ta porte fait pour rester ouverte la journée lorsque le moteur n’est plus en charge. Comment fais-tu ?

      • portepoulailler dit :

        Bonjour,

        En fait le moteur possède un réducteur ce qui permet de avoir une charge à vide plus importante. Si le poid de la porte est assez légère, alors il n y a pas besoin d alimenter le moteur pour la tenir ouverte.
        Il est vrai que je n ai pas vraiment fini l ébauche de ce poste. Si jamais ça intéresse alors je pourrais détailler un peu plus pour ceux qui ne touchent pas trop à l électronique.

    8. kiss58 dit :

      bonjour,
      nockel tout ça!!
      est il possible d’avoir le schéma electrique precis
      merci

    9. portepoulailler dit :

      Bonjour,
      J’ai ajouté une photo du shéma électrique. Je n’ai pas vraiment le temps pour faire quelque chose de correct. J’espère que c’est suffisant.
      Je remets à jour le poste car l’image avec la petite carte comportant les diodes et le CI sont directement incluses sur le L298. Elle n’est donc pas necessaire.

    10. benoithourpes dit :

      bonjour,
      vous branchez ou les borniers?

    11. portepoulailler dit :

      Bonsoir,
      De quels borniers parlez vous ?
      Je ne vois que les borniers qui sont sur le L298 et sont soudés a la carte…

    12. mikaouette dit :

      Salut sympas ton portique, par contre niveau programmation.. ton code va pas du tout.

      Voici une version corrigée:

      const int potar = 0;
      int D2 = 2;
      int D3 = 3;
      boolean securite = 0;

      //variable pour stocker la valeur lue après conversion
      int valeurLue;
      //on convertit cette valeur en une tension
      float tension;

      void setup()
      {
      //on se contente de démarrer la liaison série
      Serial.begin(9600);
      pinMode(D2, OUTPUT);
      pinMode(D3, OUTPUT);
      //Arret
      digitalWrite(D2, LOW);
      digitalWrite(D3, LOW);
      delay(3000); // wait for 3 seconds
      //On remet à 0 la valeur sécurité
      securite = 0;
      }

      void loop()
      {
      valeurLue = analogRead(potar);
      //on convertit en nombre binaire la tension lue en sortie du potentiomètre
      //on traduit la valeur brute en tension (produit en croix)
      tension = valeurLue * 5.0 / 1023;

      //on affiche la valeur lue sur la liaison série
      Serial.print(« valeurLue = « );
      Serial.println(valeurLue);

      //on affiche la tension calculée
      Serial.print(« Tension = « );
      Serial.print(tension,2);
      Serial.println( » V »);

      //on saute une ligne entre deux affichages
      Serial.println();
      //on attend une demi-seconde pour que l’affichage ne soit pas trop rapide
      if (tension 0.48 && securite==1)
      {
      securite=0;
      //monter
      digitalWrite(D2, HIGH);
      digitalWrite(D3, LOW);
      delay(4000); // wait for a second
      //Arret
      digitalWrite(D2, LOW);
      digitalWrite(D3, LOW);
      delay(1000);
      delay(500);
      }
      }

      • mikaouette dit :

        (le bon cette fois avec un else de remonté)

        const int potar = 0;
        int D2 = 2;
        int D3 = 3;
        boolean securite = 0;

        //variable pour stocker la valeur lue après conversion
        int valeurLue;
        //on convertit cette valeur en une tension
        float tension;

        void setup()
        {
        //on se contente de démarrer la liaison série
        Serial.begin(9600);
        pinMode(D2, OUTPUT);
        pinMode(D3, OUTPUT);
        //Arret
        digitalWrite(D2, LOW);
        digitalWrite(D3, LOW);
        delay(3000); // wait for 3 seconds
        //On remet à 0 la valeur sécurité
        securite = 0;
        }

        void loop()
        {
        valeurLue = analogRead(potar);
        //on convertit en nombre binaire la tension lue en sortie du potentiomètre
        //on traduit la valeur brute en tension (produit en croix)
        tension = valeurLue * 5.0 / 1023;

        //on affiche la valeur lue sur la liaison série
        Serial.print(« valeurLue = « );
        Serial.println(valeurLue);

        //on affiche la tension calculée
        Serial.print(« Tension = « );
        Serial.print(tension,2);
        Serial.println( » V »);

        //on saute une ligne entre deux affichages
        Serial.println();
        //on attend une demi-seconde pour que l’affichage ne soit pas trop rapide
        if (tension 0.48 && securite==1)
        {
        securite=0;
        //monter
        digitalWrite(D2, HIGH);
        digitalWrite(D3, LOW);
        delay(4000); // wait for a second
        //Arret
        digitalWrite(D2, LOW);
        digitalWrite(D3, LOW);
        delay(1000);
        delay(500);
        }
        }

    13. portepoulailler dit :

      Salut mikaouette,
      Tout d’abord merci pour la correction, effectivement j’ai rajouté le shéma et les connexions ne correspondent plus au code.
      Dans ta correction tu parles d’un else mais je pense tu as du faire un oubli.
      Si tu laisses la valeur de sécurité à 0 alors elle ne te sert à rien.
      Enfin à la fin, met bien la parenthèse après delay(1000) sinon ce n’est plus la même chose ;)

    14. sylvie hecquet dit :

      il faut avoir des connaisances , ce n est mom as dommage

    15. sylvie hecquet dit :

      il faut avoir des connaissance , ce qui n est pas mon cas ; helas

    16. JB dit :

      Bonjour,
      je souhaite réaliser la même chose que vous. Je suis totalement novice en électronique…
      Je comprends les branchements sur l’image 3 avec le L298D par contre je ne comprends pas 2 choses :
      – l’alimentation 12 V se branche uniquement sur le L298 ?
      – l’alimentation 12V correspond au panneau solaire ? on branche directement le panneau solaire sur les deux composants ?
      – comment relie t’on la masse sur la carte de soudure ?
      – comment la porte arrête de s’ouvrir ou de se fermer ? il y a une butée ?

      merci !

      • portepoulailler dit :

        Bonjour JB,
        -Oui, l’alimentation 12V se branche uniquement sur le L298.
        -L’alimentation 12V ne correspond pas au panneau solaire mais à une alimentation externe pour le moteur.
        Le panneau solaire est directement branché sur le nano arduino (ou la carte de soudure si vous le souhaitez).
        -Concernant la masse sur la carte de soudure, dans le cas que je présente, j’utilise une alimentation pour tout le monde.
        La masse de l’arduino nano est la même que celle de l’alimentation du moteur.
        -La porte arrête de s’ouvrir après un certain temps fixé (delay). Il n’y a pas de buté car lors de la création je n’en avais pas sous la main. Si vous en avez deux, je vous conseille de les utiliser.

    17. Moi dit :

      Bonsoir,
      Je souhaiterais reproduire votre système pour mon poulailler et je vous remercie de partager avec nous vos connaissances.
      Je me pose cependant une question concernant l’ouverture du poulailler le matin. Je souhaiterais, comme vous, l’ouvrir à heure fixe le matin mais je ne vois pas à quel moment cette heure est définie dans votre programme ? Si je ne me trompe pas, la programmation telle que vous la donnez permet uniquement d’ouvrir et fermer en fonction de la lumière captée par la cellule ?
      Vous remerciant par avance,

    18. portepoulailler dit :

      Bonjour,
      Si vous ne trouvez pas l’heure qui est défini c’est parce qu’elle n’y est pas. J’ai triché en branchant l’alimentation de l’arduino sur une prise programmable (On de 9h à 22h ici). C’est pour ça qu’à chaque reset je fais tourner mon moteur.
      L’arduino nano ne possède pas d’horloge RTC. Ce module n’est pas très cher et il y a beaucoup de tuto sur internet concernant son utilisation. Si vous le souhaitez vous pouvez donc l’utiliser pour remplacer la prise programmable.

      • Moi dit :

        Merci pour votre réponse très rapide !
        Je vais voir de ce côté là car, malheureusement nous n’avons pas d’alimentation à proximité du poulailler.
        Encore merci !

      • Moi dit :

        Je vais voir sinon du côté du programme pour le modifier afin d’utiliser le capteur également le matin pour l’ouverture.

    19. portepoulailler dit :

      Ah oui aussi c’est une bonne idée ! Si vous avez besoin d’aide n’hésitez pas.

      • Anonyme dit :

        Voici ce que j’ai codé, je ne suis pas experte en programmation et je pense qu’il peut y avoir quelques fautes alors si vous pouviez me donner votre avis :)

        int PannPhoto = A0; //Définit le pin A0 afin d’obtenir la luminosité grâce à la cellule photovoltaïque
        int D2 = 2; //Définit le pin 2 pour commander le moteur
        int D3 = 3; //Définit le pin 3 pour commander le moteur
        int ValeurLue; //Variable définie pour stocker la valeur lue de la cellule photovoltaïque après conversion
        float Tension; //La variable ValeurLue sera convertie en tension (float = nb décimal)
        float SeuilTension = 0.5; //On définit le seuil de tension permettant de dire s’il fait jour ou nuit (à affiner en fonction de la cellule)
        boolean securite = 0;

        void setup() {
        Serial.begin(9600);
        //On définit le pin 2 comme étant une sortie
        pinMode(D2, OUTPUT);
        //De même pour le pin 3
        pinMode(D3, OUTPUT);
        }

        void loop() {
        ValeurLue = analogRead(PannPhoto); //On récupère la valeur obtenue en sortie de la cellule photovoltaïque qui est fonction de la luminosité
        Tension = ValeurLue * 5.0 / 1023; //On convertit la valeur obtenue en tension (la valeur de 1023 correspond à une tension de 5V)

        //Les affichages ci-dessous permettent uniquement de vérifier que le code fonctionne
        //On affiche la valeur obtenue en sortie du panneau photovoltaïque
        Serial.print(« La valeur obtenue en sortie du panneau photovoltaïque est égale à : « );
        Serial.print(ValeurLue);

        //On affiche la tension calculée à partir de la valeur lue précédemment
        Serial.println(« La tension calculée est donc de : « );
        Serial.print(Tension,2); //Affiche la tension calculée en conservant 2 décimales
        Serial.print( » V »);
        Serial.println();

        //On définit un temps afin que l’affichage ne soit pas trop rapide
        delay(500);

        //Si la tension calculée est inférieure à un seuil (SeuilTension), alors il fait jour et la porte doit s’ouvrir
        if (TensionSeuilTension && securite==1) {
        securite=0;
        //On ferme la porte
        digitalWrite(D2, HIGH);
        digitalWrite(D3, LOW);
        delay(5000); //On attend 5s avant l’arrêt du moteur, valeur à recaler en fonction de la vitesse de montée de la porte
        //On arrête le moteur
        digitalWrite(D2, LOW);
        digitalWrite(D3, LOW);
        delay(1000);
        }
        delay(500);
        }

    20. portepoulailler dit :

      Bonjour, très bon travail bien commenté !
      Effectivement il y a des petites coquilles.

      //Si la tension calculée est inférieure à un seuil (SeuilTension), alors il fait jour et la porte doit s’ouvrir
      if (TensionSeuilTension && securite==1) {

      Ici il me semble que c’est le contraire: plus il y a de la lumière, plus la tension va monter.
      Dans mon code j’ai mis le commentaire //monter , mais c’est descente qu’il fait. Je vais le corriger.
      D’autre part j’ai utilisé le booléen sécurité car j’utilisais une prise programmable. Vous, vous n’en avez pas l’utilité.
      On remplace la ligne précédente par:
      if (Tension > SeuilTension) {
      //ouverture de la porte car detection du jour

      Il faut aussi gérer le cas du soir :
      if (Tension < SeuilTensionSoir){
      //Fermeture car detection de la nuit

      • Moi dit :

        Effectivement, c’est l’inverse qu’il faut considérer pour l’ouverture/fermeture. Par contre je pensais que le seuil de détection serait le même pour le matin et le soir d’où l’utilisation unique de la variable SeuilTension. En fait j’ai utilisé un else if mais en collant mon code je viens de me rendre compte que tout n’avais pas été pris en compte dans mon commentaire :

        int PannPhoto = A0; //Définit le pin A0 afin d’obtenir la luminosité grâce à la cellule photovoltaïque
        int D2 = 2; //Définit le pin 2 pour commander le moteur
        int D3 = 3; //Définit le pin 3 pour commander le moteur
        int ValeurLue; //Variable définie pour stocker la valeur lue de la cellule photovoltaïque après conversion
        float Tension; //La variable ValeurLue sera convertie en tension (float = nb décimal)
        float SeuilTension = 0.5; //On définit le seuil de tension permettant de dire s’il fait jour ou nuit (à affiner en fonction de la cellule)

        void setup() {
        Serial.begin(9600);
        //On définit le pin 2 comme étant une sortie
        pinMode(D2, OUTPUT);
        //De même pour le pin 3
        pinMode(D3, OUTPUT);
        }

        void loop() {
        ValeurLue = analogRead(PannPhoto); //On récupère la valeur obtenue en sortie de la cellule photovoltaïque qui est fonction de la luminosité
        Tension = ValeurLue * 5.0 / 1023; //On convertit la valeur obtenue en tension (la valeur de 1023 correspond à une tension de 5V)

        //Les affichages ci-dessous permettent uniquement de vérifier que le code fonctionne
        //On affiche la valeur obtenue en sortie du panneau photovoltaïque
        Serial.print(« La valeur obtenue en sortie du panneau photovoltaïque est égale à : « );
        Serial.print(ValeurLue);

        //On affiche la tension calculée à partir de la valeur lue précédemment
        Serial.println(« La tension calculée est donc de : « );
        Serial.print(Tension,2); //Affiche la tension calculée en conservant 2 décimales
        Serial.print( » V »);
        Serial.println();

        //On définit un temps afin que l’affichage ne soit pas trop rapide
        delay(500);

        //Si la tension calculée est supérieure à un seuil (SeuilTension), alors il fait jour et la porte doit s’ouvrir
        if (Tension>SeuilTension){

        //On fait monter la porte
        digitalWrite(D2, LOW);
        digitalWrite(D3, HIGH);
        delay(5000); //On attend 5s avant l’arrêt du moteur, valeur à recaler en fonction de la vitesse de montée de la porte
        //On arrête le moteur
        digitalWrite(D2, LOW);
        digitalWrite(D3, LOW);
        delay(1000);
        }
        else if (Tension<SeuilTension) {
        //On ferme la porte
        digitalWrite(D2, HIGH);
        digitalWrite(D3, LOW);
        delay(5000); //On attend 5s avant l'arrêt du moteur, valeur à recaler en fonction de la vitesse de montée de la porte
        //On arrête le moteur
        digitalWrite(D2, LOW);
        digitalWrite(D3, LOW);
        delay(1000);
        }
        delay(500);
        }

      • jc dit :

        slt pourrait tu me donner ta version du programme pour que je puisse me faire se portillon.

        merci

    21. portepoulailler dit :

      Le seuil de détection peut être identique mais pour un bon fonctionnement je vous le déconseille.

      Explication par un exemple à la tombé de la nuit:
      Les valeurs du capteur oscillent, lorsque Tension = SeuilTension, la nuit n’est pas encore tombée et nous allons osciller entre le cas nuit et le cas jour. La porte va s’ouvrir, se fermer, s’ouvrir etc… jusqu’à un certain temps.
      Je ne parle pas du cas ou le nuage passe ;)
      Laissez donc une petite marge entre les deux seuils

      • Moi dit :

        Ah oui je n’avais pas pensé à ce problème là. Les pauvres poules ne sauraient plus où donner de la tête :)
        Je vais tester tout cela, merci beaucoup pour votre aide cela va m’être vraiment utile !

    22. portepoulailler dit :

      Pas de problème :)
      Je me permets quand même de vous conseiller après test l’utilisation de contacts pour plus de robustesse ;)

      • Moi dit :

        J’intégrerai les capteurs une fois que tout fonctionnera correctement oui ;)
        Par contre j’ai pu faire quelques essais, et j’arrive bien à contrôler le seuil de détection pour faire tourner mon moteur. Par contre la boucle se répète à l’infini, c’est-à-dire que mon moteur tourne pendant 5s, marque un temps d’arrêt de 1s, puis se remet à tourner dans le même sens… Je n’arrive pas à identifier d’où cela vient ?

    23. portepoulailler dit :

      Pas de problème.
      Le soucis que vous rencontrez est une erreur de ma part. C’est le rôle de la sécurité, j’avais oublié l’utilité complète de celle-ci.
      Une fois qu’il est fermé il faut le lui dire. Sinon effectivement il recommence la même chose.
      boolean securite = 0; //On met à 0 la valeur sécurité on suppose qu’elle est fermée
      if (Tension > SeuilTension && securite == 0){
      securite = 1; //La porte est ouverte

      if(Tension < SeuilTension2 && securite ==1){
      securite = 0; //La porte est fermée

      • Moi dit :

        J’avais réintégré une variable de ce type du coup pour palier au problème ;)
        Mon programme tourne maintenant correctement, sauf pour la fermeture de la porte. Lorsque je suis inférieur à une certaine tension et que ma valeur de securité est égale à 1, le moteur ne tourne pas dans l’autre sens. Peut-être un problème de cablage ? Je vais regarder dans ce sens car je ne pense pas qu’il y ai d’erreur de ce côté là dans mon programme.

    24. Anonyme dit :

      Bonjour,
      Avez-vous rencontré des problèmes avec la batterie ? Nous avons installé le système et il semblerait que notre batterie se vide très rapidement…

    25. Alain DERRE dit :

      bonjour. Je me permets de vous donner un lien pour réaliser une porte de poulailler automatique très simple et économique. Q’en pensez vous?
      https://www.youtube.com/watch?v=Br14cy87riA
      Cordialement

    26. portepoulailler dit :

      Bonjour,
      Très bon lien.
      Tout est possible, on fait avec ce que l’on a sous la main.

    27. isabelle dit :

      bonsoir a tout le monde , je voudrai effectuer un systeme comme le votre je voulais savoir si cela peux fonctionner sans alimentation uniquement avec une batterie 12volt et un panneau solaire. le poulailler n etant pas a cote de mon domicile je voudrai donc fabriquer afin d eviter au nuisible de tuer nos poules et donc faire un systeme autonome s ouvrant seule et fermeture seul soit par exemple par horaire predefini ou sinon par la luminosite , votre montage conviendrai il a mon utuisation merci

    28. portepoulailler dit :

      Bonsoir, bonsoir,
      Il n’y a pas de probleme pour votre systeme. L’arduino possède une alimentation très faible. Tout va dependre de la capacité de votre panneau solaire a fournir suffisement d’energie au systeme entier. Il faudrait faire un systeme ou le moteur consomme peu d’energie pour ouvrir la porte.
      Bonne soirée

      • Isabelle dit :

        Bonjour
        Merci pour vos réponse j ai donc commander le nano 328 et le l298
        Par contre ce que je voudrai savoir aussi avez vous mis des fin de course. Ou est ce intègres au programme afin que le moteur s arrête lorsque la porte est totalement ouverte et donc couper le moteur.

        Pour l alimentation je prévois une batterie 12v d onduler à décharge lente je pense que sa devrai le faire. Et je vais regarder les panneau solaire.
        pour la partie programme il faut juste copier votre programme et le coller tel quel ou supprimer le texte après //

        Car c est une première pour moi cela.

        Merci pour tout.

    29. portepoulailler dit :

      Bonjour, je ne connais pas la consomation de votre moteur ainsi que la capacité de votre batterie (Ah°) il est donc dur a dire si la batterie va faire l’affaire. (normalement oui)
      Le texte après // est un commentaire. Le programme sait faire la différence, vous pouvez le laisser tel quel.
      Il faut effectivement mettre des fins de courses. Il n’est pas mis dans le code mais c’est très facile a rajouter. Je vous aiderai si besoin.
      C’est une bonne premiere, bravo pour avoir franchi le pas ;)

    30. Olivier42 dit :

      Bonjour,
      Votre montage est très intéressant. Je compte m’en inspirer pour mon propre poulailler.
      Une question me trotte dans la tête : votre moteur de récup est-il un moteur DC ou bien un moteur pas à pas ?
      Le module L298N vers lequel le lien renvoie ast apparemment fait pour commander des moteurs pas à pas. Est-il aussi possible de commander des moteurs DC ?

      Merci d’avance pour votre réponse éclairée !

    31. portepoulailler dit :

      Bonjour, le moteur utilisé est un moteur DC. C’est moins cher qu’un pas à pas.

    32. Joel13 dit :

      Bonjour, super votre tuto, pour mon cas, la porte est à glissière horizontale. Je pense utiliser un mécanisme d’ouvre glace de Scenic , qui a l’avantafe de creer un deplacement horizontal. Cependant, la puissance du moteur est importante, le L298, sera-t-il suffisant ?

    33. Coco dit :

      Bonjour,
      peut-on mettre un moteur pas à pas 5V ?

    34. portepoulailler dit :

      Bonjour, il est possible de mettre un moteur pas à pas 5V.
      Cependant ce type de moteur est peu puissant. Le système d ouverture de votre porte doit donc demander très peu de force pour ouvrir la porte. Sinon votre moteur ne sera pas capable de l actionner.

    35. Toto dit :

      Bonjour
      Tous d’abord merci pour votre tuto, très beau projet.
      Je souhaite m’inspirer de votre système et d’ajouter en plus deux interrupteurs pour contact d’ouverture et de fermeture.
      Voici quelques questions :
      Ou dois je connecter mes interrupteur sur l’arduino ?
      Est ce que je dois modifier le programme si je rajoute les contacts ?

      Merci pour vos réponses ?

      • portepoulailler dit :

        Bonjour toto,
        Il faut connecter les interrupteurs sur les broches analogiques de l’arduino
        Et oui il faut modifier le programme ;)

    36. christophe dit :

      Bonjour.
      Avec toutes ces infos, serait il possible de faire une page récapitulatif.?
      Par avance merci
      christophe

      • portepoulailler dit :

        Bonjour Christophe,
        Effectivement une petite page recap serait la bienvenue. Je n’ai cependant pas assez de temps pour ca.

      • christophe dit :

        Bonjour.
        Dommage, ou à défaut d’un récap, des liens vers du matériel.?
        Par avance merci

      • portepoulailler dit :

        Bonsoir Christophe, j’ai mis a jour des liens vers du materiel dans la partie correspondante. En esperant que ça aide. N’hesites pas si tu as besoin de plus.

    37. christophe dit :

      Merci bien.
      Il n’y a plus qu’à ce lancer.

    38. Coco dit :

      j’ai un moteur 5V qui fonctionne bien mais du coup je ne peux pas utiliser de L298N ?

    39. David dit :

      Bonjour, est-ce possible d’avoir le code avec le capteur de crépuscule finalisé,
      car je n’ai pas compris où il fallait intégrer cette partie-làcar je n’ai pas compris où il fallait intégrer cette partie-là :

      boolean securite = 0; //On met à 0 la valeur sécurité on suppose qu’elle est fermée
      if (Tension > SeuilTension && securite == 0){
      securite = 1; //La porte est ouverte

      if(Tension < SeuilTension2 && securite ==1){
      securite = 0; //La porte est fermée

      Merci pour votre aide

      • portepoulailler dit :

        Bonjour David, ca va m’être difficile de donner le code crépuscule finalisé. Je ne sais pas ce que tu utilises comme matériel. Tu as mis des capteurs de butées ? Tu utilises une horloge ?

    40. David dit :

      Bonjour, non je n’utilise pas de capteurs de fin de course ni d’horloge
      J’utilise arduino Nano Capteur de crépuscule et L292D
      Le moteur et de recup Moteur d’essuie-glaces en 12 V
      Merci de votre aide

      • portepoulailler dit :

        D’accord pourquoi pas, c’est du bon matériel.
        Le dernier code partagé en commentaire devrait faire l’affaire. Cependant tu dois l adapter avec ton capteur de crépuscule. Ça doit être facile à trouver sur le net ;)

    41. Mano mano dit :

      Bonjour, je ne voit pas comment vous faites desendre et monter votre porte. Pouvez vous me dire comment vous faites ? Merci

    42. Mano mano dit :

      Et est que on mait une batterie 12 v ou des piles rechargeables avec le panneau solaire ?

      • portepoulailler dit :

        La porte est attaché à un fils lui même attaché au pignon du moteur. De tel façon à ce que lorsque le moteur tourne dans un sens ou l autre, la porte monte ou descend permettant un accès au poulailler.
        Une batterie 12V sera plus robuste que des piles rechargeables. Sa capacité sera aussi plus grande. Si il y a plusieurs jours de mauvais temps il n’y devrait pas avoir de problème à survenir aux besoins électroniques.
        Après avec un nombre suffisant de piles, on peut trouver une équivalence :)

    43. tara28 dit :

      Bonjour merci pour le tuto,

      comment peut on rajouter un écran lcd pour effectuer les réglages des horaires ouverture et fermeture ?
      par avance merci
      cordialement.

      • portepoulailler dit :

        Bonjour,
        Oui il est tout à fait possible de rajouter un écran LCD.
        Le travail à faire sera plus important mais tout est possible.
        Il y a plein de tuto sur le net d Arduino avec écran LCD et ce n’ est pas très compliqué ;)

    44. lokiti dit :

      bonjour, je trouve votre projet intéressant, j’aimerais essayer de le faire, j’ai vu qu’on parlais de photorésistance c ‘est pour voir si qqu’un aurais fait un tel montage ?

    45. georges dit :

      Bonjour,
      je souhaiterais fabriquer cette porte mais j ai du ma a trouver le programme final
      je souhaiterais démarrer avec une ouverture horaire
      si quelqu’un a un programme je serais très intéressé
      merci

      • portepoulailler dit :

        Bonjour,
        Pour démarrer avec une ouverture horaire tu utilises un module RTC ou alors simplement une prise programmable ?

    Laisser un commentaire

     

    CDI de l'Institution S... |
    Raisingmountain |
    L'univers de Jenny |
    Unblog.fr | Créer un blog | Annuaire | Signaler un abus | Human
    | Girlinhospital
    | Excellent Soccer Assistance...