Ola galera, estou com uma dúvida aqui, estou tentando criar uma programação com um botão que possa ser inicializado uma única vez(button1) e só poderá inicializado após eu apertar o botão desliga(button2), para assim não ocorrer que o botão de liga possa interromper o ciclo), segue a linha de código para analise, desde já vlw pela ajuda ;)
int ledmotor1 = 11; //estrela
int ledmotor2 = 10; // triangulo
int button1 = 2;
int button2 = 3;
void setup() {
pinMode(ledmotor1, OUTPUT);
pinMode(ledmotor2, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
}
void loop() {
int state1 = digitalRead(button1);
if ( state1 == HIGH )
{
changemotor();
}
int state2 = digitalRead(button2);
if (state2 == HIGH ) {
desliga();
}
}
void changemotor() {
digitalWrite(ledmotor1, HIGH);
digitalWrite(ledmotor2, LOW);
delay(5000);
digitalWrite(ledmotor1, LOW);
delay(500);
digitalWrite(ledmotor2, HIGH);
}
void desliga() {
digitalWrite(ledmotor1, LOW);
digitalWrite(ledmotor2, LOW);
}
Tags:
No if coloque assim
int state1 = digitalRead(button1);
int state2 = digitalRead(button2);
if(state1==High && state2==Low){
{
changemotor();
}
if (state2 == HIGH && state1==Low) {
desliga();
}
Boa Noite IIqner Aparecido, valeu pela força amigão, mas infelizmente ainda continua ocorrendoo acionamento do botão, o que eu realmente preciso que após o acionamento uma unica vez do botão (button1) o mesmo se torne inoperante e possa voltar a funcionar quando eu acionar o botão 2 (button2)ou se possivel eles possa funcionar como o botão liga e depois ele se torne um botão de desligamento no proximo toque alguma idéa? Muito Obrigado pela ajuda, abraços;
static int flag=1;
int state1 = digitalRead(button1);
int state2 = digitalRead(button2);
if(state1==High && state2==Low && flag == 1){
{
changemotor();
flag=0;
}
if (state2 == HIGH && state1==Low)
{
desliga();
flag=1;
}
Boa Noite Jucelei Freitas, cara Muito Obrigado, está bem próximo disso, está bem proximo disso mesmo cara, agora gostaria de pedir só mais uma ajudinha, como poderia fazer para que o botão desliga possa desligar a qualquer momento? agradeço mesmo pela ajuda amigos, abraços;
int motorestrela = 10;
int motortriangulo = 9;
int button1 = 2;
int button2 = 3;
void setup(){
pinMode(motorestrela, OUTPUT);
pinMode(motortriangulo, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
}
void loop() {
static int flag=1;
int state1 = digitalRead(button1);
int state2 = digitalRead(button2);
if(state1==HIGH && flag == 1)
{
changemotor();
flag=0;
}
if (state2 == HIGH && flag ==0)
{
desliga();
flag = 1;
}
}
void changemotor() {
digitalWrite(motorestrela, HIGH);
delay(5000);
digitalWrite(motorestrela, LOW);
delay(250);
digitalWrite(motortriangulo, HIGH);
}
void desliga() {
digitalWrite(motortriangulo, LOW);
digitalWrite(motorestrela, LOW);
}
è só tirar o state1==Low fica assim:
static int flag=1;
int state1 = digitalRead(button1);
int state2 = digitalRead(button2);
if(state1==High && flag == 1){
{
changemotor();
flag=0;
}
if (state2 == HIGH )
{
desliga();
flag=1;
}
olha como ficou
int motorestrela = 10;
int motortriangulo = 9;
int button1 = 2;
int button2 = 3;
static int flag=1;
void setup(){
pinMode(motorestrela, OUTPUT);
pinMode(motortriangulo, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
}
void loop() {
int state1 = digitalRead(button1);
int state2 = digitalRead(button2);
if(state1==HIGH && flag == 1)
{
changemotor();
flag=0;
}
if (state2 == HIGH && flag ==0)
{
desliga();
flag = 1;
}
}
void changemotor() {
digitalWrite(motorestrela, HIGH);
delay(5000);
digitalWrite(motorestrela, LOW);
delay(250);
digitalWrite(motortriangulo, HIGH);
}
void desliga() {
digitalWrite(motortriangulo, LOW);
digitalWrite(motorestrela, LOW);
}
ainda não houve mudanças, eu preciso que o button2 funcione a qualuqer momento que precisar e o button1 acione uma unca vez,
assim :
int motorestrela = 10;
int motortriangulo = 9;
int button1 = 2;
int button2 = 3;
static int flag=1;
void setup(){
pinMode(motorestrela, OUTPUT);
pinMode(motortriangulo, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
}
void loop() {
int state1 = digitalRead(button1);
int state2 = digitalRead(button2);
if(state1==HIGH && flag == 1)
{
changemotor();
flag=0;
delay(15);
}
if (state2 == HIGH)
{
desliga();
flag = 1;
delay(15);
}
}
void changemotor() {
digitalWrite(motorestrela, HIGH);
delay(5000);
digitalWrite(motorestrela, LOW);
delay(250);
digitalWrite(motortriangulo, HIGH);
}
void desliga() {
digitalWrite(motortriangulo, LOW);
digitalWrite(motorestrela, LOW);
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por