Ola, podem me ajudar, explicando ou mostrando o erro desse esquema,
Quando testo separado funciona como desejo, mas quero que funcione junto, porem a porta 2, nao funciona como deveria.....
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(6);
digitalWrite(2, LOW);
delay(100);
digitalWrite(3, HIGH); // tempo variavel para alteracao de leds, utilizando transistor
delay(1000);
digitalWrite(3, LOW);
delay(1000);
}
Tags:
O tempo do pino 2 onde está o led está curto de mais em relação ao pino 3, não será que isso?
Se entendi vc quer fazer o pino 2 piscar com 6 e 100 e ao mesmo tempo o 3 piscar com 1000 e 1000.
Assim nao da, pq quando ele esta fazendo o delay do 1000 o pino 2 fica sem processamento e vice versa.
Vc precisa fazer um loop unico que trate os 2 casos, por ex:
int contador2=0;
int contador3=0;
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
void loop() {
if (contador2==6) digitalWrite(2, HIGH);
if (contador2==106) { digitalWrite(2, LOW); contador2=0; }
contador2++;
if (contador3==1000) digitalWrite(3, HIGH); // tempo variavel para alteracao de leds, utilizando transistor
if (contador3==2000) { digitalWrite(3, LOW); contador3=0;}
contador3++;
delay(1);
}
// Veja que o segundo numero é a soma dos 2, que eh o momento de encerramento do ciclo.
// Considere tb que delay(1000) gera um tempo e 1000x delay(1) gera um tempo um pouco maior, ja que seria feito 1000x o tempo de processamento. Mas como um esta na escala de milissegundos e o outro na escala de microssegundos dá pra aceitar, quem sabe com ajustes, a menos que vc esteja fazendo um relogio. Se for, use um microcontrolador com cristal (e nao ressonador) e interrupcoes ou relogio em hardware (RTC).
Boa noite...e exatamente o q eu queria, muito obrigado, mesmo...
Não e para um relógio, e um sistema semelhante ao da policia, a porta 3 ira ligar e desligar um transistor, e quant a 2, ira variar de um lado ao outro...
Oi FB, bom dia,
O titulo do seu tópico diz : "piscando leds, de forma alternada".
Pelo titulo e por seu código, entendi que quer piscar primeiro o LED do port 2, e depois o do port 3.
Pelo seu código o LED do port 2 fica acesso (ou apagado dependendo de como ligou) por 6 milissegundos, e
apagado (ou acesso) por 100 milissegundos.
Já o LED do port 3 fica acesso (ou apagado) por 1000 milissegundos e apagado (ou acesso) por 1000 milissegundos.
Veja bem, a não ser que esteja vendo a saída do port 2 com osciloscópio, não conseguirá visualmente
ver o que ocorre no port 2.
O olho humano não consegue reter mudanças menores que por volta de 10 milissegundos.
Olhei aqui com o osciloscópio, e está funcionando da forma que escreveu no código.
Rui
Oi RV, boa noite...quando testei o esquema separado ele piscava conforme o desejado, mas agora com o esquema funcionando, ocorreu essa mudança q vc comentou, fiz alguns ajustes, e ficou ótimo...
Vlw muito obrigado...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por