Ultrasonic oscillating temperature sensors (UOTSes) allow sensing aggregate temperatures across, for example, a complete room, and react at the temperature changes within milliseconds . Their output frequency is to be measured with relatively high accuracy (standard crystal oscillators might be insufficient) and resolution (down to 0.01%) though. For this reason, wide adoption of these sensors requires development of a robust, inexpensive and convenient way of measuring their output frequency.
In our previous experiments we used chained electronic counters implemented on proprietary Programmable Systems-on-Chip parts (Cypress Semiconductors). However, these parts are increasingly becoming sparse and phasing out, and there is a clear need to enable UOTS frequency measurement using mainstream microcontrollers. After briefly trying some 8 bits Arduino libraries for frequency measurement that were found not sufficiently good for the purpose, the STM32 parts were selected for their abundance of built in timers and vast variety of configuration and operation options available. The standard for most microcontrollers timer Capture mode along with chained, interrupted and direct memory access (DMA) operations were considered.
Utilising the DMA allows recording measurements for every half period of the incoming frequency. Despite every individual measurement is inaccurate on its own, moving average of these allows achieving arbitrary accuracy (at the expense of measurement latency) along with providing frequencies after every half period of the UOTS output pulses. This capability not only exceeds the needs of, say, room temperature measurement, but also gives an opportunity to study short term variations in aggregate temperatures that can be useful for studying non-stationary heat distributions and flows.
 Elyounsi, A.; Kalashnikov, A.N. Ultrasonic Oscillating Temperature Sensor for Operation in Air. Eng. Proc. 2021, 10, 62.
- 29 Reads