Eu estava olhando para o meu Arduino Uno e notei que o símbolo por pinos digitais 11
, 10
, 9
, 6
, 5
, e 3
. O que isso significa? Isso afeta a maneira como funciona? Não posso usar esses pinos para determinadas situações?
Eu estava olhando para o meu Arduino Uno e notei que o símbolo por pinos digitais 11
, 10
, 9
, 6
, 5
, e 3
. O que isso significa? Isso afeta a maneira como funciona? Não posso usar esses pinos para determinadas situações?
Respostas:
relaxar. Não se preocupe. Esses pinos são chamados PWM
e são os mesmos que os outros pinos, exceto que eles têm um "bônus adicional".
Alguns usos do site do Arduino :
- Escurecendo um LED
- Simula uma saída analógica. A saída ainda está alternando digitalmente de 0V a 5V. No entanto, filtro passa-baixo (capacitor e resistor) para simular tensões analógicas.
- Gerando sinais de áudio.
- Fornecendo controle de velocidade variável para motores.
- Gerando um sinal modulado, por exemplo, para acionar um LED infravermelho para um controle remoto.
Como funciona:
Os pinos PWM são controlados por temporizadores no chip que alternam os pinos automaticamente a uma taxa de cerca de 490Hz. A "Modulação por largura de pulso" (PWM) é o tempo que o pino permanece ligado ou desligado por um único ciclo dessa frequência. Isso pode escurecer um LED, dando a ilusão de que ele está na metade do brilho como antes, onde está realmente piscando muito rapidamente.
Quando há um ciclo de trabalho de 25%, ocorre um quarto do tempo. Se você usasse um LED, ele apareceria aproximadamente 1/4 como brilhante [mais ou menos]. (Nota: como algumas pessoas apontaram, isso não é verdadeiramente proporcional, mas vamos deixar assim por simplicidade. EX: 25% nem sempre é 1/4 do brilho.)
(Se você é realmente experiente em eletricidade, provavelmente pode adicionar um capacitor para torná-lo também uma saída analógica.)
Como usar esses pinos na saída:
Primeiro, você precisa definir o pino como saída. Então, você usa
analogWrite(ledPin, 128);
para iniciá-lo. O ledPin
é o pino PWM que você deseja iniciar PWM e 128
deve ser substituído por um número entre 0
e 255
; 0
: 0% duty cycle
(Transforma o pino completamente desligado) e 255
: 100% duty cycle
. (liga o pino completamente)
Fonte: http://www.arduino-tutorials.com/arduino-pwm/
Por que não consigo ligar e desligar a luz muito rápido no meu código ?:
Tecnicamente, você pode, no entanto, existem alguns problemas:
Realmente não fará muita diferença se o único objetivo do Arduino é gerar sinais PWM. No entanto, se você colocar algum atraso maior que 50 MS no loop principal, isso atrapalhará o tempo. Com a abordagem de software, você deseja eliminar as funções de "atraso", uma vez que o Arduino é executado apenas em um thread (ele só pode fazer uma coisa ao mesmo tempo). Se você sabe o que está fazendo, não fará muita diferença diminuir a luz, mas se você tiver um alfinete extra com o PWM, estará perdendo seu tempo com uma abordagem de software.
Como outros já apontaram:
Você ainda precisa de um resistor para seus circuitos para limitar a corrente e a tensão. Você não pode pular isso.
Um equívoco comum sobre os pinos do PWM é que, ao usar o PWM, não é necessário o uso de resistores limitadores de corrente (com LEDs, por exemplo).
Isso não é verdade. Os pinos PWM devem ser considerados pinos digitais, que são ligados e desligados automaticamente. Isso significa que eles vão para a mesma voltagem ALTA de qualquer outro pino.
Ao usar LEDs com PWM, você ainda deve usar resistores limitadores de corrente. Ao usar motores com PWM, você deve (quase sempre) usar um transistor.