sexta-feira, 28 de setembro de 2018

Relógio/Voltímetro para carro.

        Fiz a heresia de não ter som no possante, assim a baia vaga do mesmo foi aproveitada para por dois conversores para 5V com dois conectores USB cada um e no meio, um voltímetro.


Modelo que comprei.

Foto do anúncio com o conversor e voltímetro ligados. Os LEDs dos conversores USB/5V foram trocados por brancos para não destoarem da iluminação original do carro. 
O kit vem parecido com este, mas com espelho de três lugares.

Vista superior da placa do voltímetro.

Vista inferior da placa do voltímetro.
        Preciso de pelo menos três tomadas USB no carro, uma para a câmera veicular, uma para meu celular quando uso GPS e outro para o celular do carona (quem tem mulher sabe como é). Montei tudo usando o conector do som incluso no carro, não precisando fazer nenhuma alteração na fiação original. Tudo funcionando, mas me incomodou o voltímetro: é muito brilhante à noite e faz poucas amostragens por segundo. Parti então para fazer o meu próprio voltímetro, mais preciso e realizando mais amostragens por segundo. O primeiro problema foi o tamanho do display:

Detalhe mostrando o tamanho do display no suporte do voltímetro.

        Precisava de um display de 4 ou 5 dígitos para mostrar a hora, mas o suporte do voltímetro só cabe um display de 3 dígitos. Procurando por displays que coubessem, só consegui um: um bubble display da HP modelo 5082-7405.
Comparação entre o display HP5082-7405 e o do voltímetro.

Cheguei a considerar este display, mas é caríssimo e ficaria muito ruim de mostrar as horas pois só tem 4 caracteres.
Lado inferior da placa.
Lado superior da placa.
Display com sua placa montado no suporte.

Placa conectada ao display.


Esquemático.
        Outro problema que tive foi o gerenciamento de energia, pois para manter a hora, o PIC16F1825 precisa estar ligado na bateria. Para manter o consumo de corrente abaixo de 1mA, ao perceber a ignição desligada, o microcontrolador põe o IC MAX7219 em shutdown e fica em SLEEP, somente acordando a cada meio segundo para contar a hora ou quando a ignição é ligada. Ao ligar a ignição, o firmware mostra a tensão da bateria, independente da última seleção pois é muito útil saber a tensão antes e depois de ligar o motor. Quando a ignição está ligada, o microcontrolador não entra em SLEEP e amostra a tensão 62,5 vezes por segundo, fazendo uma média de 16 amostragens e assim atualizando o display com o valor da tensão 4 vezes por segundo aproximadamente. Depois de 125 segundos, o firmware muda automaticamente para hora. Para alternar entre hora/tensão, pressiona-se o pequeno botão vermelho ao lado do display e para ajustar a hora, pressiona-se por mais de 2 segundos, entrando no modo de ajuste.

Mostrando a hora.
Mostrando a tensão da bateria.

Mostrando a tensão com as luzes noturnas ligadas.

quarta-feira, 19 de setembro de 2018

Placa acionadora de motor trifásico de corrente contínua sem escovas (BLDC Motor) com o JY01.

        Comprei esta placa recentemente baseada no obscuro IC JY01, cujo datasheet está somente em chinês. Ele pode trabalhar com sensores Hall ou sem sensores (sensorless mode), usando a técnica de detecção de contra-força eletromotriz (back-EMF sensing technique) para comutação das fases.
         A placa que comprei veio erroneamente ajustada para usar sensores hall, porém ela vem com os componentes montados para 'sensorless', com exceção do IC LM339. Para funcionar no modo 'sensorless', deve-se soldar este IC e adicionar um resistor SMD ligado ao pino 1. Quando o IC JY01 é energizado, ele verifica a tensão neste pino, se for 0 ou 5V ele assume o modo com sensores Hall, se estiver entre 1 a 4V, ele assume o modo sem sensores. Esta tensão, neste modo, ajusta também o torque inicial, assim soldei provisoriamente um trimpot para ajustar este torque inicial e determinar os valores dos resistores.

Placa vista de cima. O IC JY01 está raspado, mas vendo o anúncio de outras placas iguais pode-se identificá-lo. O conector para os sensores hall foi retirado e foi trocado os dois capacitores perto do conector branco.

Placa vista de baixo onde estão os seis MOSFETs, sem o dissipador de calor que ocupa a toda a área da placa.


         Nesta placa, o IC JY01 aciona as fases do motor através de seis MOSFETs ligados aos seus respectivos acionadores (IC FD2501 ou IR2101). Ele ajusta a velocidade através de uma tensão DC no pino 16 (VR), ligado a um potenciômetro externo. O sinal de rotação está disponível no pino 6 (M). Pode-se inverter o sentido de rotação através do pino 5 (Z/F). O IC JY01 também monitora a corrente através de um resistor shunt ligado ao pino 2 (IS).

JY01 Hall sensor mode.
JY01 Sensorless mode.
Saída do sinal de rotação (pino 6, M). Note que é um sinal ruidoso mas o JY01 os filtra eficientemente.



Saída no pino 10 (BB, lado baixo da fase B).


Saída no pino 10 (BT, lado alto da fase B), com o PWM para controle da velocidade.


Detalhe da mesma saída, detalhando o PWM.





quarta-feira, 12 de setembro de 2018

Driver de Motor DC trifásico sem escovas LB11870 com espelho poligonal.

       Retirei este motor com espelho poligonal de um LASER scanning unit (LSU) de uma impressora LASER. Ele é montado em uma placa metálica com outra placa de circuito impresso colado em cima e usa o IC LB11870, um driver de motor DC trifásico sem escovas.

Placa com o motor. As faces laterais do hexágono são os espelhos (alumínio extremamente polido)

Detalhe do conector e face do hexágono.
       Este IC controla a rotação do motor através de um PLL interno cujo sinal de referência (1~10kHz) vem pelo pino CLK. Para gerar este clock, usei o módulo PWM do PIC12F683 que ainda controla o sinal S/S (Start/Stop control), recebe o sinal LD (Phase Lock state) e controla um LED bicolor para mostrar as condições do motor (laranja para motor parado, verde piscante para motor girando mas fora da velocidade constante e verde contínuo para rotação constante).


Placa com o PIC12F683, LED bicolor e o regulador de 5V, cujos fios brancos são ligados ao conector da placa com o IC LB11870.

Saída PWM do PIC12F683.

Saída de uma das fases do LB11870.
Pinagem do LB11870.
Diagrama interno.

Outra placa retirada de outra impressora mas com a mesma pinagem do conector. Esta usa o IC AN44000A da Panasonic. Não consegui o datasheet deste IC.
Placa vista de lado.









segunda-feira, 10 de setembro de 2018

Teste do sensor de pressão atmosférica HP203B.

        Os sensores de pressão atmosférica da Bosch (BMP180 por exemplo) são muito bons porém requerem cálculos complexos para se chegar no valor final (há várias constantes de compensação), sendo difícil de implementar isso em um microcontrolador básico. Felizmente, há agora os sensores da HopeRF que disponibilizam o resultado pronto com as devidas compensações, sem necessidade de pós-processamento. Testei o HP203B, que tem interface I²C e são disponibilizados em encapsulamento SMD.
        Futuramente, este sensor será incorporado ao relógio com display I²C (ver posts anteriores) para que se tenha uma previsão de chuvas através de um histograma com 80 valores.

HP203B montado na placa visto por cima, note o furo na tampa metálica para permitir a medição de pressão.

HP203B visto por baixo bem como as conexões na placa.

        Para o teste, usei um PIC16F1503 com um display OLED de 128x64 para mostrar os valores de temperatura e pressão, bem como os bits dos registradores de status.

Firmware lendo os valores do HP203B:
ALT: Offset da altitude;
PAH: Limite superior de Pressão/Altitude;
PAM: Limite intermediário de Pressão/Altitude;
PAL: Limite inferior de Pressão/Altitude;
TH: Limite superior de Temperatura;
TM: Limite intermediário de Temperatura;
TL: Limite inferior de Temperatura;
EN: Bits de habilitação dos limites de Temperatura/Pressão/Altitude;
CFG: alguns bits de status e configuração;
TMP: Temperatura (em °C x 100);
PRS: Pressão (em hPa x 100);
        Após o teste com a placa de testes com o PIC16F1503, montei uma placa específica com o PIC12F1840, usando um display de celular antigo (Motorola C115, com interface I²C), implementando um histograma com 80 valores em intervalos de 1/2 hora totalizando 1 2/3 dias, cujos valores ficam entre 1000 a 1031hPa. Com este histograma pode-se acompanhar a variação da pressão atmosférica, que quanto maior a variação decrescente, maior a probabilidade de chuva. De forma inversa, uma variação crescente indica melhora nas condições do tempo.

Placa com o HP203 conectado.
Display com o histograma. Cada pixel é um valor e ao lado é último valor lido sem a parte decimal e menos 1000hPA, ficando assim entre 0 e 31.


Teste do LED SK9822 (clone do APA102).

  O SK9822 é um LED RGB com controlador integrado, um clone do APA102, cuja comunicação é síncrona (Data e Clock), ao contrário dos populares WS2811, WS2812 e seus clones que usam somente um sinal de comunicação. Por usar uma comunicação síncrona, não há problemas de temporização, além de poder usar o hardware de comunicação do microcontrolador.
        Cheguei a testar o WS2812 com o PIC12F1840 com apenas uma unidade, mas as temporizações críticas da comunicação tornam a tarefa bastante difícil. Há o application note AN1606 da Microchip que usa o módulo CLC combinado com o MSSP e PWM para suportar o protocolo do WS2812 via hardware.

Destaco aqui o estudo do Tim's Blog sobre o APA102 e a comparação entre este e o SK9822 e como demostrado pelo mesmo, o protocolo compatível com ambos fica assim:

1. 1 Start Frame de 4 bytes com valor zero (0x00, 0x00, 0x00, 0x00);
2. 1 LED Frame de 4 bytes para cada LED no string consistindo de 1 byte (0xE0+brilho de 5 bits) e 3 bytes de cor (azul, verde e vermelho, nesta ordem);
3. 1 SK9822 Reset Frame de 4 bytes com valor zero (0x00, 0x00, 0x00, 0x00);
4. 1 End Frame de pelo menos n/2 bits de valor 0, onde n é a quantidade de LEDs no string. Na minha aplicação uso 4 bytes com valor 0x00 independente do número de LEDs, limitando assim a quantidade a 64;
Placa montada com 10 LEDs SK9822.
Lado inferior, mostrando o PIC12F1822.
Teste de cores básicas.













terça-feira, 17 de julho de 2018

Teste do alicate-amperímetro UNI-T UT216C.

        O alicate-amperímetro UNI-T UT216C tem uma característica muito especial: mede corrente DC, pois seu sensor de campo magnético é um sensor Hall linear em vez de uma bobina, assim ele é muito útil para reparar a parte elétrica em automóveis já que não é necessário desfazer uma ligação para medir corrente. Ele também mede corrente AC (TrueRMS) como os comuns alicate-amperímetros, tensão DC/AC (também TrueRMS), temperatura (o sensor vem incluso), resistência/continuidade/teste diodo/capacitância e frequência. Outra vantagem dele é o display com 6000 contagens.

UNI-T UT216C visto de frente.

UNI-T UT216C vista de trás com o compartimento das pilhas aberto.

Pontas de prova. Mais simples que as do UT81B e sem os jacarés.

Detalhe da garra de medição. Note que a seta em cima do "+" indica o sentido de corrente DC.

Botão da lanterna na lateral. Somente um LED branco e fraquinho mas é bem útil.

Medição de corrente AC. O backlight do display está ligado.

Medição de corrente DC, note o offset no valor.

Valor da corrente DC de uma lâmpada dicroica de 12V/50W ligada em uma bateria de 12V.

Mesmo valor mas com o fio invertido mostrando que o UT216C mede o sentido da corrente. Note que há um offset positivo e constante, mas dentro da tolerância do UT216C.

Medindo corrente AC de um Chuveiro elétrico. Tente sempre manter o condutor no centro da garra para uma medida mais precisa.


Sensor de temperatura que veio incluso.

Mostrando a temperatura.
Em um carro com o motor ligado, medindo a corrente que entra no terminal da bateria.
Medindo a corrente que sai do mesmo terminal da bateria.


domingo, 1 de julho de 2018

Teste do display HP HPDL-1414.

        Comprei 10 unidades do display HP HPDL-1414, pois estavam baratos por serem unidades usadas (um pouco mais de R$5 cada um). Ele é o irmão menor do HPDL-2416 testado em um post anterior. Sua lógica é a mesma, porém sem os pinos CE1/CE2, CUE, CU e CLR, sendo mais fácil de ligar já que há menos pinos. A placa de teste é a mesma usada com os HPDL-2414, alteradas as ligações para acomodar os HPDL-1414.

10 unidades do HPDL-1414.

HPDL-2416 ao lado do HPDL-1414, ambos com a mesma altura.


Placa com os soquetes alterados para acomodar os HPDL-1414.

Outro lado da placa, com o soquete do PIC16F1933.

Placa com os displays e microcontrolador montados.

Mostrando a tensão do INA219.

Mostrando a corrente do INA219.

Comparação de tamanho: HPDL-3416, HPDL-2416 & HPDL-1414, do Leon Instruments, onde tem bastante informação sobre estes displays.