zenitheesc/Drivers

Driver para Termômetro de 4 canais

MarcusMoraisEpifane opened this issue · 2 comments

Driver para Termômetro de 4 canais

Hey, thank you for opening your first Issue ! 🚀 Feel free to add assignees and tags. Also don't forget to read our README.md for contribution guidelines!
We'll address this issue soon ;)

4 Channel Thermistor Converter

A questão desse sensor é a interface não convencional. Basicamente ele mede 4 temperaturas independentes. Escolhemos ele principalmente pelo tamanho comparado a outras soluções para medição de múltiplos termistores.

Ele nos envia a temperatura codificada na duração de um pulso. Então o ele envia 4 pulsos de durações diferentes em sequencia. Capturar essa informação nos intervalos de tempo descritos pelo datasheet é o desafio.

Pensei inicialmente em 2 soluções gambiarra, uma maquina de estado reagindo a interrupção externa, mas isso ficaria mais complexo do que é adequado. A outra solução é manipular timer simples contando o intervalo e calculando em uma interrupção.
Mas acho que seria mais correto usar o modo de Input Capture Mode do timer que em teoria faz exatamente o que queremos. Mesmo assim é necessário checar se ele se atende aos requisitos de tempo do sinal.

Referencia

https://letanphuc.net/2015/06/stm32f0-timer-tutorial-and-counter-tutorial/

No video que acompanha a secção do Input Capture Mode ele faz uma demonstração de contar o tempo que um botão externo fica pressionado.

https://youtu.be/_wE7tbilca4?t=415

Validação

Como se trata de um sinal especifico, vale usar o Proteus para gerar um sinal equivalente. Caso fique muito complexo no Proteus, é possível gerar um sinal equivalente usando as saídas de PWM de um Arduino ou ESP