Go Down

Topic: Botao (Read 3477 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy