collapse

* Links de Robótica

* Posts Recentes

Feira de electricidade e eletrónica por artur36
[Ontem às 23:07]


Power_OK Enermax por almamater
[Ontem às 12:10]


Recomendação de um opamp para um DAC r2r por jm_araujo
[23 de Novembro de 2017, 10:48]


RN42 e TP-Link MR3020 por doiga
[22 de Novembro de 2017, 19:22]


Ajuda Projecto IR / RF por senso
[22 de Novembro de 2017, 13:15]


Ideias para construir um quadrúpede simples por dropes
[21 de Novembro de 2017, 22:43]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]

Autor Tópico: Software multiplexer para usar vários led's rgb  (Lida 979 vezes)

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

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.402
  • Helpdesk do sitio
Software multiplexer para usar vários led's rgb
« em: 12 de Março de 2010, 00:11 »
Boa noite a todos, bem tenho estado aqui a brincar com led's rgb e tive a "brilhante" ideia de fazer multiplexing do sinal pwm usando 2 pinos digitais para ligar e desligar cada led, colocando respectivamente o pino a low ou a high o problema é que as cores de um led "aparecem" no outro, como isto é uma versão muito beta da coisa, meti um led com apenas o vermelho ligado(pwm com valor 255) e outro com apenas o azul(pwm com valor 255) e o resultado é que o vermelho aparece no azul e o azul aparece no vermelho, como se coloca-se um pwm ai de 10-15 para essas cores, já tentei brincar com os valores do delay mas nunca fica melhor, só pior, se retirar o delay então é para esquecer, aqui vai o código:

Código: [Seleccione]
void setup() {
  pinMode(2,OUTPUT);  //software mux
  pinMode(3,OUTPUT);
  digitalWrite(2,HIGH);  //desliga os dois led's
  digitalWrite(3,HIGH);
}

void loop() {
  digitalWrite(2,LOW);  //led 1 ligado
  digitalWrite(3,HIGH);
 
  analogWrite(9,0);
  analogWrite(10,255); //vermelho a 100%
  analogWrite(11,0);
  delay(10);
 
  digitalWrite(2,HIGH);  //led 2 ligado
  digitalWrite(3,LOW);
 
  analogWrite(9,255); //azul a 100%
  analogWrite(10,0);
  analogWrite(11,0);
  delay(10);
 
}

Alguem tem alguma ideia para melhorar isto?
Avr fanboy