Arduino - LM35 Temperatuursensor

Hardware Vereist

1×Arduino Uno R3
1×USB 2.0-kabel type A/B
1×LM35 Temperatuursensor
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de LM35 Temperatuursensor

Pinout

De LM35 temperatuursensor heeft drie pins:

  • GND-pin: moet verbonden worden met GND (0V)
  • VCC-pin: moet verbonden worden met VCC (5V)
  • OUT-pin: signaalpin die een uitgangsspanning geeft die lineair evenredig is met de temperatuur; deze pin moet worden aangesloten op een analoge pin van de Arduino.
LM35 temperatuursensor Pinout

Werking

De LM35 geeft een uitgangsspanning die lineair evenredig is met de temperatuur in graden Celsius (Centigrade). De uitgangsschaalfactor van de LM35 is 10 mV/°C. Dit betekent dat de temperatuur berekend wordt door de spanning (in mV) op de uitgangspin te delen door 10.

Aansluitschema

Arduino LM35 temperatuursensor Aansluitschema

This image is created using Fritzing. Click to enlarge image

Hoe te Programmeren voor LM35 Temperatuursensor

  • Haal de ADC-waarde op van de temperatuursensor met behulp van de analogRead() functie.
int adcVal = analogRead(PIN_LM35);
  • Converteer de ADC-waarde naar spanning in millivolt
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
  • Converteer de spanning naar temperatuur in graden Celsius
float tempC = milliVolt / 10;
  • (Optioneel) Converteer de temperatuur in Celsius naar Fahrenheit
float tempF = tempC * 9 / 5 + 32;

Arduino Code

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-lm35-temperature-sensor */ #define ADC_VREF_mV 5000.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A0 void setup() { Serial.begin(9600); } void loop() { // get the ADC value from the temperature sensor int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = milliVolt / 10; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Snelle Stappen

  • Kopieer bovenstaande code en open deze met de Arduino IDE
  • Klik op de Upload-knop in Arduino IDE om de code naar de Arduino te uploaden
  • Houd de sensor vast met uw hand
  • Bekijk het resultaat in de Serial Monitor.
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Verbeteren van de Temperatuurprecisie

In bovenstaande code gebruiken we standaard de ADC referentiespanning van 5V (~5000mV). We kunnen de temperatuurresolutie verbeteren door de referentiespanning te veranderen naar INTERNAL (1,1V ~1100mV). Deze referentiespanning kan gewijzigd worden met behulp van de analogReference() functie.

De onderstaande tabel toont het verschil tussen het gebruik van 5000 mV en 1100 mV referentiespanning:

Vref(mV) 5000 mV (standaard) 1100 mV (INTERNAL)
Leesresolutie 5000/1024 = 4,88 mV 1100/1024 = 1,07 mV
Temperatuurresolutie 0,488 °C 0,107 °C
Temperatuurbereik 0 tot 500 °C 0 tot 110 °C

Arduino Code

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-lm35-temperature-sensor */ #define ADC_VREF_mV 1100.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A0 void setup() { Serial.begin(9600); // switch to Internal 1.1V Reference analogReference(INTERNAL); } void loop() { // get the ADC value from the temperature sensor int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // ADC_VREF_mV = 1100 mV // convert the voltage to the temperature in Celsius float tempC = milliVolt / 10; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!