Ola garagistas! Tenho 5 LEDs, quero acender cada um independente acionando um botão. segue a lógica:

1 - aciono botão, led1 pisca 3x a se acende por 1min independente

2 - aciono botão novamente, led2 pisca 3x e se acende por 1min, independente do led1, a assim por diante, para os 5 leds.

3 - quando chegar no led5 e eu acionar o botão novamente, o led1 pisca 3x e se acende por 1min, fazendo assim um loop infinito. 

Fiz um código mas não consegui passar do 1º led, Alguém me ajuda, por favor?

int botao = 2;

int led = 4;

i = 0;

void setup () {

pinMode (botao, INPUT_PULLUP);

pinMode (led, OUTPUT);

}

void loop () {

if (digitalRead (botao ) == 0) {

for (i=0; i<5; i++) {
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
delay(200);
}

digitalWrite(LED, HIGH);

}
}

Exibições: 438

Responder esta

Respostas a este tópico

Tô vendo que teu problema tá na lógica. Falando sério, você quer que agente resolva o código ou quer aprender? Se responder a segunda opção, te aconselho a "brincar" com lógica primeiro aqui: www.code.org

A brincadeira termina lá pela 20a fase do jogo, e vai dificultando até a fase 270. Eu levei 40 dias pra terminar tudo, mas la pelo décimo dia já tava destruindo problemas iguais a esse que vc colocou. Experimente, não vai se arrepender.

Alexandre , adorei esse site www.code.org !
Obrigado por compartilhar.

Projeto do Google, idéia do Tim Berners-Lee, mas não é só pra crianças (apesar do aspecto de joguinho infantil). Lá pela fase 50 o grau de complexidade aumenta bastante, mas aí você vê que é tudo lógica, que a linguagem de programação que escolhemos pra estudar não importa tanto quanto parece.

Me ajudou bastante pra começar a entender oq é programação.  Estou usando com meus alunos de 8 anos a 11 anos: o resultado é que a molecada melhora muito em Português e Matemática, aprende raciocínio lógico, melhora o comportamento e ainda se diverte!

Olá Alexandre! Obrigado pela atenção! Cara, a princípio gostaria que me desse uma ajuda no código. Agradeço também pela indicação do site. Estou no serviço mas assim que eu tiver um tempo vou dar uma olhada melhor.

Abraço!

Oi CAS, bom dia.

A melhor maneira de expressar uma lógica ainda é o fluxograma.

Escrevendo um fluxograma, voce fica independente da sintaxe da linguagem de programação.

É comum encontrar programas para elaborar fluxogramas.

Mas eu costumo usar uma forma simples que eu mesmo elaborei.

Ela não tem muitos recursos, mas ajuda a pensar na lógica e analisar os erros cometidos antes de escrever o code.

Vou anexar aqui um exemplo usando o seu texto.

Voce pode analisar e verificar se atende sua necessidade, e então modificar, se for o caso.

Rui

Fala Rui! Agradeço, tudo que for para acrescentar conhecimento é bem vindo

Abraço!

Nao estou conseguindo carregarvo arquivo.

Vou coloca-lo no pastebin. 

http://pastebin.com/i3FXdaGP

No pastebin perdeu um pouco da formatação.

Rui

dá pra fazer fluxogramas online através do https://www.draw.io/

depois de pronto, basta mandar salvar por exemplo no google drive e dessa forma vc consegue inclusive compartilhar o desenho feito

Muito bom também esse draw.io ! 

Obrigado por compartilhar. 

Da uma olhada sobre "millis()", vejo que esta usando delay isto faz com que você não possa contar o tempo. tirando o delay e implementando funções com o millis() você poderá contar o tempo que passa sem ter delays no seu sketch

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço