Thermistor (Temperature Sensor)

group index


This library provides functions for reading a thermistor temperature sensor as used on some shields.

Quick Start

  1. Create an empty PSoC6 application

  2. Add this library to the application

  3. Add retarget-io library using Library Manager

  4. Place following code in the main.c file:

  5. Note: CY8CKIT_028_EPD_ items are all defined in the CY8CKIT-028-EPD library. If you are using different hardware, pick appropriate values to substitute for your hardware.

    #include "cy_pdl.h"
    #include "cyhal.h"
    #include "cybsp.h"
    #include "cy_retarget_io.h"
    #include "cy8ckit_028_epd.h"
    cyhal_adc_t adc;
    mtb_thermistor_ntc_gpio_t thermistor;
    mtb_thermistor_ntc_gpio_cfg_t thermistor_cfg = {
        .r_ref = CY8CKIT_028_EPD_THERM_R_REF,
        .b_const = CY8CKIT_028_EPD_THERM_B_CONST,
        .r_infinity = CY8CKIT_028_EPD_THERM_R_INFINITY,
    int main(void)
        cy_rslt_t result;
        /* Initialize the device and board peripherals */
        result = cybsp_init();
        CY_ASSERT(result == CY_RSLT_SUCCESS);
        /* Initialize retarget-io to use the debug UART port */
        result = cy_retarget_io_init(CYBSP_DEBUG_UART_TX, CYBSP_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE);
        CY_ASSERT(result == CY_RSLT_SUCCESS);
        /* Intialize adc */
        result = cyhal_adc_init(&adc, CY8CKIT_028_EPD_PIN_THERM_OUT1, NULL);
        /* Initialize thermistor */
        result = mtb_thermistor_ntc_gpio_init(&thermistor, &adc,
            &thermistor_cfg, MTB_THERMISTOR_NTC_WIRING_VIN_R_NTC_GND);
        CY_ASSERT(result == CY_RSLT_SUCCESS);
        for (;;)
            /* Measure the temperature and send the value via UART */
            printf("Temperature = %fC\n\r", mtb_thermistor_ntc_gpio_get_temp(&thermistor));

  6. Build the application and program the kit.

More information