TOP Contributors

  1. MIKROE (2752 codes)
  2. Alcides Ramos (372 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (118 codes)
  5. Bugz Bensce (90 codes)
  6. S P (73 codes)
  7. dany (71 codes)
  8. MikroBUS.NET Team (35 codes)
  9. NART SCHINACKOW (34 codes)
  10. Armstrong Subero (27 codes)

Most Downloaded

  1. Timer Calculator (139068 times)
  2. FAT32 Library (71594 times)
  3. Network Ethernet Library (56989 times)
  4. USB Device Library (47330 times)
  5. Network WiFi Library (43006 times)
  6. FT800 Library (42297 times)
  7. GSM click (29777 times)
  8. mikroSDK (27874 times)
  9. PID Library (26858 times)
  10. microSD click (26129 times)
Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

< Back
mikroSDK Library

Thermostat 3 click

Rating:

5

Author: MIKROE

Last Updated: 2019-08-28

Package Version: 1.0.0.0

mikroSDK Library: 1.0.0.0

Category: Temperature & humidity

Downloaded: 2987 times

Not followed.

License: MIT license  

Thermostat 3 Click is a general-purpose thermostat Click board designed to be used with any temperature sensor based on the MAX31855 sensor design.

No Abuse Reported

Do you want to subscribe in order to receive notifications regarding "Thermostat 3 click" changes.

Do you want to unsubscribe in order to stop receiving notifications regarding "Thermostat 3 click" changes.

Do you want to report abuse regarding "Thermostat 3 click".

  • mikroSDK Library 2.0.0.0
  • Comments (0)
DOWNLOAD LINK RELATED COMPILER CONTAINS
mikroBasic PRO for ARM
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for AVR
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for dsPIC30/33 & PIC24
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for FT90x
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for PIC
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroBasic PRO for PIC32
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for ARM
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for AVR
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for dsPIC30/33 & PIC24
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for FT90x
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for PIC
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroC PRO for PIC32
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for ARM
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for AVR
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for dsPIC30/33 & PIC24
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for FT90x
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for PIC
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc
mikroPascal PRO for PIC32
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc

mikroSDK Library Blog

Thermostat 3 click

Thermostat 3 click

Native view of the Thermostat 3 click board.

View full image
Thermostat 3 click

Thermostat 3 click

Front and back view of the Thermostat 3 click board.

View full image

Library Description

The library initializes and defines the SPI bus driver and drivers that offer a choice for read data form SPI lines. With functions from the library it is possible to read Internal or Thermocouple temperature data in Celsius, Kelvin or Fahrenheit. The library provides full relay control and reads fault error status.

Key functions:

  • float thermostat3_getInternalTemperature(uint8_t TempIn) - Junction (Internal) Temperature
  • float thermostat3_getThermocoupleTemperature(uint8_t TempIn) - Thermocouple Temperature (K probe)
  • void thermostat3_relayControl(uint8_t relayPos) - Relay Control

Examples description

The application is composed of three sections :

  • System Initialization - Initialzes SPI module and all the necessary GPIO pins
  • Application Initialization - Initialization driver init
  • Application Task - Waits for valid user input and executes functions based on set of valid commands
  • Commands : 'e' - Display Thermocouple temperature 'i' - Display Internal temperature 'r' - Relay control (Relay ON / OFF) 'f' - Fault flag (Active ON / OFF) '+' - Change fault flage and display fault status(ERROR / OK)
void applicationTask()
{
    uint8_t dataReady_;
    char receivedData_;
    
    thermostat3_process();
    
    dataReady_ = UART_Rdy_Ptr();

    if (dataReady_ != 0)
    {
        receivedData_ = UART_Rd_Ptr();

        switch (receivedData_)
        {
            case 'i' :
            {
                InternalTemp = thermostat3_getInternalTemperature(_THERMOSTAT3_TEMP_IN_CELSIUS);

                FloatToStr(InternalTemp, demoText);
                mikrobus_logWrite("# Internal Temperature: ", _LOG_TEXT);
                mikrobus_logWrite(demoText, _LOG_LINE);
                break;
            }
            case 'e' :
            {
                ThermocoupleTemp = thermostat3_getThermocoupleTemperature(_THERMOSTAT3_TEMP_IN_CELSIUS);

                FloatToStr(ThermocoupleTemp, demoText);
                mikrobus_logWrite("# Thermocouple Temperature: ", _LOG_TEXT);
                mikrobus_logWrite(demoText, _LOG_LINE);
                break;
            }
            case 'r' :
            {
                if(_relayFlag == 1)
                {
                    _relayFlag = 0;
                    thermostat3_relayControl(_THERMOSTAT3_RELAY_OFF);
                    mikrobus_logWrite("# Relay OFF", _LOG_LINE);
                }
                else
                {
                    _relayFlag = 1;
                    thermostat3_relayControl(_THERMOSTAT3_RELAY_ON);
                    mikrobus_logWrite("# Relay ON", _LOG_LINE);
                }
                break;
            }
            case 'f' :
            {
                if(_faultFlag == 1)
                {
                    _faultFlag = 0;
                    mikrobus_logWrite("# Fault status -- OFF", _LOG_LINE);
                }
                else
                {
                    _faultFlag = 1;
                    mikrobus_logWrite("# Fault status -- ON", _LOG_LINE);
                }
                break;
            }
            case '+' :
            {
                if(_faultFlag == 1)
                {
                    _fError++;
                    if(_fError > 3)
                    {
                        _fError = 0;
                    }
                    _displayFault(_fError);
                    _faultStatus = thermostat3_getFaultData(0x01 << _fError);
                    
                    if (_faultStatus == 1 )
                    {
                        mikrobus_logWrite(" -- ERROR", _LOG_LINE);
                    }
                    else
                    {
                        mikrobus_logWrite(" -- OK", _LOG_LINE);
                    }
                }
                else
                {
                    mikrobus_logWrite(" Fault status is OFF, Please turn ON fault status!!!", _LOG_LINE);
                }
                break;
            }
        }
    }
}

Additional Functions :

  • void _displayFault( ) - Display fault

The full application code, and ready to use projects can be found on our LibStock page.

Other mikroE Libraries used in the example:

  • SPI Library
  • UART Library
  • Conversions

Additional notes and informations

Depending on the development board you are using, you may need USB UART clickUSB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.

ALSO FROM THIS AUTHOR

BARGRAPH 3 Click

0

BarGraph 3 Click is equipped with a five-segment LED bar graph display, notable for its strong and uniform illumination of the segments. Each segment consists of three internal LEDs with a common cathode, while the anodes of all LEDs are connected in a single point.>

[Learn More]

Matrix RGB Click

0

Matrix RGB Click is a mikroBUS™ add-on board powered by a 32-bit FT900 MCU designed specifically for powering 16x32 RGB LED matrices.

[Learn More]

DIGI POT click

0

This program demonstrates the usage of single channel Digital Potentiometer (MCP4161) with 8 bit resolution. Voltage derived from PW pin is read by MCU's ADC. Scaled value is then displayed at PORTD LEDs. User can increase or decrease resitance by pressing buttons RB2 and RB3.&amp;lt;br/&amp;gt;

[Learn More]