Arduino, Internet das Coisas e Computação vestível

Você está em » Home :: Componentes diversos

[Voltar]

[Avançar]

Chave Táctil ou Push Button

Descrição

A Chave Táctil ou Push Button como também é conhecido, é um dos componentes eletrônicos mais utilizados para prototipagem de projetos. Esta chave é um tipo de interruptor pulsador (conduz somente quando está pressionado).

Especificação

  • Tensão máxima: 250V
  • Corrente máxima: 50mA
  • Dimensões: 6x6x4,3; 12x12x4,3; etc.

 

Projeto(s) relacionado(s)


Acionando um LED com Chave Táctil ou Push-Button

O projeto utiliza um resistor de 100 ohms (Como calcular o resistor adequado), Chave Táctil Push-Button, Arduino Uno R3 e Jumpers para ligar ou desligar um LED.

Observe que a Chave Táctil possui dois estados lógicos: HIGH (Vcc) e LOW (GND) ou NÃO PRESSIONADO e PRESSIONADO. Entretanto, o circuito lógico do Arduino sempre reconhece 3 estados lógicos, que são: HIGH, LOW e Floating. O Floating ocorre porque o microprocessador não está recebendo nem HIGH ou LOW. Neste último caso, a leitura fica flutuando e o LED fica piscando. Para resolver o problema, é necessário acrescentar um resistor ao circuito ou inicializar o pino da Chave Táctil como INPUT_PULLUP.


// Projeto: Acionando um LED com Chave Táctil ou Push-Button 
// Autor: André Silveira
// Data: 15/02/2019 

int PinoBotao = 6;   				// Pino de entrada do Botão 
int PinoLed = 10;        			// Pino de saída do LED
int Botao_status;  		 		// Variável armazena status do botão

void setup() { 
    pinMode(PinoBotao,INPUT_PULLUP);    // Pino inicializado como INPUT_PULLUP devido floating 
    pinMode(PinoLed,OUTPUT); 
    Serial.begin(9600);
}

void loop() { 
    Botao_status = digitalRead(PinoBotao); 	// Lê status do botão 
    if (Botao_status == LOW) { 			// Se botão foi acionado => LOW 
        digitalWrite(PinoLed,HIGH);  
    } else { 
            digitalWrite(PinoLed,LOW); 
            } 
}



Projeto Placar Eletrônico com Max7219

O projeto utiliza Matriz de LED 8×8 - MAX7219, Arduino Uno R3 e Chave Táctil ou Push-Button para incrementar ou decrementar o valor (0 até 15) de um placar eletrônico.

// Programa: Placar Eletronico com Arduino e Max7219
// Autor: André Luis Marques da Silveira
// Data: 23/03/2018

#include ‹LedControl.h›
#define MAX_DEVICES  1  // Numero de modulos utilizados  
#define DATA_PIN        4  // Ligacoes ao Arduino MD_MAX72xx
#define CS_PIN            5  // Ligacoes ao Arduino MD_MAX72xx
#define CLK_PIN          6  // Ligacoes ao Arduino MD_MAX72xx

LedControl Placar = LedControl(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

int v_but1, v_but2;      // Armazenam o valor dos botoes
int placar;                   // Variável do placar atual
int placar_ant;            // Variável do placar anterior
int delaytime = 100;   // Tempo
int brilho = 15;          // Brilho dos displays

byte CARACTER [16][8]  = {
         {B00011000, B00100100, B00100100, B00100100, B00100100, B00100100, B00011000, B00000000}, // 0
         {B00001000, B00011000, B00001000, B00001000, B00001000, B00001000, B00011100, B00000000}, // 1
         {B00011000, B00100100, B00000100, B00001000, B00010000, B00100000, B00111100, B00000000}, // 2
         {B00011000, B00100100, B00000100, B00001000, B00000100, B00100100, B00011000, B00000000}, // 3
         {B00001100, B00010100, B00100100, B00111100, B00000100, B00000100, B00000100, B00000000}, // 4
         {B00111100, B00100000, B00111000, B00000100, B00000100, B00100100, B00011000, B00000000}, // 5
         {B00011000, B00100000, B00100000, B00111000, B00100100, B00100100, B00011000, B00000000}, // 6
         {B00111100, B00000100, B00000100, B00001000, B00010000, B00100000, B00100000, B00000000}, // 7
         {B00011000, B00100100, B00100100, B00011000, B00100100, B00100100, B00011000, B00000000}, // 8
         {B00011000, B00100100, B00100100, B00111100, B00000100, B00000100, B00011000, B00000000}, // 9
         {B01000110, B11001001, B01001001, B01001001, B01001001, B01001001, B11100110, B00000000}, // 10
         {B01000100, B11001100, B01000100, B01000100, B01000100, B01000100, B11101110, B00000000}, // 11
         {B01000110, B11001001, B01000001, B01000010, B01000100, B01001000, B11101111, B00000000}, // 12
         {B01000110, B11001001, B01000001, B01000010, B01000001, B01001001, B11100110, B00000000}, // 13
         {B01000011, B11000101, B01001001, B01001111, B01000001, B01000001, B11100001, B00000000}, // 14
         {B01001111, B11001000, B01001110, B01000001, B01000001, B01001001, B11100110, B00000000}  // 15
};

void setup() {
      Serial.begin(9600);
      pinMode(8, INPUT_PULLUP);       // Inicializa pino botão aumenta
      pinMode(9, INPUT_PULLUP);       // Inicializa pino botaão diminui
      Placar.shutdown(0, false);          // Inicializa os displays
      Placar.setIntensity(0, brilho);     // Ajusta o brilho de cada display
      Placar.clearDisplay(0);               // Apaga os display
      MostrarCaracter(0, 0);              // Mostra 0 (zero) no display
}

void loop() {

  // Verifica se o botao de aumentar foi acionado

  v_but1 = digitalRead(8);  // Le botão aumentar
  if  (v_but1 == 0)   {
       placar = placar + 1;
       if  (placar >= 16) { placar = 15; }

       if  (placar_ant != placar)     {
            MostrarCaracter(placar, 0); //Chama a rotina que atualiza o display
            v_but1 = digitalRead(8);
            placar_ant = placar;
       }
      
       while (digitalRead(8) == 0) {
            delay(delaytime);
       }
 }

 // Verifica se o botao de diminuir foi acionado

  v_but2 = digitalRead(9);  // Le botão diminuir
  if  (v_but2 == 0)   {
       placar = placar - 1;
       if  (placar <= 0) { placar = 0;  }

       if  (placar_ant != placar)     {
            MostrarCaracter(placar, 0); //Chama a rotina que atualiza o display
            v_but2 = digitalRead(9);
            placar_ant = placar;
       }

       while (digitalRead(9) == 0) {
            delay(delaytime);
       }
  }
}

// Rotina Mostra número no display

void MostrarCaracter(int numero, int tela) {

    for  (int i = 0; i < 8; i++)  {
          Placar.setRow(tela, i, CARACTER[numero][i]);
    }
  
}


Controle de giro de motor de passo com botões

O projeto usa Chave Táctil ou Push Button, placa Arduino Uno R3, Motor de Passo 28BYJ-48 + Driver ULN2003 e jumpers para controlar o giro de um motor.

// Projeto: Controle de giro de motor de passo com botões 
// Autor: André Silveira
// Data: 12/05/2019

#include "Stepper.h"         	 					// declaração biblioteca Motor de passo

int PassosPorVolta = 100;                           		// Passos para dar uma volta 
int Pino_botao1 = 6;            					// pino do primeiro botão
int Pino_botao2 = 7;            					// pino do segundo botão
 
Stepper MotorStepper(PassosPorVolta, 8, 10, 9, 11); 	// Instância motor e pinos de comando
 
void setup() {
    pinMode(Pino_botao1,INPUT_PULLUP);
    pinMode(Pino_botao2,INPUT_PULLUP);        
    MotorStepper.setSpeed(300);              		 	// Configura a velocidade por rpm:
}

void loop(){
    
    if (digitalRead(Pino_botao1) == LOW ) {   	 	// Verifica se botão 1 foi pressionado
        MotorStepper.step(-PassosPorVolta);            	// Gira motor no sentido anti horário
    }
    
    if (digitalRead(Pino_botao2) == LOW) {   		// Verifica se botão 2 foi pressionado
        MotorStepper.step(PassosPorVolta);             	// Gira motor no sentido horário
    }
}





 

[Voltar]

[Avançar]