cant get SHT71 sensirion to work

second part of the code

// esperar a la respuesta del Sensirion
void waitForResultSHT(int dataPin) {
  int ack;

  pinMode(dataPin, INPUT);
  ack = digitalRead(dataPin);
  while (ack == HIGH){
    ack = digitalRead(dataPin);
  }
}

// leemos dato del data stream del Sensirion
int shiftIn(int dataPin, int clockPin, int numBits) {
  int ret = 0;

  for (int i=0; i<numBits; i++) {
    digitalWrite(clockPin, HIGH);
    delayMicroseconds(1000);
    ret = ret * 2 + digitalRead(dataPin);
    digitalWrite(clockPin, LOW);
  }
  return ret;
}

// obtener dato del Sensirion
int getData16SHT(int dataPin, int clockPin) {
  int val, aux;

  // obtener los MSB (bits mas significativos)
  pinMode(dataPin, INPUT);
  pinMode(clockPin, OUTPUT);
  val = shiftIn(dataPin, clockPin, 8);
  val *= 256; // esto es equivalente a desplazar a la izq, SHIFT: val << 8;

  // escucho el 1 de propina tras el MSB
  aux = digitalRead(dataPin);
  while (aux != 1) {
    aux = digitalRead(dataPin);
  }

  // enviar el ACK, MUCHO CUIDADO
  pinMode(dataPin, OUTPUT);
  digitalWrite(clockPin, HIGH);
  digitalWrite(dataPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(dataPin, LOW);
  digitalWrite(clockPin, LOW);

  // obtener los LSB (bits menos significativos)
  pinMode(dataPin, INPUT);
  pinMode(clockPin, OUTPUT);
  val |= shiftIn(dataPin, clockPin, 8);
  return val;
}

// obtener el estatus del Sensirion
int getDataEstatus(int dataPin, int clockPin) {
  int val, aux;

  // obtener los 8 bits
  pinMode(dataPin, INPUT);
  pinMode(clockPin, OUTPUT);
  val = shiftIn(dataPin, clockPin, 8);

  // escucho el 1 de propina tras el less significant bit
  aux = digitalRead(dataPin);
  while (aux != 1) {
    aux = digitalRead(dataPin);
  }

  // enviar el ACK, MUCHO CUIDADO
  pinMode(dataPin, OUTPUT);
  digitalWrite(clockPin, HIGH);
  digitalWrite(dataPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(dataPin, LOW);
  digitalWrite(clockPin, LOW);
}

// saltarse (no solicitar) la comprobacion CRC
void skipCrcSHT(int dataPin, int clockPin) {
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  digitalWrite(dataPin, HIGH);
  digitalWrite(clockPin, HIGH);
  digitalWrite(clockPin, LOW);
}

// calcular la temperatura en grados Celsius
float calcularTemperatura(int valT, int numerobitsT) {
  float d1, d2 = 0.0;
  float temperatura = 0.0;

  d1 = -40.1;	// es para el caso de alimentacion = 5 volts
  // d1 = -39.7;   // alimentacion = 3.5 volts
  // d1 = -39.6;   // alimentacion = 3.0 volts

  if (numerobitsT == 14) {
    d2 = 0.01;
  } 
  else {
    d2 = 0.04;
  }
  temperatura = d1 + d2 * valT;
  return temperatura;
}

// calcular la humedad relativa en tanto por ciento
float calcularHR(int valH, int numerobitsH) {
  float c1 = -4.0;
  float c2, c3 = 0.0;
  float HR = 0.0;

  if (numerobitsH == 12) {
    c2 = 0.0405;
    c3 = -0.0000028;
  } 
  else {
    c2 = 0.6480;
    c3 = -0.00072;
  }
  HR = c1 + c2 * valH + c3 * valH * valH;
  return HR;
}

// calcular el punto de rocio (T_dew)
float calcularRocio(float RH, float T) {
  float Tn1 = 243.12;  // de 0 a 50 grados C
  float Tn2 = 272.62;  // de -40 a 0 grados C
  float m1 = 17.62;    // de 0 a 50 grados C
  float m2 = 22.46;    // de -40 a 0 grados C

  float Ro = 0.0;  // variables
  float Tn = 0.0;
  float m  = 0.0;

  if (T < 0.0) {   // elijo segun por encima de 0 o no
    Tn = Tn1;
    m  = m1;
  } 
  else {
    Tn = Tn2;
    m  = m2;
  }
  Ro = Tn * (log(RH/100) + ((m*T) / (Tn+T))) / (m - log(RH/100) - ((m*T) / (Tn*T)));
  return Ro;  // devuelvo
}

// sacar por pantalla (se puede comentar al gusto, para no sacar tanta info)
void representar(float T, float HR, float RHtrue, float Rocio, int valT, int valH) {
  Serial.println("*************************************************************************");
  // escribo los datos binarios q he leido (opcional)
  Serial.print("val temp = ");
  Serial.print(valT);
  Serial.print(" = ");
  Serial.print(valT, BIN);
  Serial.print(", val hum = ");
  Serial.print(valH);
  Serial.print(" = ");
  Serial.print(valH, BIN);
  // datos adicionales (opcional)
  Serial.print("    HR verdadera = ");
  Serial.print(RHtrue);
  Serial.print(" %,  T de rocio = ");
  Serial.print(Rocio);
  Serial.println(" C");
  // datos importantes
  Serial.print("Sensirion (T, HR) :	 ");
  Serial.print(temp);
  Serial.print(" C   ");
  Serial.print(hum);
  Serial.println(" %");
}

// calcular la humedad relativa verdadera corregido por la temperatura
float calcularHumedadVerdadera(float T, int valH, float HR, int numerobitsH) {
  float t1 = 0.01;
  float t2 = 0.0;
  float HRtrue = 0.0;

  if (numerobitsH == 12) {  // el numero de bits para medir la humedad son 8 o 12
    t2 = 0.00008;
  } 
  else {
    t2 = 0.00128;
  }

  HRtrue = (T - 25.0) * (t1 + t2 * valH) + HR;
  return HRtrue;
}

// leer la palabra de estatus
void leerEstatus() {
  int val= 0;

  sendCommandSHT(comandoEstatus, dataPin, clockPin);
  waitForResultSHT(dataPin);
  val = getDataEstatus(dataPin, clockPin);
  skipCrcSHT(dataPin, clockPin);
  Serial.print("estatus = ");
  Serial.println(val, BIN);
}

how dcan i activate the internal pull-up for this code, to see if tha works