Go Down

Topic: Botao (Read 3298 times) previous topic - next topic

Fidel

Pois na pratica nao esta a funcionar, nao tem como voce testar?? so para ter certeza que nao me estou a enganar.

Obrigado

MarceloBoeira

vou testar...
tu pode me dizer o que acontece?
My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

MarceloBoeira

tu sabe como montar a entrada do botão?

coloca 5v no botaão e um resistor ligado a entrada do botao e o GND, depois liga na saida do botão o pino 8 digital.
My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

Fidel

Sim, eu sei. A parte da montagem tenho a certeza que esta certa.
Basicamente nao acontece nada, ainda pensei que fosse do delay ser muito lento mas nao.

Obrigado

MarceloBoeira

My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

MarceloBoeira

Quote

const int botao = 2;     
const int led =  13;     
int valor_pwm;

int estado_botao = 0;         

void setup() {
  pinMode(led, OUTPUT);     
  pinMode(botao, INPUT);     
}

void loop(){
  estado_botao = digitalRead(botao);
  while (estado_botao == HIGH) {

         valor_pwm = valor_pwm + 50;;
         delay(1000);
         if (valor_pwm >= 250)
         {
             valor_pwm = 250;
         }
}
analogWrite(led, valor_pwm);   
}

My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

Fidel

Ok, agora tou a jantar daqui a pouco ja experimento.
Já tinha experimentado uma coisa parecida doutro projecto.

Obrigdo

MarceloBoeira

usa no lugar o while um IF se não funcionar, pra mim funcionou so com iF...
mas em teoria o while deveria funcionar...
My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

Fidel

Ta 5* é mesmo isso, tive de mudar para if.
Tenho outra questão, sera que da so com um arduino uno usar para esta função e mais algumas diferentes, para ligar por codigo para fazer isto?? tudo no mesmo arduino??


Muitissssimo obrigado

MarceloBoeira

funcionou certo?
entendeu o código, o errado do outro era apenas a leitura do digital(8) que deve ser feita como uma constante...
--------------------------------
tu quer fazer isto e mais algumas outras coisas no mesmo arduino?
dai teria q adaptar o código desta função ou das outras para q o delay().. não modifique mas acredito q da sim,...
eu fiz um sistema no de tomada via internet no meu enquanto ele recebia tweets e mostrava na tela lcd 16x2, mas dai e especificamente para cada função teria q se fazer um "estudo" uma análise... cada caso dependeria de uma diferença pois não há algo genérico....


My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

Fidel

Ok, entendi.
Afinal falta aqui uma coisa, se eu deixar o dedo do botao ( ou seja botao a 0) a saida pwm mantem os 5v.
Ja tentei isto mas sem resultado:
if  (botao == LOW)
         {
          valor_pwm = 0;
         }

MarceloBoeira

não pois cada vez q soltar ele vai desligar...
coloca assim,

if  (estado_botao == HIGH) {

         valor_pwm = valor_pwm + 50;;
         delay(1000);
         if (valor_pwm >= 250)
         {
             valor_pwm = 0;
         }

depois dos 5s ligado pressionando botao ele volta pra 0;
My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

Fidel

Pois mas o que eu quero e mesmo isso. quando largar o dedo tem de voltar a 0, nao passando os 5s.
Mas o que te mostrei não funcionou.

Obrigado

MarceloBoeira

const int botao = 2;     
const int led =  13;     
int valor_pwm;

int estado_botao = 0;         

void setup() {
  pinMode(led, OUTPUT);     
  pinMode(botao, INPUT);     
}

void loop(){
  estado_botao = digitalRead(botao);
  if (estado_botao == HIGH) {
        valor_pwm = valor_pwm + 50;;
         delay(1000);
         if (valor_pwm >= 250){
             valor_pwm = 250;
         }
}
  if (estado_botao == LOW){
  valor_pwm = 0;
}
analogWrite(led, valor_pwm);   
}
My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

Fidel

É mesmo isso, nem sei como te agradecer, muito obrigado pela paciência que tives-te.

Obrigado
Abraço

Go Up