Arduino Nano - LM35 Temperatuursensor

Deze tutorial laat u zien hoe u een Arduino Nano gebruikt om de temperatuur te meten met een LM35 sensor. We leren in detail:

Hardware Vereist

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB kabel
1×LM35 Temperatuursensor
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

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 van de LM35 Temperatuursensor

De LM35 temperatuursensor heeft drie pinnen:

  • GND pin: Deze moet verbonden worden met de aarde (0V).
  • VCC pin: Deze moet verbonden worden met de voedingsspanning (5V).
  • OUT pin: Dit is de signaalpin die een uitgangsspanning geeft die lineair evenredig is met de temperatuur en moet aangesloten worden op een analoge pin van de Arduino Nano.
Pinout LM35 temperatuursensor

Hoe Werkt het

De LM35 produceert een spanning die lineair evenredig is met de temperatuur in graden Celsius. De uitgangsschaalfactor is 10 mV/°C, wat betekent dat de temperatuur kan worden bepaald door de spanning (in mV) op de uitgangspin door 10 te delen.

Aansluitschema

Arduino Nano LM35 temperatuursensor aansluitdiagram

This image is created using Fritzing. Click to enlarge image

Hoe te Programmeren voor LM35 Temperatuursensor

  • Verkrijg de ADC-waarde van de temperatuursensor met behulp van de analogRead() functie.
int adcVal = analogRead(PIN_LM35);
  • Zet de ADC-waarde om in spanning in millivolt.
float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION);
  • Zet de spanning om naar temperatuur in graden Celsius.
float temperature_C = milliVolt / 10;
  • Optioneel: Zet Celsius om naar Fahrenheit.
float temperature_F = temperature_C * 9 / 5 + 32;

Arduino Nano Code

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-lm35-temperature-sensor */ #define ADC_VREF_mV 5000.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A6 // The Arduino Nano pin connected to LM35 sensor 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 temperature_C = milliVolt / 10; // convert the Celsius to Fahrenheit float temperature_F = temperature_C * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Snelle Stappen

  • Kopieer de code en open deze in de Arduino IDE.
  • Klik op de Upload knop in de IDE om de code naar uw Arduino Nano te sturen.
  • Houd de sensor in uw hand.
  • Bekijk het resultaat in de Seriële 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 is de referentiespanning voor de ADC standaard ingesteld op 5V, oftewel 5000mV. Om de temperatuurresolutie te verhogen kan de referentiespanning met de functie analogReference() worden veranderd naar INTERNAL, dat is 1.1V oftewel 1100mV.

De volgende tabel toont het verschil tussen referentiespanningen van 5000mV en 1100mV.

Vref(mV) 5000 mV (standaard) 1100 mV (INTERNAL)
Leessnelheid/resolutie 5000/1024 = 4.88 mV 1100/1024 = 1.07 mV
Temperatuur resolutie 0.488 °C 0.107 °C
Temperatuurbereik 0 tot 500 °C 0 tot 110 °C

Arduino Nano Code

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-lm35-temperature-sensor */ #define ADC_VREF_mV 1100.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A6 // The Arduino Nano pin connected to LM35 sensor 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 temperature_C = milliVolt / 10; // convert the Celsius to Fahrenheit float temperature_F = temperature_C * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(temperature_F); // 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!