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);

}

Exibições: 2830

Responder esta

Respostas a este tópico

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...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço