Go Down

Topic: Controlling PWM pin (Read 435 times) previous topic - next topic

muda

I have hooked up LED driver to one of PWM pins. It is for night time moon light.
How I cut off light at day ?

   analogWrite  (moon, 0 );
or
   digitalWrite  (moon,LOW );
or ...
 

Thanks

bubulindo

Odd as it may seem...

Those are exactly the same thing:
Code: [Select]

#define HIGH 0x1
#define LOW  0x0 // <- same as 0


How do you have your LED hooked up? Is it inverted logic?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

retrolefty


I have hooked up LED driver to one of PWM pins. It is for night time moon light.
How I cut off light at day ?

   analogWrite  (moon, 0 );

Yes, that is proper form.
or
   digitalWrite  (moon,LOW );
Interesting if you dig down into the source code for the analogWrite() function, I believe that analogWrite(pin,0); results in simply using a digitalWrite(pin, LOW). As I recall in some early IDE versions the analogWrite(pin,0) showed up a bug where instead of a constant low output there was a single one count duty cycle output and would show up as as very dim light if wired to a high efficiency led. I recall hooking up my oscilloscope to a PWM output set to 0 and still seeing a single high pulse, so something was screwy with the timer counter/resetting/overflow or interrupt or something along those lines. I guess the simple fix was to have the function check for a 0 duty cycle request and just force the output pin LOW.  :D

Lefty

or ...
 

Thanks

retrolefty


Odd as it may seem...

Those are exactly the same thing:
Code: [Select]

#define HIGH 0x1
#define LOW  0x0 // <- same as 0


How do you have your LED hooked up? Is it inverted logic?


I think his question rather was to use the analogWrite or the digitalWrite function. ?

Lefty

bubulindo


Interesting if you dig down into the source code for the analogWrite() function, I believe that analogWrite(pin,0); results in simply using a digitalWrite(pin, LOW). As I recall in some early IDE versions the analogWrite(pin,0) showed up a bug where instead of a constant low output there was a single one count duty cycle output and would show up as as very dim light if wired to a high efficiency led. I recall hooking up my oscilloscope to a PWM output set to 0 and still seeing a single high pulse, so something was screwy with the timer counter/resetting/overflow or interrupt or something along those lines. I guess the simple fix was to have the function check for a 0 duty cycle request and just force the output pin LOW.  :D

Lefty


Not a bug but the way the PWM works in the AVR. I don't have the manual, or time to chase that down, but it is written there (had that problem myself before).



Odd as it may seem...

Those are exactly the same thing:
Code: [Select]

#define HIGH 0x1
#define LOW  0x0 // <- same as 0


How do you have your LED hooked up? Is it inverted logic?


I think his question rather was to use the analogWrite or the digitalWrite function. ?

Lefty


You are right. Some dyslexia there, I read two analogWrite(). Disregard my previous post.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

muda

Thanks for thorough explanation.

Cheers

Go Up