# El módulo MAX6675 me arroja valores de 0°C

**URL:** <https://forum.arduino.cc/t/el-modulo-max6675-me-arroja-valores-de-0-c/1258540>\
**Category:** Español\
**Created:** [May 11, 2024, 3:07am UTC](https://forum.arduino.cc/t/el-modulo-max6675-me-arroja-valores-de-0-c/1258540 "2024-05-11T03:07:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![brandon\_unalm](https://avatars.discourse-cdn.com/v4/letter/b/9de053/32.png) [@brandon\_unalm](https://forum.arduino.cc/u/brandon_unalm)\
**Post date:** [May 11, 2024, 3:07am UTC](https://forum.arduino.cc/t/el-modulo-max6675-me-arroja-valores-de-0-c/1258540/1 "2024-05-11T03:07:17Z")

</div>

Hola, alguien que me pueda ayudar, por favor. Compré un termopar tipo K de -60°C a 1250°C. Al hacer la conexión del módulo MAX6675 con el ArduinoMega, este arroja valores de 0°C.

Espero y me puedan aconsejar.

Anexo el código y una foto de la conexión.

```arduino
#include <SPI.h>

// Definir los pines para la comunicación SPI con el MAX6675
#define MAX6675_SCK 52
#define MAX6675_CS 53
#define MAX6675_SO 50

void setup() {
  Serial.begin(9600); // Inicializar la comunicación serial
  // Configurar los pines para la comunicación SPI
  pinMode(MAX6675_CS, OUTPUT);
  pinMode(MAX6675_SO, INPUT);
  pinMode(MAX6675_SCK, OUTPUT);
  // Configurar el pin de selección de chip (CS) en alto por defecto
  digitalWrite(MAX6675_CS, HIGH);
}

void loop() {
  // Leer la temperatura del termopar
  float temperatura = leerTermopar();
  
  // Imprimir la temperatura en el Monitor Serie
  Serial.print("Temperatura: ");
  Serial.print(temperatura);
  Serial.println(" °C");

  delay(1000); // Esperar 1 segundo antes de la próxima lectura
}

float leerTermopar() {
  digitalWrite(MAX6675_CS, LOW); // Habilitar la lectura de datos
  
  delay(1); // Esperar un breve momento para que el MAX6675 se prepare para enviar datos
  
  // Leer los datos del termopar
  int dato = 0;
  for (int i = 14; i >= 0; i--) {
    digitalWrite(MAX6675_SCK, LOW); // Iniciar la conversión
    delayMicroseconds(1);
    digitalWrite(MAX6675_SCK, HIGH); // Hacer un pulso de reloj
    delayMicroseconds(1);
    bitWrite(dato, i, digitalRead(MAX6675_SO)); // Leer el bit y almacenarlo en la variable 'dato'
  }
  
  digitalWrite(MAX6675_CS, HIGH); // Deshabilitar la lectura de datos
  
  // Comprobar si hay un error de conexión
  if (bitRead(dato, 2)) {
    Serial.println("Error: Termopar desconectado");
    return NAN; // Devolver un valor no numérico (NaN)
  }
  
  // Descartar los bits irrelevantes (los bits 0 y 1)
  dato >>= 3;
  
  // Convertir los datos a temperatura (cada cuenta representa 0.25 grados Celsius)
  float temperatura = dato * 0.25;
  
  return temperatura;
}

```

psdt:

- El cable morado es el SO -\> 50
- El cable azul es el CS -\> 53
- El cable verde es el CLK -\>52
- El cable blanco es el Gnd
- El cable gris es el 5V

 ![WhatsApp Image 2024-05-10 at 10.03.17 PM (1)](https://europe1.discourse-cdn.com/arduino/original/4X/c/8/3/c836535a932c13b11e0668435f259b03dc156ea3.jpeg)  
 ![WhatsApp Image 2024-05-10 at 10.03.17 PM](https://europe1.discourse-cdn.com/arduino/original/4X/2/6/3/263136d947a45e195c356a9a433cac1e28bf3d12.jpeg)  
 ![WhatsApp Image 2024-05-10 at 10.03.18 PM](https://europe1.discourse-cdn.com/arduino/original/4X/c/6/a/c6acdb038d329e327f89b2e159ffbc96d3403e69.jpeg)

---

<div class="post-metadata">

**Author:** ![pert](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/pert/32/217111_2.png) [@pert](https://forum.arduino.cc/u/pert)\
**Post date:** [May 11, 2024, 10:47am UTC](https://forum.arduino.cc/t/el-modulo-max6675-me-arroja-valores-de-0-c/1258540/2 "2024-05-11T10:47:46Z")

</div>

He trasladado su tema de una categoría de idioma inglés del foro a la categoría **International \> Español** @brandon_unalm.

En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí [la guía " **How to get the best out of this forum**"](https://forum.arduino.cc/t/how-to-get-the-best-out-of-this-forum/679966).  
Este guía contiene mucha información útil. Por favor leer.

De antemano, muchas gracias por cooperar.

---

<div class="post-metadata">

**Author:** ![mancera1979](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mancera1979/32/732001_2.png) [@mancera1979](https://forum.arduino.cc/u/mancera1979)\
**Post date:** [May 11, 2024, 1:27pm UTC](https://forum.arduino.cc/t/el-modulo-max6675-me-arroja-valores-de-0-c/1258540/3 "2024-05-11T13:27:33Z")

</div>

Seguro que el blanco es GND?

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/f/c/3/fc3f15b9e32bc9122a18f1ecde8290adb0eea004.jpeg)

---

<div class="post-metadata">

**Author:** ![MaximoEsfuerzo](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maximoesfuerzo/32/923798_2.png) [@MaximoEsfuerzo](https://forum.arduino.cc/u/MaximoEsfuerzo)\
**Post date:** [May 11, 2024, 2:48pm UTC](https://forum.arduino.cc/t/el-modulo-max6675-me-arroja-valores-de-0-c/1258540/4 "2024-05-11T14:48:35Z")

</div>

> [@brandon\_unalm](#):
>
> - El cable blanco es el Gnd
> - El cable gris es el 5V

Para mí, están invertidos GND y Vcc pero a lo mejor la foto engaña y lo que parece gris es blanco y lo que parece blanco es gris... 😉

De todos modos, al margen del error de tipeo, según se ve en las fotos estaría bien conectado.

Agrego:

Creo que planteaste mal la secuencia de lectura porque según la hoja de datos del MAX6675  
"_Read the 16 output bits on the falling edge of the clock._"  
O sea, "_Lea los 16 bits de salida en el flanco descendente del reloj._"  
Y los estarías leyendo en los flancos ascendentes.

Prueba así

```arduino
  for (int i = 15; i >= 0; i--) {
    digitalWrite(MAX6675_SCK, LOW); // Iniciar la conversión
    delayMicroseconds(1);
    bitWrite(dato, i, digitalRead(MAX6675_SO)); // Leer el bit y almacenarlo en la variable 'dato'
    digitalWrite(MAX6675_SCK, HIGH); // Hacer un pulso de reloj
    delayMicroseconds(1);
  }

```

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [November 7, 2024, 2:48pm UTC](https://forum.arduino.cc/t/el-modulo-max6675-me-arroja-valores-de-0-c/1258540/5 "2024-11-07T14:48:47Z")

</div>

Closed on November 7, 2024, 2:48pm UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
