2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Depois que um botão está funcionando, geralmente você deseja realizar alguma ação com base em quantas vezes o botão é pressionado. Para fazer isso, você precisa saber quando o botão muda de estado de desligado para ligado e contar quantas vezes essa mudança de estado ocorre. Isso é chamado de detecção de mudança de estado ou detecção de borda. Neste tutorial aprendemos como verificar a mudança de estado, enviamos uma mensagem ao Monitor Serial com as informações relevantes e contamos quatro mudanças de estado para ligar e desligar um LED.
Etapa 1: Componentes necessários:
1. Arduino UNO
2. Placa de ensaio
3. Botão de pressão
4. Resistor
5. Fios de ligação
Etapa 2: Diagrama de circuito:
Conecte três fios à placa. O primeiro vai de uma perna do botão através de um resistor pull-down (aqui 10k ohm) para o aterramento. O segundo vai da perna correspondente do botão para a alimentação de 5 volts. O terceiro se conecta a um pino de E / S digital (aqui pino 2) que lê o estado do botão.
Quando o botão está aberto (não pressionado), não há conexão entre as duas pernas do botão, então o pino é conectado ao terra (através do resistor pull-down) e lemos um LOW. Quando o botão é fechado (pressionado), ele faz uma conexão entre suas duas pernas, conectando o pino à tensão, para que possamos ler um ALTO. (O pino ainda está conectado ao aterramento, mas o resistor resiste ao fluxo de corrente, então o caminho de menor resistência é + 5V.) Se você desconectar o pino de E / S digital de tudo, o LED pode piscar erraticamente. Isso ocorre porque a entrada é "flutuante" - ou seja, não está conectada à tensão nem ao aterramento. Ele retornará mais ou menos aleatoriamente ALTO ou BAIXO. É por isso que você precisa de um resistor pull-down no circuito.
Etapa 3: Código:
Para projetos mais interessantes, entre em contato comigo no: Youtube:
Página do Facebook:
Instagram:
botão int = 2;
int a, i = 0; void setup () {Serial.begin (9600); pinMode (botão, INPUT); } void loop () {a = digitalRead (botão); if (a == 1) {i = i + 1; Serial.print ("Contador ="); Serial.println (i); } mais {i = 0; }}