Ola pessoal, adicionei esse código no arduino, compilou certinho, mas não funcionou, era pra ascender 5 leds com um botão, ascendendo um led e apagando o anterior.

int led0 = 8;
int led1 = 9;
int led2 = 10;
int led3 = 11;
int led4 = 12;
int botao=7;
int EstadoBotao;
int ledaceso;
void setup()
{
pinMode(botao, INPUT);
pinMode(led0, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop()
{
ledaceso=7;
EstadoBotao=digitalRead(botao);
if ((EstadoBotao==1 && ledaceso==7))
{
ledaceso++;
digitalWrite(ledaceso, 1);
}
else if((EstadoBotao==1 && ledaceso!=7))
{
digitalWrite(ledaceso, 0);
ledaceso++;
digitalWrite(ledaceso, 1);
}
else if ((EstadoBotao==1 && ledaceso==12))
{
digitalWrite(ledaceso, 0);
ledaceso=7;
digitalWrite(ledaceso, 1);
}
}

Exibições: 372

Responder esta

Respostas a este tópico

Olá eu te trouxe um presentinho... Ho ho ho!  

Segue abaixo o código para o seu projeto:

#define Botao 8
#define led1 0
#define led2 1
#define led3 2
#define led4 3
#define led5 4

void mudaLed();
void apertaBotao();

char proximo = 0x01;

void setup() {
// put your setup code here, to run once:
for(short i=0x00;i<0x08;i++) pinMode(i, OUTPUT);// Todas as portas do 0 até a 7 são saidas

pinMode(8, INPUT_PULLUP);

pinMode(Botao, OUTPUT);

}

void loop() {
// put your main code here, to run repeatedly:
apertaBotao();
mudaLed();
}

void apertaBotao()
{

if(!digitalRead(Botao))
{
delay(300); //delay para evitar que voce
//aperte e sai piscando tudo de uma vez
proximo++;

if(proximo > 0x05) proximo = 0x01;
}


}

void mudaLed()
{
switch(proximo)
{
case 0x01:
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);

break;

case 0x02:
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
break;

case 0x03:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
break;

case 0x04:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
break;

case 0x05:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
break;
}

}

O botão voce nem precisa de pullup pois ja defini ele no software,

ai você coloca um pino do botão indo para o arduino e o outro no terra.

Estou no espirito natalino... se não aceitar como presente aceito R$50,00 kkkkkk

Um bom final de ano e feliz natal!

Valew, obrigado mas eu consegui montar o programa, eu usei if e else
Agora estou tentado adicionar um segundo botão para fazer o led voltar de qualquer ponto. Se puder me ajudar agradeço

De qualquer ponto? mais qual ponto? tem que voltar sempre no mesmo ponto ou tem que ser aleatório?
se for para voltar em apenas um ponto sempre, no meu caso, é so eu fazer assim:
#define Botao1 8
#define Botao2 9

pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
pinMode(Botao1, OUTPUT);
pinMode(Botao2, OUTPUT);

if(!digitalRead(Botao2))
{
delay(300); //delay para evitar que voce
//aperte e sai piscando tudo de uma vez
proximo = 0x03; <------------------------ Ponto que ele volta... } } Era isso que você precisa?

Boa noite! acho que ele quis dizer do ponto que parou.

por exemplo, eu tenho 5 leds dai eu avanço do led 4 para o led 3 com um botao e com outro botao eu possa voltar do 3 para o 4 e do 4 para 5 e depois eu possa avançar novamente. Enfim, eu quero avançar e retonar a vontade com dois botões.

coloquei um post la com o código que montei, da uma olhada la

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço