I moved to Arduino IDE 2.0 and i'm getting this error
Board is ESP32
c:\Users\Utilisateur\Documents\Arduino\libraries\MAX6675_library\max6675.cpp:9:24: fatal error: util/delay.h: No such file or directory
compilation terminated.
I read that the *delay.h* was for AVR processor. How can I resolve this problem?
#include "max6675.h"
int thermoDO = 21;
int thermoCS = 19;
int thermoCLK =18;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void setup()
{
Serial.begin(115200);
Serial.println("MAX6675 test");
delay(2000);
}
void loop()
{
// basic readout test, just print the current temp
Serial.print("C = ");
Serial.print(thermocouple.readCelsius());
Serial.print(" F = ");
Serial.println(thermocouple.readFahrenheit());
delay(2000);
}
I know that the code for this thermocouple was working and running few month ago. Did not play with this sensor since then.
I installed the new IDE few weeks ago. I was able to compile other code with IDE version 2.0. I got the problem when running the exemple for the MAX6675 thermocouple exemple.
I opened the MAX6675.cpp and replaced the line. Same problem #elif defined(ESP8266)
for #elif defined(ESP32)
#elif defined(ESP8266)
> // this library is public domain. enjoy!
// www.ladyada.net/learn/sensors/thermocouple
#ifdef __AVR
#include <avr/pgmspace.h>
**#elif defined(ESP8266)**
#include <pgmspace.h>
#endif
#include <util/delay.h>
#include <stdlib.h>
#include "max6675.h"
MAX6675::MAX6675(int8_t SCLK, int8_t CS, int8_t MISO) {
sclk = SCLK;
cs = CS;
miso = MISO;
//define pin modes
pinMode(cs, OUTPUT);
pinMode(sclk, OUTPUT);
pinMode(miso, INPUT);
digitalWrite(cs, HIGH);
}
double MAX6675::readCelsius(void) {
uint16_t v;
digitalWrite(cs, LOW);
_delay_ms(1);
v = spiread();
v <<= 8;
v |= spiread();
digitalWrite(cs, HIGH);
if (v & 0x4) {
// uh oh, no thermocouple attached!
return NAN;
//return -100;
}
v >>= 3;
return v*0.25;
}
double MAX6675::readFahrenheit(void) {
return readCelsius() * 9.0/5.0 + 32;
}
byte MAX6675::spiread(void) {
int i;
byte d = 0;
for (i=7; i>=0; i--)
{
digitalWrite(sclk, LOW);
_delay_ms(1);
if (digitalRead(miso)) {
//set the bit to 0 no matter what
d |= (1 << i);
}
digitalWrite(sclk, HIGH);
_delay_ms(1);
}
return d;
}