collapse

* Posts Recentes

Making Linear Ball Way Cages por jm_araujo
[14 de Agosto de 2018, 23:03]


TV Antiga Desliga-se por almamater
[14 de Agosto de 2018, 12:34]


Tubo PVC 32mm Branco por SerraCabo
[10 de Agosto de 2018, 22:49]


Ajuda para contruir uma "máquina" de fisioterapia para a minha filha. por Hugu
[08 de Agosto de 2018, 00:47]


Comprar solda decente por jm_araujo
[07 de Agosto de 2018, 11:30]


Telescopio por kieferdl
[03 de Agosto de 2018, 10:10]


Com que equipamento costumam aceder ao LR? por KammutierSpule
[01 de Agosto de 2018, 10:14]


BostonDynamics - Vai uma mãozinha? por jm_araujo
[01 de Agosto de 2018, 08:29]


Baby's got blue eyes por jm_araujo
[30 de Julho de 2018, 22:55]


Queimei 1 Motor :) por SerraCabo
[30 de Julho de 2018, 22:32]

Autor Tópico: AnalogWrite() - Controlando brilho de um LED - Basico  (Lida 1844 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline leandrosilva

  • Mini Robot
  • *
  • Mensagens: 45
AnalogWrite() - Controlando brilho de um LED - Basico
« em: 15 de Setembro de 2010, 15:38 »
Aqui está uma pequena aplicaçao sobre as entradas e saidas analogicas (PWM) do arduino .

Escreve um valor analógico (onda PWM) em um pino. Pode ser usado para acender um LED variando o brilho ou girar um motor a velocidade variável. Depois de realizar um analogWrite(), o pino vai gerar uma onda quadrada estável com o ciclo de rendimento especificado até que o próximo analogWrite() seja realizado (ou que seja realizado um digitalRead() oudigitalWrite() no mesmo pino). A freqüência do sinal PWM é de aproximadamente 490Hz.
Nas novas placas Arduino (incluindo o Mini e o BT) com o chip ATmega168 esta função é eficiente nos pinos 3,5,6,9,10 e 11. Placas Arduino mais antigas com um ATmega8 suportam o analogWrite() apenas nos pinos 9,10 e 11.

Sintaxe:
analogWrite(pin, valor)

Parâmetros:
pin: o pino no qual se deseja escrever
valor: o rendimento do ciclo: entre 0 (sempre desligado) e 255 (sempre ligado).

Retorno:
nenhum

Notas e problemas conhecidos:
Não é necessário realizar um pinMode() para pré-determinar o comportamento do pino como saída antes de realizar um analogWrite().
As saídas PWM geradas pelos pinos 5 e 6 terão rendimento de ciclo acima do esperado. Isto se deve às interações com as funções millis() e delay(), que compartilham o mesmo temporizador interno usado para gerar as saídas PWM.

Exemplo:
Torna o brilho de um LED proporcional ao valor lido em um potenciómetro.

int ledPin = 9; // LED conectado ao pino digital 9
int analogPin = 3; // potentiómetro conectado ao pino analógico 3
int val = 0; // variável para armazenar o valor lido
void setup()
{
pinMode(ledPin, OUTPUT); // pré-determina o pino como saída
}
void loop()
{
val = analogRead(analogPin); // lê o pino de entrada
analogWrite(ledPin, val / 4); // os valores do analogRead variam de 0 a 1023, os valores do analogWrite variam de 0 a 255
}