Oui j'ai dis dans le message juste au dessus que j'avais changer et que au lieu de 5V j'avais relier les résistances à la masse.c'est que la borne GP0 est toujours à 5V
Mais toujours rien.
-----
Oui j'ai dis dans le message juste au dessus que j'avais changer et que au lieu de 5V j'avais relier les résistances à la masse.c'est que la borne GP0 est toujours à 5V
Mais toujours rien.
Voici donc le nouveau schéma :
ben maintenant GP0 est toujours à la masse... :)
Hé bien non! ça ne marche toujours pas!
Mais alors comment faut-il que je fasse pour faire varier la tension sur GP0?
merci de ton intérêt pour mon projet Gabuzo.
Bonjour,
pour faire varie la tension sur GPIO.0 il faut que la connection sur PGIO.0 soit la connection milieu d'un pont diviseur .
(comme un potentiometre )
donc di tu as une resistance entre la masse(R1)et GPIO.0il faut une une resistance(R2) entre GPIO.0 et le +.
la tension sur GPIO.0 sera 5V*(R1*52)/(R1+52)
sur ton schémas il n'y à pas de resistance vers le plus ,.il te manque une resistance entre le point 1du potentiometre et le + .
cordialement
Alain
C'est bien ce qui me semblait aussi cf messages #26 & #30
Par contre même avec un vrai pont diviseur j'aimerais comprendre comment le µ-contrôleur fait la conversion tension sur GP0-durée de la tempo.
Bonsoir,
voici le principe
tu definie une variable var
le pic associe une valeur entre 0 et 1024 qui correspond à une tension entre 0 et 5V .
exemple si l'entrée est à 2,5V la variable var vaut 512 .
ensuite dans ton programme si tu fais
waitms var
le programme attend 512ms
tu peux modifier la valeur de la variable en la multipliant par une constante ou faire une boucle ..
pour doubler le temps avec une boucle par exemple
exemple en basisc
for i=1 to var
waitms 2
next i
(ça s'est le principe sans grande précision )
cordialement
Alain
Merci pour cette explication. Je me disais aussi... En général tes programmes fonctionnent.
OK. Donc en fait pour chaque valeur de ma résistance R1 à R12, il faut une résistance R1bis à R12bis relier au 5V et correspondant à la formule que tu donne Alain.
Donc R1 = 120ohm :
5*(120*52)/120+52
donc R1bis = 181 ohms
R2 = 220
donc R2bis = 210 ohms
C'est bien ça?
Nan, c'est pas ça !
Alain a du faire une faute de frappe en écrivant 52, ça devait être R2
Il faut une et une seule résistance entre GP0 et la masse si tes resistances r1 à r12 sont sur le 5V ou entre GP0 et le 5V si elles sont à la masse.
bonjour, la resistance peut etre commune à toute les resistance
exemple
resistance de 1 K entre GPIO et le +
entre la masse et GPIO R1= 1K entre GPIO et le + 1K ---> tension =2,5V
entre la masse et GPIO R1= 2K entre GPIO et le + 1K ---> tension =3,3V
entre la masse et GPIO R1=x entre GPIO et le + 1K ---> tension =1000*R1/(x+1000)
cordialement
Alain
....
Ok je teste ça.
Merci à vous
Alain : Désolé, je pense que tu m'avait parlé de ça (ça me dit vaguement quelque chose). Mais c'était avant les vacances et je n'ai pas du tout touché au montage depuis!
Testé :
cette manip fait chuter la tension d'alimentation du PIC à 3.47V. Et la temporisation ne marche pas. ....
Dernière modification par malo777 ; 11/01/2012 à 21h01.
Voici le schéma modifié. Impossible de trouver mon erreur.
Dernière modification par malo777 ; 15/01/2012 à 19h15.
Ce n'est pas le schéma qu'il faut modifier, la tension du pic qui tombe à 3 volts et des brouettes elle tombe pas sur ton schéma, elle tombe sur ton câblage.
Il faut donc que tu cherches l'erreur sur ta plaque d'essai, câbler, câbler encore ou tout re-câbler s'il le faut. Au risque de me répéter, la tension doit varier sur GPIO pas sur l'alim de ton PIC.
Je vais essayer de remplacer les résistance et l'inter roratif par un potar, comme c'était à l'origine et vous dit ce qu'il en est dès que la pile 9v est rechargée (pas encore d'alim de labo à la maison )
Un pic sous 9 V ?
Et pour le potar il faut quand même une resitance sinon il va cramer.
Non, pas le pic, mais un 7805 qui me régule la tension à 5V (Partie en haut à gauche du schéma)Un pic sous 9 V ?
Verifie si c'est pas la tension aux bornes de ton accu qui ne s'écroule pas. Ces bestioles ne sont pas faites pour fournir des intensités importantes.
J'ai rencontré Alain aujourd'hui, ce qui nous à permis de finir ce montage, qui marche à merveille.
Merci à lui.
Faute d'inattention, les deux diodes en amont des relais étaient à l'envers. Le courant empruntait donc le chemin le plus facile et ne faisait pas coller le relais.
Alain à aussi rajouté une résistance entre le +5V et GP5, ce qui permet d'assurer que le PIC détecte un contact sur l'entrée "CAPT".
Nous avons tester le montage avec un potar. Pour mon interrupteur rotatif avec sélection de temps précis (par les 12 résistances), on a rajouté une résistance reliée au +5V pour faire un pont diviseur.
Je met en pièce jointe le nouveau schéma :
Merci à tous pour votre aide.
Ca ne fait famais qu'un mois que je te dis qu'il manque une resistance sur ton pont diviseur ...
Si tu pouvais joindre le programme à ton dossier ça serait parfait, un schéma à base de µ-controleur sans le programme c'est un peu comme une bonne bouteille sans tire-bouchon...
Bonjour,
programme en basic et commentaire (peut etre traduit dans un autre langage c,...)
'en cas de chg d'etat de l'entrée impulsion sur l'entrée 1 de 1 secondes niveau haut sur la sortie 2 (temps fonction du pot) puis nouvelle impulsion puis retour au debut debut programme ppour attendre un nouveau chg d'état
Define CONF_WORD = 0x31e4 '12F675configuration avec GPIO3 utilisé en reset (poussoir à la masse )
CMCON = %00000111
TRISIO = %000111001
ANSEL = %00000001
WPU = %00111111
INTCON = %00000000
OPTION_REG = %10000000
Symbol sortie1 = GPIO.1
Symbol sortie2 = GPIO.2
Symbol sw1 = GPIO.5 'detection mvt
Dim test As Byte
Dim test1 As Byte
Dim valeur As Byte
Dim valpot As Byte
Dim i As Byte
Dim nb As Byte
sortie1 = 0
sortie2 = 0
WaitMs 3000 'attedre 3 secondes
If sw1 = 0 Then 'memorisation de l'etat de l'entrée
test1 = 0
valeur = 0
Else
test1 = 1
valeur = 1
Endif
WaitMs 100
debut:
If sw1 = 1 Then 'lecture de l'entrée
valeur = 1
Else
valeur = 0
Endif
If valeur <> test1 Then 'si l'entrée à changé d'etat
valpot = 1
Adcin 0, valpot 'lecture du pot 'entre 0 et 255)
If valpot < 5 Then
valpot = 5 'pour assurer une tempo mini
Endif
sortie1 = 1 'sortie 1 et 2 activée
sortie2 = 1
WaitMs 1000 'temps d'impulsion de l'enrée 1
sortie1 = 0
For i = 1 To valpot 'temps d'activité de la sortie 2
WaitMs 4000 '4 secondes par valeur de valpot
Next i
sortie2 = 0
sortie1 = 1 'implussion de 1s sur la sortie 1
WaitMs 1000
sortie1 = 0
If sw1 = 0 Then 'mémorisation de l'entrée
test1 = 0
valeur = 0
Else
test1 = 1
valeur = 1
Endif
WaitMs 1
Endif
Goto debut
End
cordialement
Alain
Merci pour le tire-bouchon
A ta santé !!!!!!!!