​ ​ ​ ​ Controlling the speed of a Fan Heater motor - Page 8
Page 8 of 8 FirstFirst ... 6 7 8
Results 71 to 72 of 72

Thread: Controlling the speed of a Fan Heater motor

  1. #71
    Technical Support
    Join Date
    Jan 1970


    Quote Originally Posted by PhilHornby View Post
    I know some of the PIC family have built-in zero-crossing detection facilities and it intrigues me as to how it is achieved. How do you detect 'the absence of a signal'? ... using a very high gain comparator maybe?
    Almost. You determine a zero by it not being non-zero.

    How well one can determine it is non-zero does depend upon how well one can amplify the signal without the noise at zero causing that to appear to be non-zero. As the determined non-zero part of the waveform increases the 'must be zero' part decreases, becomes more accurately centred around the actual zero.

    The only real advantages of being able to accurately determine the exact cross-over is that it reduces the delay needed to when something gets done, it also minimises the effects of any non-linearity which may cause jitter in determining when that something occurs.

    If one can determine when the signal ceases being non-zero and measure the time to when it becomes non-zero again, one can determine when it was probably exactly zero, can adjust timing delays to that.

    For a perfect sine wave and perfect electronics it doesn't matter what voltage point trips as zero as long as it's consistent. In the real world it very likely won't be. As primary voltage drops the secondary will and the start of zero will move back in time, the zero cross-over detected area widens. Thus the lower the trip voltage the better, less widening, more consistency.

  2. #72
    Senior Member
    Join Date
    Oct 2013
    Stockport, UK. On a good day, Cornwall UK


    These comments gave me pause for thought:

    I'd noticed on the 'scope, that the zero-detection point was jumping around a bit ... by about ▒200ÁS or so. Presumably, it was due to the inertia of the motor, that this didn't produce any audible effect, but nonetheless it was present.

    It turned out, that it was simply down to the method of measuring when C.2 had gone low...

    I swapped
    do : loop while ZCD <> 0

    pulsin ZCD,0,W13
    and the issue is resolved. The code doesn't bother checking the measured pulse width, but debugging shows W13 contains between 1632 and 1639 (2.040mS~2.049mS). A variation of 9ÁS isn't too bad
    The command completes 1.26mS after zero-crossing - but I can't trigger the Triac until at least 3.2mS after zero-cross anyway (without ending up with an asymmetric waveform and a very odd sounding motor). I was thinking (only half-jokingly), that something akin to a car 'knock sensor' wouldn't be a bad idea!

    I presume the phenomenon of 'remanence' might go some may to explaining my difficulty in measuring the inductance of this motor? I've tried every method I can find documented - they all give an answer, but none of them agree!

Tags for this Thread


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts