bom, to fazendo o sistema de automação de um lugar e eu preciso que quando o valor de um sensor for um determinado valor ele acione um led digamos, mas se eu apertar um botão ele deve desconsiderar o valor que ele esta lendo do sensor e ligar o led e quando eu apertar de novo o botão ele volta a considerar o valor do sensor,

eu queria uma ajuda porque não sei nem como começar.

valeu gente! 

___________

isso por acaso resolve o problema é que não tenho como testar


if ((botao >= 10) && (botao <= 20)){    //define com qual valor de leitura do botão ele deve ligar o led
val1 = HIGH;
}
else{
val1 = LOW;
}

if((val1 == HIGH) && (old_val1 == LOW)){
state1 = 1 - state1;
delay(10);
}
old_val1 = val1;
 if (sensor  >= 10) {                 //define com qual leitura no sensor ele aciona o led

 digitalWrite(led, HIGH);
}else if (state1 == 1){
 digitalWrite(led, HIGH);
}
else{
digitalWrite(relvent1, LOW);
}
}

Exibições: 1502

Responder esta

Respostas a este tópico

Pq usou para ler o botão "botao >= 10) && (botao <= 20", não deveria ser ligado e desligado ?

É so usar uma entrada digital e ver se essa entrada esta em estado alto ou baixo, não esqueca de colocar um resistor pulldown para manter ela sempre em estado low quando o btn não estiver pressionado.

De uma procurada aqui mno forum sobre o assunto e vai ver que é facil de colocar.

Com isto:

if((val1 == HIGH) && (old_val1 == LOW)){
state1 = 1 - state1;
delay(10);

tentou inverter o valor de state1 ?

é mais simples que isso, basta declarar ela como boolean (que so aceita true ou false) e inverter o valor assim :

state1=!state1;

o ! inverte o valor que a variavel tem.

O melhor para aprender é ter o arduino e ir testando e ver o efeito, não adiantaria alguem postar o codigo pronto aqui, sugiro ir fazendo e testando para ver o que vai saindo e é claro, ler as bases para aprender e evoluir mais rapido.

Espero ter ajudado,

Jota

valeu deu uma ajuda sim, brigado, o fato de eu ter usado o botão como um valor variavel é que ele varia, vo explicar,

o projeto é meio grande e colocando todos controles que preciso cada um em sua devida porta iria faltar porta no arduino então resolvi fazer tipo uma grade de botões, funciona com se fose a leitura de um potenciometro. como na imagem, 

com isso eu consigo colocar quantos botões quiser usando apenas uma porta, so que o valor fica variando entre uns 5 pontos por isso coloquei daquela forma 

if ((botao >= 10) && (botao <= 20))

Amigo, ja fui por esse caminho para ler 7 botoes usando apenas uma porta analogica do arduino.

Deu tanta dor de cabeça, as vezes lia errado, quando pressionava 2 botoes juntos, era outro problema, em fim, acabei abandonando a ideia e usando o 74HC165N, é a melhor dica que posso te dar, um integrado barato e vai poder ler com certeza qual btn foi pressionado, inclusive com 2 juntos, claro que a leitura é por ex: B00000001 so o 1o botao ou B10000001 o ultimo pressionado, depois é so comparar com o que pretende, vai achar esquemas e codigos ja prontos para fazer tudo isso sozinho, mesmo que perca tempo ao fazer essa parte, vai ganhar tempo que não perdera com leituras aleatorias e flutuações de valor, foi uma dura lição que aprendi, alguns ate tiveram sucesso com esse tipo de coisa inclusive colocando resistores diferentes para diferenciar bem um btn do outro, comigo foi so dor de cabeça e perda de tempo.

Vai por mim, é o melhor a fazer para ler varios btns...

Abraços,

Jota

pocha acabo com a minha brincadeira, ;) blz, obrigado pelo toque não sabia sobre esse esquema vou usar ele então, obrigado

voce poderia me dizer onde achou sobre isso? obrigado

É so digitar 74hc165 Arduino no googlem que vai achar facil...

Para ajudar, tem um esquema usando 2 deles : http://wardyprojects.blogspot.com.br/2011/05/74hc165-piso-shift-reg...

[]´s

Jota

O jota tem razão,declare uma variavel booleana,por exemplo boolean flag = true;

quando o botão for pressionado,mude o estado da flag fazendo flag=!flag;

assim você não precisa ficar guardando o valor anterior da flag.
Se tiver proteus você pode tentar simular, mas vai precisar saber qual pino no arduino corresponde a qual pino do atmega.

Olá vi que to com um problema quase comum...

USO LCD SHIELD ARDUINO... vem com botoes.

Pedi pra imprimir na tela assim : setar: 30

agora quero implementar o botao para que adicione E subtraia .

BUTTON_UP (soma +1 = 31)

BUTTON_DOWN (subtrai - 1 = 29) simplemente soma até eu cansar de apertar e subtrai nas mesmas condições... Sou novo com prog.

lcd-button-ladder.png

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço