PS : qu'est-ce que tu utilises, toi, pour la simulation, MPlab ?
Non, j'utilisais SIMetrix avant, mais je viens de découvrir LTSpice qui à l'air juste surpuissant !
EDIT: d'après ton schéma, on a environ 8ms de temps de réaction et on règle Vseuil à 4V, c'est ça?
En fait, 8ms, c'est le temps de charge ou de décharge complète du condensateur.
Si on se contente de regarder le schéma et si on prend une tension de seuil de 4V, dès que le signal passera de 5V à un signal PWM, la réponse s'effectuera en un peu plus d'une miliseconde. (le temps qu'il faut pour que la tension de sortie soit complétement sous les 4V.)
J'ai refais une simu où tu passe d'un signal d'entrée 5V à une PWM puis de nouveau à 5V pour que tu comprennes bien ce qu'il se passe.
Tu vois en fait qu'il y a 2 temps de réaction : tr1 et tr2. Les deux sont inférieurs à 8ms !
Si tu avais pris une tension de seuil à 4.9V (ce qu'il ne faut pas faire !), tu aurais eu tr1 très petit et tr2 un peu inférieur à 8ms

Dans cette simu, il y a un petit problème (qui n'est est pas vraiment un en fait ^^), c'est que les oscillations font repasser une fois la tension de sortie au dessus de la tension seuil de 4V ! De ce fait, tu pourrais croire que le signal est repassé à une tension continue de 5V alors qu'on est toujours en PWM.
Tu as 3 solutions pour résoudre ce problème :
- Augmenter le couple RC, ce qui augmentera ton temps de réaction, mais réduira les oscillations.
- Augmenter la tension seuil afin que la première oscillation ne repasse pas au dessus de celle-ci. Ton temps de réaction moyen sera le même.
- Au moment où tu compares ta tension de sortie à la tension de seuil, tu peux mettre en place un
Trigger de Smith qui est un comparateur à seuil : si la tension passe en dessous d'un certain seuil, alors tu bascules au niveau bas, maintenant, s'il passe au dessus d'un second seuil plus important que le premier, tu rebascules au niveau haut ! Ainsi, si tu as de petites oscillations, celles-ci ne te feront pas basculer inopinément. Si tu utilises un microcontroleur, c'est super simple à programmer (il faut définir deux seuils au lieu d'un (exemple 3.8 et 4.2V)). Si tu utilises un comparateur type LM311, c'est aussi très simple, il faut que tu fasses une rétroaction positives à l'aide de deux résistances. (ce sont les résistances qui déterminent tes seuils).
++
Black Templar
EDIT : voila le code :
Version 4
SHEET 1 880 680
WIRE 48 96 48 80
WIRE 112 96 48 96
WIRE 240 96 240 80
WIRE 240 96 192 96
WIRE 48 144 48 96
WIRE 240 160 240 96
WIRE 48 256 48 224
WIRE 144 256 48 256
WIRE 240 256 240 224
WIRE 240 256 144 256
WIRE 144 272 144 256
FLAG 144 272 0
FLAG 240 80 out
FLAG 48 80 in
SYMBOL res 208 80 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 10k
SYMBOL cap 224 160 R0
SYMATTR InstName C1
SYMATTR Value 220n
SYMBOL voltage 48 128 R0
WINDOW 3 -105 183 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V1
SYMATTR Value PULSE(5 0 1 1n 1n 625u 1.25m 8)
TEXT -58 332 Left 2 !.tran 0 1.02 0.997