Leitura da Tensão de Entrada da Vespa
Introdução
Você recebeu a sua Vespa e quer saber como usá-la? Não se preocupe, estamos aqui para ajudá-lo nestes primeiros passos e para mostrar como usar as funções básicas da biblioteca desenvolvida para ela.
Neste tutorial você verá como fazer a leitura da tensão de entrada da Vespa e como isso pode ser aplicado na prática, principalmente no uso com baterias.
Lista de Materiais
Lista completa de produtos
comprarVespa
Suporte para 2 Baterias Li-Ion 18650
Cabo USB Micro B 80cm
Observação: embora na lista acima seja mencionado o uso de baterias de Li-Íon 18650, qualquer bateria que forneça uma tensão dentro da faixa de operação da Vespa (entre 7 e 11 V) pode ser utilizada para alimentar a placa.
Observação: as baterias 18650 recomendadas e listadas acima são recarregáveis, mas devem ser carregadas utilizando um carregador adequado (como este, por exemplo).
Circuito
Para medir a tensão da bateria que está alimentando a Vespa, basta conectá-la à placa, como mostrado abaixo. Apenas atente-se à polaridade da bateria e da conexão da placa.
Monitoramento da Tensão
Neste primeiro projeto, apenas exibiremos a tensão lida pela Vespa no monitor serial, para podermos compará-la com um multímetro e entender como aproveitar a biblioteca da placa para isso.
Código
Como mencionado acima, usaremos a biblioteca da Vespa, portanto, para instalá-la, siga os passos do tutorial Primeiros Passos com a Vespa.
Com a biblioteca instalada, carregue o código a seguir na sua Vespa para monitorar a tensão da bateria conectada à placa.
Entendendo o Código
O código acima se inicia com a inclusão da biblioteca "RoboCore_Vespa", e em seguida é criado o objeto bateria
como uma instância VespaBattery
da biblioteca, que nos permitirá ler a tensão da bateria que está alimentando a Vespa.
Já na configuração do código (função void setup()
), apenas inicializamos o monitor serial, para que seja possível monitorar as leituras da placa.
Na repetição do código, temos a declaração da variável tensao_bateria_mV
que recebe o valor retornado pela função readVoltage()
da biblioteca, que é chamada pelo comando bateria.readVoltage()
. Esta função retorna a leitura em milivolts da tensão da bateria, portanto, em seguida, é declarada a variável tensao_bateria_V
, que recebe o valor da variável tensao_bateria_mV
dividido por mil, ou seja, a conversão do valor em milivolts para volts. Feito isso, os valores lidos e calculados são exibidos no monitor serial, e o código então se repete a cada 2 segundos.
O Que Deve Acontecer
Após carregar o código para a placa, ligue a alimentação da bateria pela chave liga-desliga, e então monitore a leitura da bateria conectada. No caso de duas baterias 18650 em série, você verá um valor entre 6,8 V (tensão mínima recomendada - 3,4 V por célula) e 8,4 V (tensão máxima - 4,2 V por célula), como na imagem abaixo.
Neste momento, se você quiser, pode comparar a leitura da Vespa com a realidade utilizando um multímetro, utilizando o borne de conexão da placa. Apenas tome cuidado para não criar um curto-circuito durante a medição.
Alerta de Tensão Baixa
Alguns robôs e alguns dispositivos que são alimentados somente por baterias possuem alertas ou auto desligamento quando a sua bateria está próxima de alcançar a tensão mínima recomendada, por exemplo para proteger a vida útil da bateria. Neste projeto usaremos o LED L da placa como um indicador de baixa tensão da bateria, que se acenderá quando a tensão das baterias 18650 estiver abaixo de 7,0 V.
Código
Para isso, carregue o código a seguir na sua Vespa.
Entendendo o Código
Nas declarações globais deste código, além da inclusão da biblioteca da Vespa e da criação do objeto bateria
, também temos as declarações das constantes PINO_LED
, que armazena o pino conectado ao LED L da placa, e TENSAO_MINIMA
, que armazena a tensão mínima aceitável para as baterias 18650. Caso esteja utilizando outra bateria, altere o valor desta variável para o recomendado para a sua bateria.
Nas configurações do código (função void setup()
), além da inicialização do monitor serial, também é configurado o pino conectado ao LED L como uma saída com nível lógico baixo inicial.
Já na repetição do código (função void loop()
), além da leitura e conversão da tensão da bateria, como foi feito no código do projeto anterior, temos a condição if (tensao_bateria_V <= TENSAO_MINIMA)
que verifica se a tensão convertida para volts lida pela placa está igual ou abaixo do valor de tensão mínima configurado na variável TENSAO_MINIMA
. Se essa condição for verdadeira, ou seja, se a bateria estiver descarregada além do limite, o LED L se acenderá e será exibido um alerta no monitor serial. Caso contrário, o LED L permanecerá apagado.
O Que Deve Acontecer
Após carregar o código para a placa, monitore novamente a tensão da bateria pelo monitor serial. Você verá que a tensão será igual à vista no projeto anterior e o LED L se manterá apagado. Como a tensão da bateria deve demorar bastante para descarregar, já que o consumo da Vespa para este projeto é bem baixo, mova a chave liga-desliga da placa para a posição "OFF" e observe que será alertado que a tensão está baixa, e o LED L se acenderá.
Atenção: não deixe as baterias descarregarem abaixo de 6,8 V. As baterias de lítio precisam sempre estar com pelo menos 3,4 V por célula para funcionarem corretamente.
Indo Além
Como mencionado anteriormente, o monitoramento de tensão da bateria pode ser utilizado em robôs para evitar que as baterias descarreguem além do seu limite mínimo e sejam perdidas. Utilizamos esta função no Controle Web de Robô com a Vespa, por exemplo, porém você pode aplicar isso no seu projeto da maneira que preferir.
Além disso, também temos diversos outros tutoriais demonstrando todas as funcionalidades da Vespa.
Conclusão
Neste tutorial vimos como utilizar as funções da biblioteca da Vespa para a leitura da tensão de baterias em exemplos simples.
Solução de Problemas
LED Vermelho Aceso
Se a Vespa acender um LED vermelho e não executar o código ao ligar a placa, verifique a conexão do suporte de baterias, pois é sinal que ele foi conectado com a polaridade invertida.
Leitura Incorreta da Bateria
Se a leitura da bateria estiver incorreta logo nas primeiras leituras, certifique-se de que a chave liga-desliga da placa está na posição "ON". Se mesmo na posição "ON" a leitura estiver baixa, verifique maus contatos no borne da placa e confirme que a bateria está carregada com um multímetro.