Electromag1 Circuits électroniques et Picaxes

Petit site pour ceux qui bricolent en électronique en général et sur les PICAXES en particulier.
Les PICAXES sont des microprocesseurs (PIC de Microship) programmables en BASIC. Pleins de qualités, pas chers, ultra faciles à programmer.
Tout (ou presque) est sur le site du distributeur Gotronic (voir les liens).
Les pages  seront ajoutées ou modifiées petit à petit.
Dans le but d'améliorer ce blog, communiquez moi vos remarques et les erreurs que vous pouvez constater.
Pour me contacter: Envoyez un mail à l'adresse : mag1mic@free.fr .  Tout message reçoit une réponse
Pour retourner au menu, Cliquer sur "LISTE DES PAGES", ici ou en haut de la colonne de gauche
Pour laisser un message, allez dans le "LIVRE D'OR"
Bonne visite
 
 

Porte de poulailler

La porte de poulailler revient régulièrement sur les forums, voici une réponse générique à base de picaxe 20M2

Cahier des charges:
Le projet doit ouvrir et fermer une trappe en foncton de l'éclairement d'une cellule photorésistante "LDR".
Le moteur est ici un moteur à courant continu réversible, muni d'un système de démultiplication.
Deux interrupteurs fins de courses, FCO (fin de course ouverture) et FCF (fin de course fermeture) délimitent le mouvement de la trappe.
La transition jour/nuit est définie par un seuil de luminosité réglé par un potentiomètre. Pour valider l'état jour ou nuit, la luminosité doit rester du même côté du seuil pendant un temps réglable (ici, de 0 à 40mn). Tout franchissement du seuil, dans un sens ou dans l'autre resette cette temposisation. Les variations aléatoires et temporaires ne sont pas prisent en compte.
Le moteur n'étant pas défini précisément, la solution d'une commande par relais 16A me semble la plus sûre, on peut la remplacer par un pont en H adapté au moteur.
Deux leds visualisent l'état du sysyème:
Une led Jour/Nuit servira à régler le seuil de luminosité.
Une variable d'hystérésis (hyster) introduit un écart de seuil J/N. Un point d'hyster donne un écart de 0,1%
Un potar "hyster" est ajouté pour régler cette variable (modif 120717)
Une led "transition" signale l'enregistrement du franchissement du seuil et indique que le système est en phase transitoire Jour/Nuit. Si la transition est validée, la porte s'ouvre ou se ferme.

Un interrupteur à trois positions ON - OFF - ON  (ou plus exactement: "ouvert - auto - fermé") pour ouvrir et fermer la porte manuellement

Le schéma:


L'alimenttion est en 12v continu, les relais et le moteur aussi. Ici, le système est autonome, avec un panneau solaire, un régulateur à quelques euros et une batterie de 4 ou 5 A.h
Un polyswitch à choisir pour un basculement correspondant au courant de blocage moteur pendant env 5 secondes.

Le code:
Modif 060717: ajout d'une variable hystérésis réglable (hyster=0 donne la version précédente)
Modif 100717: remplacement readadc par readac10. Logique ouvre/ferme des relais
Modif 120717: déplacement FDC . Ajout potar hystérésis

;Porte poules MM 120717
#picaxe 20M2
#no_data
symbol potarH=C.1
symbol potarT=C.2       ;potar tempo en C.2
symbol potarS=C.3        ;potar seuil en C.3
symbol FCO=pinC.4       ;FCO=0 ->FCO fermé-> porte ouverte
symbol FCF=pinC.5        ;FCF=0 ->FCF fermé -> porte fermée  
symbol LDR=C.7          ;  LDR en C.7
symbol ouvre=B.0        ;sortie ouverture
symbol ferme=B.1        ;sortie fermeture
symbol led= B.3            ;led J/N
symbol trans=B.4        ;led état transitoire
symbol ouvman=pinB.6    ;ouverture manuelle
symbol ferman=pinB.7    ;fermeture manuelle
symbol JN=bit0            ;bit J/N 1=jour ; 0=nuit
symbol valJN=bit1        ;validation JN
symbol memoJN=bit2         ;mémo JN
symbol hyster=b1        ;valeur hystérésie (0 à 255) : 10=1% env.
symbol seuilH=w10       ;seuil haut avec hystérésis
symbol lum=w13            ;valeur lumière (0 à 1023)
symbol seuil=w12        ;valeur seuil (0 à 1023)
symbol tempo=w11        ;valeur tempo (0 à 1023)
dirsB=%1011              ;B.0,B.1,B.3 en sorties
dirsC=%0
pullup %11000011000000    ;pullup sur B.6,B.7,C.4,C.5
    Do
;****** lecture des réglages ***********
        readadc10 LDR, lum        ;lecture luminosité
        readadc10 potarS,seuil    ;lecture seuil J/N    
        readadc10 potarT,tempo    ;lecture temporisation J/N
        readadc potarH, hyster
        tempo=24*tempo/10        ;max=24*1023/10 = 2455 s (40mn),min=0
        seuilH=seuil+hyster
;****** comparateur seuil *********************
        If lum >= seuilH then    ;comparateur LDR éclairée=val lum forte = jour
            JN=1 : high led      ;on est de jour      
        elseif lum <seuil then
             JN=0 : low led        ;sinon on est de nuit            
        endif
;****** mémorisation franchissement du seuil **********
       if memoJN<>JN then        ;si changement de sens -> RAZ time
            time=0
        endif
        memoJN=JN                  ;memo JN       
;******* validation état après temporisation *************
        if time>tempo then         ;si JN stable pendant un temps tempo (0 à 40 mn)
            valJN=JN              ;validation de JN dans valJN    
            time=tempo*2        ;limitation compteur time < 65535
            low trans              ;extinction led trans
        else high trans         ;allumage led trans    
        endif  
;********* ouverture / fermeture manuelle *************
        if ouvman=0 then         ;ouverture manuelle force valJN=1
            valJN=1
        elseif ferman=0 then ;fermeture manuelle force valJN=0
            valJN=0
        endif
;******* mouvement de la trappe en ft valJN et FDC **************       
        If valJN=1 and FCO=1 then            ;de jour et porte non ouverte  
               low ferme    
            high ouvre               
        elseif valJN=0 and FCF=1 then        ;de nuit et porte non fermée
            low ouvre
            high ferme            
        elseif FCF=0 OR FCO=0 then     ;Fermé ou ouvert, on arrête le moteur
            low ferme
            low ouvre        
        endif        
    loop


Réalisation:


Téléchargement:  typon .TCI et format PDF





 



Créé avec Créer un site
Créer un site