Ir para conteúdo
View in the app

A better way to browse. Learn more.

EletrônicaBR.com

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problema com botão em projeto com RFID + Servo.

Featured Replies

Postado

Olá ! Abraço a todos. Agradeço aos Amigos pela atenção e ajuda.

 

  Consegui resolver o problema do botão para acionar o servo, utilizando esse sketch com pequena modificação.

 

// this constant won't change:

const int  buttonPin = 2;    // the pin that the pushbutton is attached to

const int ledPin = 8;      // the pin that the LED is attached to

 

// Variables will change:

int buttonPushCounter = 0;  // counter for the number of button presses

int buttonState = 0;        // current state of the button

int lastButtonState = 0;    // previous state of the button

 

unsigned long intervalo = 0;

 

void setup() {

  // initialize the button pin as a input:

  pinMode(buttonPin, INPUT);

  // initialize the LED as an output:

  pinMode(ledPin, OUTPUT);

  // initialize serial communication:

  Serial.begin(9600);

}

 

 

void loop() {

  // read the pushbutton input pin:

  buttonState = digitalRead(buttonPin);

 

  // compare the buttonState to its previous state

  if (buttonState != lastButtonState) {

    // if the state has changed, increment the counter

    if (buttonState == HIGH){

      // if the current state is HIGH then the button

      // wend from off to on:

      buttonPushCounter++;

      intervalo = millis();

      Serial.println("on");

      Serial.print("number of button pushes:  ");

      Serial.println(buttonPushCounter);

    } else {

      // if the current state is LOW then the button

      // wend from on to off:

      Serial.println("off");

    }

    // Delay a little bit to avoid bouncing

    delay(50);

  }

  // save the current state as the last state,

  //for next time through the loop

  lastButtonState = buttonState;

 

  // se passar mais que 2 segundos entre os pressionar de botões, ele volta a zero e precisa pressionar duas vezes de novo   

  if(millis() > intervalo+2000){

  buttonPushCounter = 0;

}   

 

 

  // turns on the LED every four button pushes by

  // checking the modulo of the button push counter.

  // the modulo function gives you the remainder of

  // the division of two numbers:

  if (buttonPushCounter  == 5) {

    digitalWrite(ledPin, HIGH);

    delay(2000);

    digitalWrite(ledPin, LOW);

    buttonPushCounter = 0;

  }

  //else {

    //digitalWrite(ledPin, HIGH);

  //}

 

}

 

     

Postado

Olá

 

Tente removendo esta parte do código: linhas(190 até 195)

 

  {

      myservo.write(0);    //Move o servo para o angulo de 0 graus

      delay(4500);        //Delay para o servo atingir a posição

      myservo.write(90);  //Move o servo para o angulo de 90 graus

      delay(500);          //Delay para o servo atingir a posição

  }

 

Acho que assim vai funcionar.

Postado
  • Autor

Olá ! Muito agradecido pela ajuda, mas se eu retirar essa parte, quando usar uma tag cadastrada e chamar a função void efeitoPermitido() , o servo não vai funcionar. O botão é para acionar o servo diretamente. Mas não encontrei uma maneira de inibir o servo se ficar com o botão pressionado por mais que três segundos por exemplo. Quero que ligue só dando os cinco pulsos curtos com menos de dois segundos.

 

      Grande abraço.

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

Account

Navigation

Pesquisar

Pesquisar

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.