I want to download MAX6675 library.But I'm getting the following error:
In file included from Single_Temp.pde:6:
C:\Users\salim\Documents\Arduino\libraries\max6675arduinolibrary/MAX6675.h:9:22: error: WProgram.h: No such file or directory
Single_Temp.pde:21:4: error: #else without #if
Single_Temp.pde:23:4: error: #endif without #if
Single_Temp:11: error: conflicting declaration 'int SCK'
C:\Program Files\arduino-1.0.3\hardware\arduino\variants\mega/pins_arduino.h:38: error: 'SCK' has a previous declaration as 'const uint8_t SCK'
Single_Temp:19: error: 'CS0' was not declared in this scope
i fixed this problem but This time I'm getting the following error:
Single_Temp:19: error: 'MAX6675' does not name a type
Single_Temp.pde: In function 'void loop()':
Single_Temp:31: error: 'temp0' was not declared in this scope
.cpp file:
/*
MAX6675.cpp - Library for reading temperature from a MAX6675.
Created by Ryan McLaughlin <ryanjmclaughlin@gmail.com>
*/
#include <Arduino.h>
#include <MAX6675.h>
MAX6675::MAX6675(int CS_pin, int SO_pin, int SCK_pin, int units, float error)
{
pinMode(CS_pin, OUTPUT);
pinMode(SO_pin, INPUT);
pinMode(SCK_pin, OUTPUT);
digitalWrite(CS_pin, HIGH);
_CS_pin = CS_pin;
_SO_pin = SO_pin;
_SCK_pin = SCK_pin;
_units = units;
_error = error;
}
float MAX6675::read_temp(int samples)
{
int value = 0;
int error_tc = 0;
float temp = 0;
for (int i=samples; i>0; i--){
digitalWrite(_CS_pin,LOW); // Enable device
/* Cycle the clock for dummy bit 15 */
digitalWrite(_SCK_pin,HIGH);
digitalWrite(_SCK_pin,LOW);
/* Read bits 14-3 from MAX6675 for the Temp
Loop for each bit reading the value and
storing the final value in 'temp'
*/
for (int i=11; i>=0; i--){
digitalWrite(_SCK_pin,HIGH); // Set Clock to HIGH
value += digitalRead(_SO_pin) << i; // Read data and add it to our variable
digitalWrite(_SCK_pin,LOW); // Set Clock to LOW
}
/* Read the TC Input inp to check for TC Errors */
digitalWrite(_SCK_pin,HIGH); // Set Clock to HIGH
error_tc = digitalRead(_SO_pin); // Read data
digitalWrite(_SCK_pin,LOW); // Set Clock to LOW
digitalWrite(_CS_pin, HIGH); //Disable Device
}
value = value/samples; // Divide the value by the number of samples to get the average
/*
Keep in mind that the temp that was just read is on the digital scale
from 0ËšC to 1023.75ËšC at a resolution of 2^12. We now need to convert
to an actual readable temperature (this drove me nuts until I figured
this out!). Now multiply by 0.25. I tried to avoid float math but
it is tough to do a good conversion to ËšF. THe final value is converted
to an int and returned at x10 power.
*/
value = value + _error; // Insert the calibration error value
if(_units == 0) { // Request temp in ËšF
temp = ((value*0.25) * (9.0/5.0)) + 32.0; // Convert value to ËšF (ensure proper floats!)
} else if(_units == 1) { // Request temp in ËšC
temp = (value*0.25); // Multiply the value by 0.25 to get temp in ËšC
}
/* Output -1 if there is a TC error, otherwise return 'temp' */
if(error_tc != 0) {
return -1;
} else {
return temp;
}
}
thanks for your helps...
Moderator edit: [code] ... [/code] tags added. (Nick Gammon)
In MAX6675.h, I changed "WProgram.h" to "Arduino.h"
In MAX6675.cpp, I changed "WProgram.h" to "Arduino.h" (or you can delete the #include completely)
In the "read_temp" example, I changed
int SCKpin = 13; // SCK pin of MAX6675
int units = 2; // Units to readout temp (0 = raw, 1 = ?C, 2 = ?F)
float temperature = 0.0; // Temperature output variable
// Initialize the MAX6675 Library for our chip
MAX6675 temp(CS,SO,SCKpin,units);
and I got the error message
Binary sketch size: 5264 bytes (of a 14336 byte maximum)
Yes, I just told you in the PM, we can solve this problem.
But only when you post your sketch in code tags on the forum, plus the exact error message you're getting.
I don't do PM help-desk.
I want to use max6675 library but ? have compile error.
this error:
In file included from Single_Temp.ino:6:
C:\Users\f\Documents\Arduino\libraries\max66library/MAX6675.h:9:22: error: WProgram.h: No such file or directory