Pulsante: come utilizzare questo semplice elemento con Arduino

pulsante

Un push button è un pulsante che consente di interrompere o inviare un segnale elettronico. Con questo semplice elemento combinato con altri elementi puoi creare progetti per una moltitudine di applicazioni. L'uso di questo tipo di pulsanti è molto comune quando si tratta di progetti con Arduino. E combinando molti di questi pulsanti puoi creare una tastiera un po 'più complessa, sebbene ci siano già tastiere programmabili per questi usi ...

Tra l'altro, non si deve confondere il pulsante con un interruttore. Sono cose totalmente diverse. La differenza è che l'interruttore o l'interruttore viene attivato o disattivato ad ogni pressione che viene effettuata su di esso. Mentre il pulsante rimarrà in uno stato solo mentre viene esercitata la pressione su di esso. Ho commentato che può inviare o interrompere, questo perché ci sono due tipi fondamentali di pulsanti.

simbolo del pulsante

Ci sono i file Pulsanti NA o normalmente aperti e pulsanti NC o normalmente chiusi. Questo suonerà anche dai relè. E sì, è esattamente la stessa operazione. Quando hai un NC, lascerà passare la corrente attraverso i suoi terminali e si interrompe solo mentre lo premi. D'altra parte, la NA non lascia passare la corrente quando non viene esercitata pressione su di essa e la lascia passare solo quando la si preme.

Sapendo ciò, è quasi tutto ciò che devi sapere su un pulsante per avviare la connessione e la programmazione utilizzando Arduino. La verità è che è un elemento così semplice che non c'è molto altro da dire su questo tipo di pulsanti.

Push Button Integration con Arduino

circuito con arduino

La collegare un pulsante farlo interagire con Arduino non potrebbe essere più semplice. Un esempio è il diagramma che puoi vedere su queste righe. Sarebbe tutto ciò che serve per iniziare a sperimentare. Ma ovviamente, con quello schema puoi fare poco. Sarebbe necessario che tu mettessi un po 'di immaginazione per decidere cosa controllerà quel pulsante. Infatti, se leggi spesso hwlibre.es avrai già visto alcuni articoli in cui abbiamo utilizzato i pulsanti ...

Modi per collegarlo

pull-up e pull-down

Una cosa che dovresti sapere è la questione dell'anti-rimbalzo e come collegare questi pulsanti. Per prima cosa andiamo al modo per collegarli, che già sai può essere con i resistori di pull-up e pull-down:

  • Pull-up- Con questa impostazione del resistore, quando si preme il pulsante, il microcontrollore o Arduino possono vedere o leggere uno zero su quel pin. Cioè, lo interpreta come un segnale BASSO.
  • Pull-down: In questo caso è il contrario, puoi leggere o ricevere un segnale 1 o HIGH attraverso il pin collegato.

Non confonderlo con NC o NA, che è qualcos'altro di diverso come abbiamo visto in precedenza. Questo è indipendente dall'altro ...

Anti-rimbalzo

I pulsanti hanno un'estensione effetto di rimbalzo quando viene premuto. Cioè, quando viene premuto o rilasciato c'è una fluttuazione nel segnale che passa attraverso i suoi contatti e potrebbe farlo passare da uno stato HIGT a BASSO o viceversa senza che ciò avvenga davvero. Ciò può produrre un effetto indesiderato su Arduino e fargli fare cose strane, come attivare un elemento quando volevamo davvero spegnerlo con il pulsante, ecc. Questo perché Arduino interpreta i rimbalzi come se fosse stato premuto più di una volta ...

Quell'effetto negativo ha una soluzione. Per questo, un piccolo condensatore deve essere implementato nel circuito antirimbalzo (metodo hardware) o software (modificando il codice sorgente), sia che sia stata utilizzata una configurazione pull-up o pull-down o se sia NC o NO. In tutti questi casi, la soluzione deve essere implementata per evitare questi rimbalzi.

Ad esempio, i circuiti pull-up e pull-down con l'estensione condensatore anti-rimbalzo avrebbero un aspetto simile a questo:

rimbalzista

Mentre l' metodo software Potrebbe essere visto in questo frammento di codice:

if (digitalRead (button) == LOW) // Controlla se il pulsante è premuto
{
premuto = 1; // La variabile cambia valore
}
se (digitalRead (pulsante) == HIGH && premuto == 1)
{
// Esegue l'azione desiderata
premuto = 0; // La variabile ritorna al suo valore originale
}

Semplice esempio di progetto

anti-rimbalzo con pulsante e Arduino

Una volta appreso l'argomento dei modi per collegare il nostro pulsante e il circuito anti-rimbalzo, vedremo un esempio pratico di controllare un LED con il pulsante. Lo schema è altrettanto semplice come puoi vedere.

Una volta connesso correttamente, la prossima cosa è scrivere il codice nell'IDE di Arduino per programmare il pannello e iniziare a sperimentare con i pulsanti. Un semplice esempio di codice per controllare il nostro circuito sarebbe il seguente:

// Esempio di schizzo per controllare il pulsante
pin int = 2;
int state;
pulsante int = 0;
void setup ()

{
pinMode (2, INPUT); // Per leggere l'impulso inserendo quel pin

pinMode (13, OUTPUT); // Per il LED

Serial.begin (9600);
}
void loop ()

{
if (digitalRead (2) == HIGH)

{

perno = 2;

antiBounce (); // Richiama la funzione anti-rimbalzo

}
}
// Funzione anti-rimbalzo del software
void anti-bounce ()

{
while (digitalRead (pin) == LOW);
state = digitalRead (13);
digitalWrite (13,! stato);
while (digitalRead (pin) == HIGH);

}


5 commenti, lascia il tuo

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Immagine segnaposto Marcelo Castillo suddetto

    Freddo!!! Grazie mille, ho costruito un CNC e paradossalmente i pulsanti sono stati la cosa più difficile da mettere a punto per me.

  2.   Liliana suddetto

    Ciao! Consulto da novizio, nel collegamento con GND… ..il filo nero non deve uscire dalla linea negativa, che si trova sopra quella mostrata nello schema 2?

  3.   Giovanni suddetto

    Ottima spiegazione .. un paio di anni fa ho fatto un progetto di accensione di un'auto e la verità è che non sono mai riuscito a premere correttamente i tasti. Per l'accensione .. Proverò questo metodo. Ti ringrazio molto per questo grande aiuto

  4.   omar Romero Rincon suddetto

    Ciao, sto realizzando un progetto con tre pulsanti e 5 led con la seguente sequenza.
    1 pulsante invia un segnale a 2 LED, che ho chiamato 1 e 2.
    il secondo pulsante invia segnalazione a 3 led, denominati 2,3 e 4.
    il mio terzo pulsante invia un segnale ad altri 3 led, chiamati 3,4, 5 e XNUMX.

    Sono riuscito a fare quella sequenza, ho solo un problema, premendo 2 pulsanti manda un falso segnale al led che dovrebbe rimanere acceso facendolo lampeggiare ad intermittenza, l'ho controllato mettendo un ritardo (di 2 secondi, che è quello di cui ho bisogno in modo che i LED rimangano accesi e poi si spengano. quindi la mia domanda è come posso inserire la funzione millis nel mio programma, non capisco come funziona millis, voglio sapere se puoi aiutarmi facendo un esempio per 3 pulsanti usando millis in ciascuno di essi, ho bisogno di millis per poter premere i pulsanti in qualsiasi momento senza ritardare l'arduino.

    1.    Isaac suddetto

      Hola Omar,
      Ti consiglio di vedere il nostro tutorial Arduino:
      https://www.hwlibre.com/programacion-en-arduino/
      E puoi anche vedere il nostro articolo su millis():
      https://www.hwlibre.com/millis-arduino/
      Saluti.