Sensore di temperatura max6675 termocoppia k con stm32f103c8t6 fino a 600 gradi

  • Postato 25 agosto 2024
  • Elettronica
  • By Daniele Baglivo
  • 520 Views

Adattiamo il sensore di temperatura max6675 termocoppia k per farlo funzionare con stm32f103c8t6

max6675-5oHn9qIPvq.jpg

In questa semplice guida vi faro` vedere come utilizzare una termocoppia k max6675 + stm32 con temperatura fino a 600 gradi, il sensore utilizzato e` questo Link

Includendo la libreria come si farebbe normalmente con arduino (#include "max6675.h") ho riscontrato problemi di compatibilita`, quindi ho deciso di riportare quest`ultima direttamente nello sketch, estraendo la parte utile al funzionamento del sensore...

Di seguito i cablaggi da effettuare:

Stm32f103c8t6 Max6675
PA5 SCK
PA6 SO
PA4 CS
+3.3V VCC
GND GND

 

Ecco a voi un esempio di codice base che stampa sulla seriale la temperatura rilevata:

#include SPI.h
int SO = PA6;
int CS = PA4;
int SLK = PA5;
float tempCelsius;
float tempFahrenheit;

void setup() {
  Serial.begin(9600);
  delay(500);
}

void loop() {
   tempCelsius = readCelsius();
   tempFahrenheit = readFahrenheit();
   Serial.print(tempCelsius);
   Serial.println(" C");
   Serial.print(tempFahrenheit);
   Serial.println(" F");
   delay(1000);
}

double readCelsius(void) {
  uint16_t v;
  pinMode(CS, OUTPUT);
  pinMode(SO, INPUT);
  pinMode(SLK, OUTPUT);
 
  digitalWrite(CS, LOW);
  delay(1);
  v = spiread();
  v <<= 8;
  v |= spiread();
  digitalWrite(CS, HIGH);
  if (v & 0x4)
  {    
  return NAN; //SENSORE MAX6675 SCOLLEGATO   
  }
  v >>= 3;
  return v*0.25;
}

double readFahrenheit(void) {
  return readCelsius() * 9.0/5.0 + 32;
}

byte spiread(void) {
  int i;
  byte d = 0;

  for (i=7; i>=0; i--)
  {
    digitalWrite(SLK, LOW);
    delay(1);
    if (digitalRead(SO)) {
      d |= (1 << i);
    }
    digitalWrite(SLK, HIGH);
    delay(1);
  }

  return d;
}

 

Spero che la guida sia stata di vostro interesse!

Come sempre vi sarei molto grato se mettete un bel like e vi inscrivete al nostro canale youtube, dove ci impegneremo a renderlo sempre piu interessante con nuovi contenuti😜

  Gruppo Facebook

  Canale YouTube

0
Autori
Daniele Baglivo
Daniele Baglivo