Arduino - Temperatuur weergeven van LM35 Sensor op OLED
In deze tutorial gaan we leren hoe we de temperatuur uitlezen van een LM35 sensor en deze weergeven op een OLED.

Hardware benodigd
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 OLED en LM35 Temperatuursensor
Als u nog niet bekend bent met OLED en LM35 Temperatuursensor (pinout, werking, programmeren ...), leer er meer over in de volgende tutorials:
- Arduino - OLED tutorial
- Arduino - LM35 Temperatuursensor tutorial
Aansluitschema

This image is created using Fritzing. Click to enlarge image
Arduino Code - LM35 Temperatuursensor - OLED
/*
* 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-display-temperature-from-lm35-sensor-on-oled
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define ADC_VREF_mV 5000.0 // in millivolt
#define ADC_RESOLUTION 1024.0
#define PIN_LM35 A0 // pin connected to LM35 temperature sensor
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C
String tempString;
void setup() {
Serial.begin(9600);
// initialize OLED display with address 0x3C for 128x64
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
while (true);
}
delay(2000); // wait for initializing
oled.clearDisplay(); // clear display
oled.setTextSize(2); // text size
oled.setTextColor(WHITE); // text color
oled.setCursor(0, 10); // position to display
tempString.reserve(10); // to avoid fragmenting memory when using String
}
void loop() {
// get the ADC value from the LM35 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;
tempString = String(tempC, 2); // two decimal places
tempString += char(247) + String("C");
Serial.println(tempString); // print the temperature in Celsius to Serial Monitor
oledDisplayCenter(tempString); // display temperature on OLED
}
void oledDisplayCenter(String text) {
int16_t x1;
int16_t y1;
uint16_t width;
uint16_t height;
oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height);
// display on horizontal and vertical center
oled.clearDisplay(); // clear display
oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2);
oled.println(text); // text to display
oled.display();
}
Snelle Stappen
- Open de Arduino IDE op uw pc.
- Navigeer naar het Libraries icoon in de linkerbalk van de Arduino IDE.
- Zoek op “SSD1306” en vind de SSD1306 bibliotheek van Adafruit.
- Klik op de Install knop om de bibliotheek te installeren.

- U krijgt mogelijk de vraag om extra bibliotheekafhankelijkheden te installeren.
- Klik op de Install All knop om alle benodigde afhankelijkheden te installeren.

- Kopieer de bovenstaande code en open deze met Arduino IDE.
- Klik op de Upload knop in Arduino IDE om de code naar de Arduino te uploaden.
- Plaats de sensor in warm en koud water, of houd de sensor in uw hand.
- Bekijk het resultaat op het OLED display en in de Serial Monitor.
※ Notiz:
De bovenstaande code centreert automatisch de tekst horizontaal en verticaal op het OLED-display.
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.