Edité le 13 Juillet 2007
Ce qu'il vous faut.
Les logiciels libres et gratuits à votre disposition :
IC prog téléchargeable sur www.ic-prog.com
IC prog vous permet d'envoyer votre fichier "hex" vers votre PIC.
Un programmateur compatible JDM, rassurez vous, je n'ai pas inventé
la poudre et des montages de toutes sortes existent sur le net !
Voici mon programmateur...Artisanal mais fonctionnel pour les séries
16, 18 et 24C , c'est déjà pas si mal !
Un outil de développement : MPlab qui permet d'essayer et
d'assembler votre programme (inutile pour le moment si vous
garder les programmes proposés au format hex directement
lisible par votre processeur)
Une platine "veroboard "
Pratique pour les mises au point, elle évite l'usage intensif du fer avec tous
les risques de destruction des composants (patte qui casse, soudage, dessoudage)
sans compter "la chauffe"que ces éléments n'apprécient pas forcément !
platine Veroboard
ou des plaques à essai pour un montage "en dur" en fin de mise au point
ici un montage parfaitement fonctionnel de clignotant
mais avec usage du fer...
Pour info, la maquette que je vous propose a été réalisée sur ce type de
platine, avec un peu de patience on y arrive.
A vous de voir si vous souhaitez développer le typon en fonction du
schéma de principe.
Schéma et brochages des différents composants
(utile pour la réalisation d'un typon)
Autre lien important : Les "papas" de notre PIC
le site Microchip qui propose les datasheets ainsi que de
nombreux logiciels pour développer...indispensable.
Quel usage ?
Cette application est destinée à la détection de niveau d'eau dans un puit par exemple
ou encore dans une cuve de jardin pour l'arrosage automatique des pelouses.
Le programme conçu par l'auteur permet de détecter le niveau haut, le niveau bas est
entamer l'action prévue à savoir la mise en marche de la pompe permettant l'arrosage.
En cas de non détection des sondes, la mise en marche est impossible.
schéma de principe (avec pull up intégré) - programme pompe1
Schéma de principe
La détection utilise un composant classique puisqu'il s'agit d'un CI de type CD 4001 (4 Nor)
avec seulement les deux premières portes utilisées.
Les portes sont utilisées en simple "inverseurs " (connexion des deux entrées) polarisées au pole
positif par une résistance de 390 k permettant de réduire le seuil de basculement par rapport à la
masse. Cette masse fait varier le signal en fonction de la "résistance du liquide", la résistance de 390 k
se charge également d'éviter le court circuit direct par rapport à cette masse.
La sortie du CD 4001 (broche 3 et 4) est renvoyée vers un transistor de type NPN BC 337 - 40 et via
la diode roue libre au relai.
Attention au gain des transistors, bien que le choix ne soit pas critique sur ce composant, j'ai eu quelques
surprises avec des composants annoncés à 40 en gain (l'importance du fameux IC/IB ) et qui en relevé de
mesure au transistor mètre affichaient péniblement 12 de gain d'où un dysfonctionnement réel et une réaction
aléatoire du collage relai. (limite de collage)
Je vous conseille donc de vous intéresser au qualité de ces transistors et au besoin porter votre choix sur une
autre série comme le 2N2222 ou encore le BC 547.
Aspect de la platine en cours d'essai
En bas à droite, vous pouvez apercevoir le CD 4001, le régulateur 7805 chargé de protéger
surtout le PIC (le CD pouvant travailler entre 5 et 15 volts sans problèmes).
J'ai préféré uniformiser l'ensemble de la tension à 5 volts pour la détection, le fonctionnement du
PIC (pas le choix pour lui) et pour les relais qui sont des modèles 5 volts 1 rt suffisant pour cette
application.
Le processeur PIC sera placé sur support tulipe pour faciliter l'extraction et la modification
éventuelle du programme ( pas de Bootloader sur du 16 F 84 !!!)
Pour ma part, j'ai également implanté des supports pour les CD 4001, bien que le prix
du composant est très faible (0.15 cent !), le remplacement en est grandement facilité
en cas de problèmes sur ce composant.
Surtout ne pas hésiter pour l'achat de supports de haute qualité, la fiabilité du système
n'en sera que plus sûre.
Apercu du redressement
Pour cette maquette, ce pont de récupération est largement surdimensionné,
un modèle de la série WO en 1.5 A est amplement suffisant.
Le transformateur est un modèle 4 VA sous de 12 à 15 volts.
La gestion des sondes sur le PIC
RB1 et RB2 sont configurées en sortie et "émettent" le 5 volts vers les broches de contact
des deux relais (une sonde niveau bas et une sonde niveau haut).
Les ports RB0 et RB3 sont en attente d'un collage relai, ce collage se produisant (présence de liquide),
la tension sera renvoyée et le programme pourra renvoyé vers la sortie le signal de commande activant
la pompe. (RA0 pour le relai de commande et RA1 pour l'allumage de la diode)
En cas de défaut, à savoir la présence d'un liquide sur la sonde haute et l'absence sur la sonde basse
(cas impossible !) la sortie défaut s'active...(port RA2), Il faudra rechercher le défaut et relancer !!!
Le 16 F84A utilise un quartz 4 Mhz et condensateurs 22 pf céramique pour son oscillateur.
Le Watchdog est activé en cas de plantage...
Pour la commande de sortie, j'ai opté pour un transistor NPN de la série BD (boitier TO 126) et
un relai (de récupération) 16A toujours avec une bobine 5 volts. N'oubliez pas la diode roue
libre, véritable "aspirateur" des retours inductifs de la bobine du relai qui protège le collecteur
du transistor.
Je vous laisse étudier le programme de l'auteur que je remercie.
A ce sujet, vous verrez deux fichiers Hex suivant l'utilisation avec les résistances de pull up du PIC
ou pas. Pompe 1 - avec Pull up -- c'est le schéma que j'ai choisi
Si vous optez pour les résistances externes, l'auteur du programme a adapté et inversé toute la logique,
pour ce qui est du schéma de principe, il faudra les intégrer...
;**********************************************************************
; Automatisation du fonctionnement d'une pompe d'arrosage ; mise en *
; marche sur interrupteur M/A ; régulation sur contact haut et bas *
; *
; tableau de vérité *
; ----------------- *
; Contact1 (bas=RB3) F F O O *
; Contact2 (haut=RB0) F O F O *
; --------------------------------------- *
; Marche Impossible Marche Arrêt *
; (défaut) (1 seule fois) *
; *
; on utilisera le PORTB avec les résistances de pull-up (attention *
; les signaux seront inversés).Les pattes RB1,RB2 sont configurées *
; en sortie et on envoie 5v dessus ; les pattes RB0, RB3 sont *
; configurées en entrée pour réceptionner ces 5v si les contacts *
; sont fermées par le niveau de l'eau. *
; Pour que la pompe démarre, il faut que les 2 contacts soient *
; fermés. Une fois qu'elle a démarré, on ne teste plus que le *
; contact bas. tant qu'il est fermé, la pompe tourne. *
; Pour éviter les redémarrages intempestifs, on arrête la pompe à *
; la première coupure et on ne la redémarre que lorsque le contact *
; haut est à nouveau fermé (le niveau d'eau est remonté) *
; *
; Date : 16/5/07 *
; Auteur : Briola *
;**********************************************************************
; Fichier requis: P16F84a.inc *
;**********************************************************************
LIST p=16F84a ; Définition de processeur
#include <p16F84a.inc> ; Définitions des constantes
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
; '__CONFIG' précise les paramètres encodés dans le processeur au moment
; de la programmation du processeur. Les définitions sont dans le fichier
; include.
; _CP_OFF Code protection OFF
; _PWRTE_ON Timer reset sur power on en service
; _WDT_OFF Watch-dog hors service
; _XT_OSC Oscillateur quartz moyenne vitesse
;**********************************************************************
; DEMARRAGE SUR RESET *
;**********************************************************************
org 0x000 ; Adresse de départ après reset
goto init ;
;*********************************************************************
; INITIALISATIONS *
;*********************************************************************
; initialisation et configuration du PORTB
init
bsf STATUS,RP0 ; passer banque1
movlw b'00001001' ; RB0 et RB3 en entrées
movwf TRISB ; le reste du PORTB en sorties
movlw b'00000000' ; configuration du PORTA
movwf TRISA ; en sortie
; mise en service des resistances de pull-up
movlw b'00000000' ; mise en service des
movwf OPTION_REG ; resistances de pull-up
; initialisation des interruptions
bcf STATUS,RP0 ; bank0
movlw b'00000000' ; pas d'interruptions
movwf INTCON ;
goto start ;
;*********************************************************************
; PROGRAMME PRINCIPAL *
;*********************************************************************
start
clrf PORTA ; efface le PORTA
clrf PORTB ; efface le PORTB
bcf PORTB,1 ; on envoie 5v sur RB1
bcf PORTB,2 ; on envoie 5v sur RB2
btfsc PORTB,0 ; on teste le contact haut
goto $-1 ; si ouvert on boucle
btfsc PORTB,3 ; si fermé, on teste le contact bas RB3
goto defaut ; si le contact bas est ouvert : impossible
bsf PORTA,0 ; si toujours fermé, démarrer pompe
bsf PORTA,1 ; allumer LED témoin verte
btfss PORTB,3 ; tester le contact bas RB3
goto $-1 ; si toujours fermé, boucler sur le test
bcf PORTA,0 ; si ouvert, arrêter pompe
bcf PORTA,1 ; éteindre LED témoin
goto init ; réinitialiser
defaut
bsf PORTA,2 ; allumer LED "défaut"
goto init ; réinitialiser
END ; directive fin de programme
Intégration de l'ensemble en coffret... Le moment le plus réjouissant
l'application de cet ensemble sur site...
Détail de la face au format PDF
Différentes étapes et essais du montage
Les fiches "banane" simulent le contact ...
La diode verte à gauche des fiches indiquent le contact, la diode
verte à droite la présence 220 volts en sortie -- Marche de la pompe...
Dans ce cas, la sonde "basse" est en marche : présence d'eau
Le niveau " haut " n'est pas encore atteint ...
Deuxième essai de gestion par le programme du PIC :
La sonde "basse" indique une absence de liquide, la sonde "haute"
une présence de liquide.
Cas impossible, allumage de la diode défaut et extinction de la sortie
-- Votre sonde " basse " est en défaut.--
220 volts = DANGER !!!
J'ai repéré les sections 220 Volts par des adhésifs jaunes, certes pas très
réglementaire en électricité industrielle, mais très efficace pour éviter
l'électrocution !!!
Pour une intervention sur le programme du pic, débranchez le secteur !!!
La réalisation des sondes
Pour les sondes, j'ai utilisé des fils en un seul morceau, l'isolation est importante pour les
distances, il faut donc éviter des raccords qui réagissent comme des contacts à différentes
hauteurs du puits ou cuve.
La terminaison a été réalisée à l'aide du vieux stylo remplit de silicone de type "sanitaire".
Les fils dénudés ont été repliés de chaque coté du tube plastique.
Ca fonctionne parfaitement...
En jaune : Le stylo
En rouge et bleu, les fils de détection dénudés en sortie et repliés
sur les cotés. (Evitez de laisser les fils dénudés dans le tubes,
l'humidité permanente fausse la détection)
Les programmes
Edité le 30 Juillet 2007
A l'aimable autorisation de l'auteur
Ensemble des fichiers pour modification éventuelle
du programme à votre convenance. (après modification
une recompilation est nécessaire - .hex pour le processeur PIC)
N'hésitez pas à me faire part de vos améliorations !!!
(Compression au format rar)
Edité le 27 Juillet 2007
Mise en oeuvre
Vos remarques ou complément d'infos
tperquin (puis @) .free.fr
(Obligation de retaper l'adresse Mail)
Cette méthode efficace m'évite d'être vu par " les robots publicitaires"
qui m'inonde de Spam et Pourriel !!!
Merci