collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[Ontem às 15:31]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]

Autor Tópico: Monitorização de baterias (tensão, corrente)  (Lida 9137 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Monitorização de baterias (tensão, corrente)
« Responder #15 em: 27 de Dezembro de 2010, 01:14 »
No arranque aponta sempre para 3* a corrente nominal, podes limitar a corrente fazendo um controlador de corrente mas ai a aceleração também será muito mais baixa.

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: Monitorização de baterias (tensão, corrente)
« Responder #16 em: 27 de Dezembro de 2010, 15:29 »
Sena, então e se a tensão das baterias fosse perto ou mais de 60V, e precisasses de baixar a tensão antes de ela entrar nesses reguladores, que método escolherias? Vou precisar de fazer uma coisa destas para um projecto.


Usaria uma DCDC feita com um ATTiny ou PIC10, em modo BUCK, para me baixar para os 48v ou 12v.
Estas são simples de fazer, pois basta o micro+impedância+mosfet+(electronica passiva pouca).

Depois usaria sempre um Regulador Linear para limpar a ruideira.

Para alimentar o micro directo da entrada, usava um NPN com ZENER 5.6V na base, para ter ~5V no micro.


É mais ou menos isto que procuras?

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: Monitorização de baterias (tensão, corrente)
« Responder #17 em: 27 de Dezembro de 2010, 19:37 »
Pois, a outra alternativa era um DC-DC com transformador. Mas não me sinto nada à vontade com transformadores na "vida real".

Uma das "dificuldades" é arranjar transístores para estas tensões e potências, a generalidade vai até cerca de 45-65V.

Citar
No arranque aponta sempre para 3* a corrente nominal (...)

Eh pah, isso é um bocado relativo...
Controle de corrente acho que devia ter sempre, para proteger as baterias, elas têm um limite máximo de descarga.
« Última modificação: 27 de Dezembro de 2010, 19:38 por Njay »

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: Monitorização de baterias (tensão, corrente)
« Responder #18 em: 27 de Dezembro de 2010, 20:58 »
No arranque aponta sempre para 3* a corrente nominal, podes limitar a corrente fazendo um controlador de corrente mas ai a aceleração também será muito mais baixa.


Muito subjectivo. A corrente máxima depende do enrolamento do motor em STALL = BLOQUEADO sem rodar.

Travem o motor, alimentem e meçam a corrente de Stall, que é a corrente máxima que vão ter.
Também há a corrente em vazio, que é quando o motor roda sem carga.


Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: Monitorização de baterias (tensão, corrente)
« Responder #19 em: 28 de Dezembro de 2010, 19:38 »

Obrigado a todos pelas dicas! Para a semana já conta ter aqui o esquema e isto a funcionar :)

Só mais uma pergunta.. eu quero mostrar o valor da tensão e corrente em displays.. mas para usar os habituais displays de 7 segmentos (mesmo que num conjunto de 2 ou 3) terei de usar uma resistência para cada segmento... visto ter 3 saídas, dois valores por saída, 3 bcd de 7 segmentos por saida.. dá 126 resistências! Não sabem indicar nenhum display que me possa ser útil ao invés de usar tanta resistência? não queria usar LCD.. e já pesquisei mas não encontrei nada de especial.. alguém conhece algo que me pode ajudar? Agradeço :)
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: Monitorização de baterias (tensão, corrente)
« Responder #20 em: 28 de Dezembro de 2010, 21:49 »
 :o oi?  ;D

Então e a multiplexagem no TEMPO dos digitos?
No teu pior caso, com 6 sinais e 3 digitos para cada um deles, tens um total de 18 digitos para mostrar. Soma um para teres um numero redondo de 20. É preferivel fazer duas linhas de 10, por causa da multiplexagem.

Em paralelo os ligas, e colocas um Bipolar/Mosfet para ligar o digito. Assim, só precisas de 7 resistências  :)

Para teres um varrimento de ~50Hz para o ecrã completo, ~20ms, tens que ter cada display ligado ~1ms (1000Hz) * 20 = ~20ms.

Como vai haver diminuição de brilho, tens que reduzir o valor das resistências. Não descurando a datasheet do 7-SEG, podes dar correntes seguras de 80~100mA, ou mais! Mas tens que respeitar o que lá está dito relativamente à corrente máxima e duty-cycle.


Depois, para não estares a ocupar 7+18 pinos para este sistema todo, podes usar um Shift-Register e usas DATA+CLOCK+STROBE. 3 pinos em vez de 25!  :)


Os meus €0.02



PS: ou então usas o MAX7219, MAX7221  ;D
« Última modificação: 28 de Dezembro de 2010, 21:57 por asena »

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: Monitorização de baterias (tensão, corrente)
« Responder #21 em: 28 de Dezembro de 2010, 22:56 »
Pois, a outra alternativa era um DC-DC com transformador. Mas não me sinto nada à vontade com transformadores na "vida real".
Uma das "dificuldades" é arranjar transístores para estas tensões e potências, a generalidade vai até cerca de 45-65V.

Vê lá este fabricante. Dentro desse estilo, há mais fabricantes.
http://www.icetransformers.com/index.php?option=com_content&task=view&id=19&Itemid=46

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: Monitorização de baterias (tensão, corrente)
« Responder #22 em: 30 de Dezembro de 2010, 00:00 »

Obrigado asena!

Foi uma pergunta parva, mas depois de algumas noites mal dormidas, e quando comecei a pensar nisto, tinha chegado às 25 linhas mas continuava a não gostar muito da solução... e depois coloquei aqui a questão "crua" ´!
Aliás, para reduzir um pouco, não tanto quanto o shift register claro, posso usar um conversor digital/bcd, mas também só poupo  linhas (passo de 7 linhas para o bcd para 4).. Obrigado!
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: Monitorização de baterias (tensão, corrente)
« Responder #23 em: 30 de Dezembro de 2010, 18:12 »

Asena,

Tou a fazer isto com um PIC. Tou a fazer um varrimento de cerca de 1kHz como referiste.. (nomeadamente 900, porque fiz a conta para 18 e não para 20 como disseste:P ). Mas passa-se o seguinte: eu meti este tempo (1/900Hz) num timer com uma interrupção... de cada vez que tenho uma interrupção, ele le o valor analogico que tenho num pin e depois manda para o bcd.. mas o que se passa é que ele volta a "interromper" antes de mandar para o bcd.. ou seja, o meu PIC leva mais tempo a ler o ADC, e converter para o bcd do que o tempo de varrimento. Tou com um Fosc de 4MHz. Achas que aumento o Fosc ou sugeres outra alteração?

Obrigado!
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: Monitorização de baterias (tensão, corrente)
« Responder #24 em: 30 de Dezembro de 2010, 19:21 »
Esse Fosc é directo do oscilador, ou já é o alimentado ao CPU (dividido por 4)?
Se for do oscilador, então multiplica isso com o PLL, e ficas com 4megas no CPU, mais à vontade.



No entanto... acho que o método poderá não ser o mais correcto. Vamos analisar de outra maneira (há várias)::

# precisas de ler o analógico, a cada ~1ms?  é que o olho humano não vai conseguir detectar as variações tão rápidas.

# as interrupções são para detectar que tipo de interrupção aconteceu, activar Flags correspondentes e sair rapidamente. Mais que isto é perder tempo e bloquear o MAIN. O programa só está nos vectores de interrupção, se for obrigado. Os outros trabalhos não têem nada a ver com interrupções, apesar de poderem ser MANDADOS pela interrupção.

-> ou crias uma máquina de estados na MAIN ou então fazes todos os passos com IF Flag THEN. Não pode (deve) haver WHILE a empatar.


# Faz uma conversão/mostra, a cada ex.: ~100ms. Cria um contador dentro da interrupção que, ao fim de ~100 ticks, te activa uma flag a dizer que há autorização para haver conversão/mostra.

# Chegando à MAIN, vais analisar quais as flags que estão autorizadas, e executas essas funções.
Nesse caso, dás arranque à conversão. O final da conversão permite-te entrar noutro patamar desse IF Flag, que te converte/manda para BCD, por exemplo.

# paralelamente, tens a multiplexagem dos digitos a acontecer a cada ~1ms.

# desta forma até podes reduzir a velocidade do clock, embora não havendo necessidade de poupar a energia, dá-lhe velocidade.


Este tipo de programação de MAIN, é à-la-Autómato. Onde o programa está constantemente a varrer as funções, e nunca fica bloqueado em nenhuma.

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: Monitorização de baterias (tensão, corrente)
« Responder #25 em: 31 de Dezembro de 2010, 15:03 »

Obrigado pela resposta, asena!

Eu tive a ver o que podia fazer, e aumentei o clock (tinha um clock de 4MHz e meti um de 16MHz).
Apesar de com este clock poder fazer a conversao em cada 1ms, tens razão, nao há necessidade, e tou a fazer a cada 100ms.
Tou a simular isto no Proteus, e fiz uma especie de maquina de estados.. ou seja, tenho um timer que conta 1ms, ao fim de cada 1ms executa uma interrupção e incremento o "numero do display" para saber em que display vou colocar o proximo numero. Depois, no main, tenho um switch case, que para cada display coloca la o numero correspondente. Executo as mesmas instruções para cada display, mas ha 6 displays que estao sempre a piscar... ja fiz debug, ja revi o codigo, e tenho tudo (aparantemente certo), até porque executo as mesmas instruções para cada display, tal como já disse. Achas que pode ser do software de simulação?

Obrigado!
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Monitorização de baterias (tensão, corrente)
« Responder #26 em: 31 de Dezembro de 2010, 16:02 »
O proteus ja esta mais que provado que a simular micros metade das vezes nao funciona e na outra metade da resultados errados.
Avr fanboy

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: Monitorização de baterias (tensão, corrente)
« Responder #27 em: 31 de Dezembro de 2010, 17:19 »
O proteus ja esta mais que provado que a simular micros metade das vezes nao funciona e na outra metade da resultados errados.

Pois, nisso tens razao! é com micros e com ampops (com ampops ja notei alguns erros!). 2f já testo o circuito todo numa bread e já vejo se está certo ou nao!
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: Monitorização de baterias (tensão, corrente)
« Responder #28 em: 01 de Janeiro de 2011, 12:26 »
Eu tive a ver o que podia fazer, e aumentei o clock (tinha um clock de 4MHz e meti um de 16MHz).
Apesar de com este clock poder fazer a conversao em cada 1ms, tens razão, nao há necessidade, e tou a fazer a cada 100ms.
Tou a simular isto no Proteus, e fiz uma especie de maquina de estados.. ou seja, tenho um timer que conta 1ms, ao fim de cada 1ms executa uma interrupção e incremento o "numero do display" para saber em que display vou colocar o proximo numero. Depois, no main, tenho um switch case, que para cada display coloca la o numero correspondente. Executo as mesmas instruções para cada display, mas ha 6 displays que estao sempre a piscar... ja fiz debug, ja revi o codigo, e tenho tudo (aparantemente certo), até porque executo as mesmas instruções para cada display, tal como já disse. Achas que pode ser do software de simulação?

Eu não me fio no Proteus, por isso não o uso. Está sempre a dar barraca.

Nesse caso, como é muito curta, podes autorizar a que a rotina de varrimento do display esteja na interrupção.
Tens é que criar um array de informação, onde estejam sempre os dados correctos.

Esse array é alimentado na MAIN, pelas medições e cálculos, e é lido no varrimento.


A prioridade é no varrimento. Os mostradores não podem piscar ou notar-se flickering.
Sem prioridade, executas tudo o resto no MAIN.



Atenção :::  esta explicação, para este caso particular. Cada caso é um caso.

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: Monitorização de baterias (tensão, corrente)
« Responder #29 em: 01 de Janeiro de 2011, 14:24 »
(...)
Este tipo de programação de MAIN, é à-la-Autómato. Onde o programa está constantemente a varrer as funções, e nunca fica bloqueado em nenhuma.

Já agora deixo um link sobre algo que já escrevi sobre isso:

Como fazer várias coisas ao mesmo tempo