Skip to content

Commit

Permalink
Added new examples.
Browse files Browse the repository at this point in the history
  • Loading branch information
suoapvs committed May 23, 2019
1 parent 79744f0 commit f973197
Show file tree
Hide file tree
Showing 5 changed files with 275 additions and 4 deletions.
71 changes: 71 additions & 0 deletions examples/AverageMeasurement/AverageMeasurement.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/*
Average NTC Thermistor
Reads a temperature from the NTC 3950 thermistor,
averages and displays it in the default Serial.
https://github.com/YuriiSalimov/NTC_Thermistor
Created by Yurii Salimov, May, 2019.
Released into the public domain.
*/
#include <Thermistor.h>
#include <NTC_Thermistor.h>
#include <AverageThermistor.h>

#define SENSOR_PIN A1
#define REFERENCE_RESISTANCE 8000
#define NOMINAL_RESISTANCE 100000
#define NOMINAL_TEMPERATURE 25
#define B_VALUE 3950

/**
How many readings are taken to determine a mean temperature.
The more values, the longer a calibration is performed,
but the readings will be more accurate.
*/
#define READINGS_NUMBER 10

/**
Delay time between a temperature readings
from the temperature sensor (ms).
*/
#define DELAY_TIME 10

Thermistor* thermistor = NULL;

// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(9600);

thermistor = new AverageThermistor(
new NTC_Thermistor(
SENSOR_PIN,
REFERENCE_RESISTANCE,
NOMINAL_RESISTANCE,
NOMINAL_TEMPERATURE,
B_VALUE
),
READINGS_NUMBER,
DELAY_TIME
);
}

// the loop function runs over and over again forever
void loop() {
// Reads temperature
const double celsius = thermistor->readCelsius();
const double kelvin = thermistor->readKelvin();
const double fahrenheit = thermistor->readFahrenheit();

// Output of information
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.print(" C, ");
Serial.print(kelvin);
Serial.print(" K, ");
Serial.print(fahrenheit);
Serial.println(" F");

delay(100); // To delay the output of information.
}
82 changes: 82 additions & 0 deletions examples/STM32/STM32.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/*
NTC Thermistor
Reads a temperature from the NTC 3950 thermistor and displays
it in the default Serial.
The Arduino Uno or any other Arduino board that uses Atmega328 as
the Microcontroller has ADC resolution of 10 bits. Hence the values on each
analog channel can vary from 0 to 1023.
The STM32 board has ADC resolution of 12 bits. Hence the values on each analog
channel can vary from 0 to 4095.
If you use the STM32 board, you must calibrate your joystick,
since the analogRead(*) function return 0..4095
versus 0..1023 for Arduino.
---------------------------
| analogRead() |
---------------------------
| Arduion | STM32 |
|-------------------------|
| 0...1023 | 0...4095 |
---------------------------
To calibrate use next constructor:
Thermistor* thermistor = new NTC_Thermistor(
...,
ANALOG_RESOLUTION
);
Where,
ANALOG_RESOLUTION - board ADC resolution (default, 1023).
https://github.com/YuriiSalimov/NTC_Thermistor
Created by Yurii Salimov, May, 2019.
Released into the public domain.
*/
#include <Thermistor.h>
#include <NTC_Thermistor.h>

#define SENSOR_PIN PA6
#define REFERENCE_RESISTANCE 8000
#define NOMINAL_RESISTANCE 100000
#define NOMINAL_TEMPERATURE 25
#define B_VALUE 3950
#define STM32_ANALOG_RESOLUTION 4095

Thermistor* thermistor;

// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(9600);

thermistor = new NTC_Thermistor(
SENSOR_PIN,
REFERENCE_RESISTANCE,
NOMINAL_RESISTANCE,
NOMINAL_TEMPERATURE,
B_VALUE,
STM32_ANALOG_RESOLUTION
);
}

// the loop function runs over and over again forever
void loop() {
// Reads temperature
const double celsius = thermistor->readCelsius();
const double kelvin = thermistor->readKelvin();
const double fahrenheit = thermistor->readFahrenheit();

// Output of information
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.print(" C, ");
Serial.print(kelvin);
Serial.print(" K, ");
Serial.print(fahrenheit);
Serial.println(" F");

delay(500); // To delay the output of information.
}
53 changes: 53 additions & 0 deletions examples/SerialReading/SerialReading.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
NTC Thermistor
Reads a temperature from the NTC 3950 thermistor and displays
it in the default Serial.
https://github.com/YuriiSalimov/NTC_Thermistor
Created by Yurii Salimov, May, 2019.
Released into the public domain.
*/
#include <Thermistor.h>
#include <NTC_Thermistor.h>

#define SENSOR_PIN A1
#define REFERENCE_RESISTANCE 8000
#define NOMINAL_RESISTANCE 100000
#define NOMINAL_TEMPERATURE 25
#define B_VALUE 3950

Thermistor* thermistor;

// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(9600);

thermistor = new NTC_Thermistor(
SENSOR_PIN,
REFERENCE_RESISTANCE,
NOMINAL_RESISTANCE,
NOMINAL_TEMPERATURE,
B_VALUE
);
}

// the loop function runs over and over again forever
void loop() {
// Reads temperature
const double celsius = thermistor->readCelsius();
const double kelvin = thermistor->readKelvin();
const double fahrenheit = thermistor->readFahrenheit();

// Output of information
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.print(" C, ");
Serial.print(kelvin);
Serial.print(" K, ");
Serial.print(fahrenheit);
Serial.println(" F");

delay(500); // To delay the output of information.
}
64 changes: 64 additions & 0 deletions examples/SmoothMeasurement/SmoothMeasurement.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
Smooth NTC Thermistor
Reads a temperature from the NTC 3950 thermistor,
smooth and displays it in the default Serial.
https://github.com/YuriiSalimov/NTC_Thermistor
Created by Yurii Salimov, May, 2019.
Released into the public domain.
*/
#include <Thermistor.h>
#include <NTC_Thermistor.h>
#include <SmoothThermistor.h>

#define SENSOR_PIN A1
#define REFERENCE_RESISTANCE 8000
#define NOMINAL_RESISTANCE 100000
#define NOMINAL_TEMPERATURE 25
#define B_VALUE 3950

/**
How many readings are taken to determine a mean temperature.
The more values, the longer a calibration is performed,
but the readings will be more accurate.
*/
#define SMOOTH_FACTOR 5

Thermistor* thermistor = NULL;

// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(9600);

thermistor = new SmoothThermistor(
new NTC_Thermistor(
SENSOR_PIN,
REFERENCE_RESISTANCE,
NOMINAL_RESISTANCE,
NOMINAL_TEMPERATURE,
B_VALUE
),
SMOOTH_FACTOR
);
}

// the loop function runs over and over again forever
void loop() {
// Reads temperature
const double celsius = thermistor->readCelsius();
const double kelvin = thermistor->readKelvin();
const double fahrenheit = thermistor->readFahrenheit();

// Output of information
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.print(" C, ");
Serial.print(kelvin);
Serial.print(" K, ");
Serial.print(fahrenheit);
Serial.println(" F");

delay(500); // To delay the output of information.
}
9 changes: 5 additions & 4 deletions examples/Thermistor/Thermistor.ino
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*
Thermistor.
NTC Thermistor
Reads a temperature from the NTC 3950 thermistor and displays
it in the default Serial.
Reads a temperature from the NTC 3950 thermistor
and displays it in the default Serial.
https://github.com/YuriiSalimov/NTC_Thermistor
Expand All @@ -19,6 +19,7 @@

NTC_Thermistor* thermistor = NULL;

// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(9600);
thermistor = new NTC_Thermistor(
Expand All @@ -30,6 +31,7 @@ void setup() {
);
}

// the loop function runs over and over again forever
void loop() {
const double celsius = thermistor->readCelsius();
const double kelvin = thermistor->readKelvin();
Expand All @@ -40,4 +42,3 @@ void loop() {
Serial.println(String(fahrenheit) + " F");
delay(500);
}

0 comments on commit f973197

Please sign in to comment.