need some help to add a temperature sensor to this code but i cant get it workin

its for one of my projects where i need to measure current and temperature

i was thinking a LM35 or DS18S20

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2

#define LOGO16_GLCD_HEIGHT 64
#define LOGO16_GLCD_WIDTH 128
static const unsigned char PROGMEM logo16_glcd_bmp[] =
{ B00000000, B11000000,
B00000001, B11000000,
B00000001, B11000000,
B00000011, B11100000,
B11110011, B11100000,
B11111110, B11111000,
B01111110, B11111111,
B00110011, B10011111,
B00011111, B11111100,
B00001101, B01110000,
B00011011, B10100000,
B00111111, B11100000,
B00111111, B11110000,
B01111100, B11110000,
B01110000, B01110000,
B00000000, B00110000 };

#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

///*** ACS758 settings starts
#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC = 5.0;// supply voltage 5V or 3.3V. If using PCB, set to 5V only.
const int model = 2; // enter the model (see below)

float cutOffLimit = 1.00;// reading cutt off current. 1.00 is 1 Amper

/*
"ACS758LCB-050B",// for model use 0
"ACS758LCB-050U",// for model use 1
"ACS758LCB-100B",// for model use 2
"ACS758LCB-100U",// for model use 3
"ACS758KCB-150B",// for model use 4
"ACS758KCB-150U",// for model use 5
"ACS758ECB-200B",// for model use 6
"ACS758ECB-200U"// for model use 7
sensitivity array is holding the sensitivy of the ACS758
current sensors. Do not change.
*/
float sensitivity[] ={
40.0,// for ACS758LCB-050B
60.0,// for ACS758LCB-050U
20.0,// for ACS758LCB-100B
40.0,// for ACS758LCB-100U
13.3,// for ACS758KCB-150B
16.7,// for ACS758KCB-150U
10.0,// for ACS758ECB-200B
20.0,// for ACS758ECB-200U
};

/*

  • quiescent Output voltage is factor for VCC that appears at output
  • when the current is zero.
  • for Bidirectional sensor it is 0.5 x VCC
  • for Unidirectional sensor it is 0.12 x VCC
  • for model ACS758LCB-050B, the B at the end represents Bidirectional (polarity doesn't matter)
  • for model ACS758LCB-100U, the U at the end represents Unidirectional (polarity must match)
  • Do not change.
    */
    float quiescent_Output_voltage [] ={
    0.5,// for ACS758LCB-050B
    0.12,// for ACS758LCB-050U
    0.5,// for ACS758LCB-100B
    0.12,// for ACS758LCB-100U
    0.5,// for ACS758KCB-150B
    0.12,// for ACS758KCB-150U
    0.5,// for ACS758ECB-200B
    0.12,// for ACS758ECB-200U
    };
    const float FACTOR = sensitivity[model]/1000;// set sensitivity for selected model
    const float QOV = quiescent_Output_voltage [model] * VCC;// set quiescent Output voltage for selected model
    float voltage;// internal variable for voltage
    float cutOff = FACTOR/cutOffLimit;// convert current cut off to mV

//**** ACS758 settings ends
void setup() {
Serial.begin(9600);

// by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
// init done

}

void loop() {
//Robojax.com ACS758 Current Sensor values start
float voltage_raw = (5.0 / 1023.0)* analogRead(VIN);// Read the voltage from sensor
voltage = voltage_raw - QOV + 0.003 ;// 0.007 is a value to make voltage zero when there is no current
float current = voltage / FACTOR;
if(abs(voltage) > cutOff ){
Serial.print("V: ");
Serial.print(voltage,3);// print voltage with 3 decimal places
Serial.print("V, I: ");
Serial.print(current,2); // print the current with 2 decimal places
Serial.println("A");
display.clearDisplay();
robojaxText("V:", 0, 0, 2, false);
String voltageS = String(voltage);// get voltage and convert it to string for display
robojaxText(voltageS +"V", 20, 0, 2, false);
robojaxText("Current:", 0, 22, 2, false);
String currentS = String(current);// get current and convert it to string for display
robojaxText(currentS +"A", 0, 40, 3, false);
display.display();
}else{
Serial.println("No Current");
display.clearDisplay();
robojaxText("No Current", 0, 0, 2, false);
display.display();
}

//Robojax.com ACS758 Current Sensor values end

delay(500);
}

/*

  • robojaxText(String text, int x, int y,int size, boolean d)
  • text is the text string to be printed
  • x is the integer x position of text
  • y is the integer y position of text
  • z is the text size, 1, 2, 3 etc
  • d is either "true" or "false". Not sure, use true
    */
    void robojaxText(String text, int x, int y,int size, boolean d) {

display.setTextSize(size);
display.setTextColor(WHITE);
display.setCursor(x,y);
display.println(text);
if(d){
display.display();
}

delay(100);
}