Pular para o conteúdo principal

Grove-LED Button

O Grove - LED Button é composto pelo Grove - Yellow Button, Grove - Blue LED Button e Grove - Red LED Button. Este botão é estável e confiável, com uma longa vida útil de 100 000 acionamentos. Com o LED integrado, você pode aplicá-lo a muitos projetos interessantes; é realmente útil usar o LED para mostrar o status do botão. Usamos um MOSFET de canal N de alta qualidade para controlar o LED, garantindo alta velocidade de comutação e baixo consumo. Enfim, você quer um botão realmente incrível? Aqui está ...

Versão

Versão do ProdutoAlteraçõesData de Lançamento
Grove-LED ButtonInicialJun 2018

Versão

Versão do ProdutoAlteraçõesData de Lançamento
Grove-LED ButtonInicialJun 2018

Versão

Versão do ProdutoAlteraçõesData de Lançamento
Grove-LED ButtonInicialJun 2018

Recursos

  • Longa vida útil de operação
  • Fácil de usar
  • Interface digital Grove

Especificação

ItemValor
Tensão de trabalho3.3V/5V
Vida útil de operação sem carga100 000 vezes
Corrente nominal do LED50mA
Resistência ao pressionar^1^<100mΩ
Resistência ao soltar^2^>100MΩ
TamanhoC: 40mm L: 20mm A: 13mm
Peso4.3g
Tamanho da embalagemC: 140mm L: 90mm A: 10mm
Peso bruto11g
dica

1,2- Se você quiser medir a resistência, remova a tecla da placa. Caso contrário, você obterá o valor da resistência equivalente da placa em vez da verdadeira resistência da tecla.

Visão Geral de Hardware

Mapa de Pinos

Esquemático

SIG1 é o sinal de controle do LED; o valor padrão é baixo, então o MOSFET de canal N está desligado, e o LED também está desligado. Quando SIG1 se torna alto, o MOSFET de canal N liga e o LED acende.

SIG2 está conectado ao pino do botão. Com um resistor de pull-up, o valor padrão de SIG2 é alto. Quando você pressiona o botão, a tensão é puxada para baixo e SIG2 se torna baixa.

Plataformas Suportadas

ArduinoRaspberry Pi

Primeiros Passos

dica

Nesta parte, usamos o Grove - Red LED Button como exemplo. As partes seguintes também se aplicam ao Yellow e ao Blue.

Brincar com Arduino

Hardware

Materiais necessários

Seeeduino V4.2Base ShieldGrove- Red LED Button
enter image description hereenter image description hereenter image description here
Adquira agoraAdquira agoraAdquira agora
  • Passo 1. Conecte o Grove- Red LED Button à porta D3 do Grove-Base Shield.

  • Passo 2. Conecte o Grove - Base Shield ao Seeeduino.

  • Passo 3. Conecte o Seeeduino ao PC por meio de um cabo USB.

nota

Se não tivermos o Grove Base Shield, também podemos conectar este módulo diretamente ao Seeeduino como abaixo.

SeeeduinoGrove- Red LED Button
5VVermelho
GNDPreto
SIG2Branco
SIG1Amarelo

Software

nota

Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Começando com Arduino antes de começar.

  • Passo 1. Abra a IDE do Arduino e crie um novo arquivo, depois copie o código a seguir para o novo arquivo.
#include "Arduino.h"

//1: toggle mode, 2: follow mode
#define LED_MODE 1

const int ledPin = 3; // the number of the LED pin, D3
const int buttonPin = 4; // the number of the pushbutton pin, D4
const boolean breathMode = true; // if or not the led lights as breath mode when it's on

// Variables will change:
int ledState = LOW; // the current state of the output pin
int ledFadeValue = 0;
int ledFadeStep = 5;
int ledFadeInterval = 20; //milliseconds
int buttonState; // the current reading from the input pin
int lastButtonState = HIGH; // the previous reading from the input pin

unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
unsigned long debounceDelay = 50; // the debounce time; increase if the output flickers
unsigned long lastLedFadeTime = 0;

void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, ledState);
}

void loop() {
int reading = digitalRead(buttonPin);

// If the switch changed, due to noise or pressing:
if (reading != lastButtonState) {
// reset the debouncing timer
lastDebounceTime = millis();
}

if ((millis() - lastDebounceTime) > debounceDelay) {
// whatever the reading is at, it's been there for longer
// than the debounce delay, so take it as the actual current state:

// if the button state has changed:
if (reading != buttonState) {
buttonState = reading;

#if LED_MODE == 1
if (buttonState == LOW) { //button is pressed
ledState = !ledState;
ledFadeValue = 0;
lastLedFadeTime = millis();
}
#else
if (buttonState == LOW) { //button is pressed
ledState = HIGH;
ledFadeValue = 0;
lastLedFadeTime = millis();
} else { //button is released
ledState = LOW;
}
#endif
}
}

// set the LED:
if (breathMode && ledState != LOW) {
if (millis() - lastLedFadeTime > ledFadeInterval) {
lastLedFadeTime = millis();
analogWrite(ledPin, ledFadeValue);
ledFadeValue += ledFadeStep;
if (ledFadeValue > 255){
ledFadeValue = 255 - ledFadeStep;
ledFadeStep = -ledFadeStep;
} else if (ledFadeValue < 0) {
ledFadeValue = 0;
ledFadeStep = -ledFadeStep;
}
}
} else {
digitalWrite(ledPin, ledState);
}

lastButtonState = reading;
}

dica

Neste demo, escolhemos o modo 1, que é o modo de alternância; você pode alterar a linha 4 #define LED_MODE 1 para #define LED_MODE 2 para usar o modo a seguir.

  • Passo 2. Faça o upload da demonstração. Se você não sabe como fazer o upload do código, verifique How to upload code.

  • Passo 3. Agora, tente pressionar o botão, você verá o LED acender com um efeito de fade in/fade out.

Deve ser assim:

Brincar com Raspberry Pi

Hardware

  • Passo 1. Itens usados neste projeto:
Raspberry piGrove Base Hat for RasPiGrove - Red LED Button
enter image description hereenter image description hereenter image description here
Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o Grove Base Hat ao Raspberry.
  • Passo 3. Conecte o botão de LED vermelho à porta D5 do Base Hat.
  • Passo 4. Conecte o Raspberry Pi ao PC por meio de um cabo USB.

nota

No passo 3 você pode conectar o botão de LED a qualquer porta GPIO, mas certifique-se de alterar o comando com o número de porta correspondente.

Software

cuidado

Se você estiver usando Raspberry Pi com Raspberrypi OS >= Bullseye, você deve usar esta linha de comando apenas com Python3.

  • Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
  • Passo 2. Baixe o arquivo-fonte clonando a biblioteca grove.py.
sudo pip3 install Seeed-grove.py
cd ~
git clone https://github.com/Seeed-Studio/grove.py

  • Passo 3. Execute os comandos abaixo para rodar o código.
cd grove.py/grove
sudo python3 grove_ryb_led_button.py 5

A seguir está o código grove_ryb_led_button.py.


import time
from grove.button import Button
from grove.factory import Factory

class GroveLedButton(object):
def __init__(self, pin):
# High = light on
self.__led = Factory.getOneLed("GPIO-HIGH", pin)
# Low = pressed
self.__btn = Factory.getButton("GPIO-LOW", pin + 1)
self.__on_event = None
self.__btn.on_event(self, GroveLedButton.__handle_event)

@property
def on_event(self):
return self.__on_event

@on_event.setter
def on_event(self, callback):
if not callable(callback):
return
self.__on_event = callback

def __handle_event(self, evt):
# print("event index:{} event:{} pressed:{}".format(evt['index'], evt['code'], evt['presesed']))
if callable(self.__on_event):
self.__on_event(evt['index'], evt['code'], evt['time'])
return

self.__led.brightness = self.__led.MAX_BRIGHT
event = evt['code']
if event & Button.EV_SINGLE_CLICK:
self.__led.light(True)
print("turn on LED")
elif event & Button.EV_DOUBLE_CLICK:
self.__led.blink()
print("blink LED")
elif event & Button.EV_LONG_PRESS:
self.__led.light(False)
print("turn off LED")


Grove = GroveLedButton

def main():
from grove.helper import SlotHelper
sh = SlotHelper(SlotHelper.GPIO)
pin = sh.argv2pin()

ledbtn = GroveLedButton(pin)

# remove ''' pairs below to begin your experiment
'''
# define a customized event handle your self
def cust_on_event(index, event, tm):
print("event with code {}, time {}".format(event, tm))

ledbtn.on_event = cust_on_event
'''
while True:
time.sleep(1)


if __name__ == '__main__':
main()


dica

Se tudo correr bem, você verá o LED acender quando você o pressionar e apagar quando você o pressionar longamente. Se você clicar duas vezes no botão de LED, o LED irá piscar.


pi@raspberrypi:~/grove.py/grove $ python3 grove_ryb_led_button.py 5
Hat Name = 'Grove Base Hat RPi'
turn on LED
turn on LED
blink LED
turn on LED
turn off LED
^CTraceback (most recent call last):
File "grove_ryb_led_button.py", line 101, in <module>
main()
File "grove_ryb_led_button.py", line 97, in main
time.sleep(1)
KeyboardInterrupt

Você pode sair deste programa simplesmente pressionando ++ctrl+c++.

Visualizador de Esquemático Online

Recursos

Suporte Técnico & Discussão de Produto


Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...