NTC temperatuur-weerstand curve
LDR en NTC zijn beiden weerstanden. De ene verandert zijn waarde onder invloed van licht, de andere met de temperatuur. Met hulp van een vaste weerstand kunnen we deze verandering van weerstand omzetten in de verandering van een spanning. Deze spanning kan de ADC meten en in een getal omzetten.
Om een analoge waarde te meten en een verandering te zien als de omgeving verandert zijn zowel LDR als NTC geschikt. (We hadden ook een potmeter kunnen gebruiken. Het principe blijft gelijk.)
Een Light Dependent Resistor
(LDR) verandert zijn weerstand afhankelijk van de hoeveelheid licht die erop valt.
De LDR’s in de Turing Lab Hardware Shop veranderen hun weerstand tussen ca. 2 MegaOhm (donker) tot circa 600 Ohm (erg helder). Waarschijnlijk is de aanwezige sensor een 5528 type (LDR03/LDR04).
Een thermistor is een weerstand die zijn waarde met de temperatuur van de omgeving verandert.
Er zijn twee types van deze weerstanden:
Negative Temperature Coefficient
(NTC) weerstanden. Deze verlaagd zijn weerstand als de temperatuur van de omgeving hoger wordt.Positive Temperature Coefficient
(PTC) weerstanden. Deze verhoogd zijn weerstand als de temperatuur van de omgeving hoger wordt.We tonen in dit voorbeeld een LDR, maar in plaats ervan kan je ook een NTC gebruiken.
De voorbeeld code meet alleen een spanning en geeft deze via het serial interface uit.
Het voorbeeld gebruikt Analog Pin ‘A0’, maar je kan het programma makkelijk aanpassen om een andere Analog Pin te kiezen. Dat is handig bijvoorbeeld als je een Arduino Nano gebruikt.
// LDR-NTC.ino - Analog Input example - 2024-02-04-hp
// Tested on Arduino Nano
// [+5V]---[=LDR or NTC_10K=]---[A0]---[=10k=]---[GND]
const long baudrate = 9600;
const int delaytime_ms = 1000; // delay 1000ms = 1s
const int pinAnalogIn = A0;
int dataAnalogIn = 0;
// The Arduino Analog-to-Digital Converter (ADC) has 10 bit resolution.
// Each measurement results in a number from 0 to 1023.
// Arduino Uno and Arduino Nano map this to a range from 0 Volts to 5 Volts.
const float analogDataToVolt = 5.0 / 1024;
void setup() {
pinMode(pinAnalogIn, INPUT);
// Initialize serial interface and wait for port to open:
Serial.begin(baudrate);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("LDR-NTC.ino - Analog Input example");
}
void loop() {
dataAnalogIn = analogRead(pinAnalogIn);
Serial.print("Analog input value: ");
Serial.print(dataAnalogIn);
Serial.print(" - Voltage: ");
Serial.println(dataAnalogIn * analogDataToVolt);
delay(delaytime_ms);
}
//EOF
LDR Datasheets
NTC Datasheets