评论
不幸的是,我不够聪明,无法弄清楚如何修复它。虽然问题仍然存在,但我的打印机设置无法正常工作。 |
请参阅问题#168。只要您的选择是唯一的并且其他三行在使用前已初始化,它就应该可以工作。我发现我需要更改 temperature.cpp 中的初始化,tp_init() #ifdef HEATER_0_USES_MAX6675
#ifndef SDSUPPORT
SET_OUTPUT(MAX_SCK_PIN);
WRITE(MAX_SCK_PIN,0);
SET_OUTPUT(MAX_MOSI_PIN);
WRITE(MAX_MOSI_PIN,1);
SET_INPUT(MAX_MISO_PIN);
WRITE(MAX_MISO_PIN,1);
#endif
SET_OUTPUT(MAX6675_SS);
WRITE(MAX6675_SS,1);
#endif
|
我检查过芯片选择是否正确初始化。 |
我可以确认,问题仍然存在!我试图将 pins.h 中的热电偶引脚重新映射(启用 SDSUPPORT 时): #ifndef SDSUPPORT
// these pins are defined in the SD library if building with SD support
#define MAX_SCK_PIN 52
#define MAX_MISO_PIN 50
#define MAX_MOSI_PIN 51
#define MAX6675_SS 53
#else
// REMAP THE PINS
#define MAX_SCK_PIN 63
#define MAX_MISO_PIN 40
#define MAX_MOSI_PIN 64
#define MAX6675_SS 59
#endif
LCD 保持空白,即使 RepRap Discount Full Graphic+SDCard 没有任何干扰。 |
您是否检查过“何时”启用引脚? 我记得有一个问题,SCK、MISO、MOSI 被代码的多个“特征” 在 2014 年 6 月 7 日星期六下午 6:22,alien2108 notifications@github.com写道:
|
是的,它实际上是 LCD 代码(我有带 SD 卡读卡器的 reprapdiscount 智能 LCD)。你能告诉我们代码的变化吗? 你在那里提到的代码(从 4 月 2 日开始)已经在我的源代码中: #ifdef HEATER_0_USES_MAX6675
#万一 我检查过并为我定义了 SDSUPPORT,因为我的 LCD 也有 SD 卡插槽。 我也想知道为什么定义了所有这些引脚: #define MAX_SCK_PIN
#define MAX_MISO_PIN
#define MAX_MOSI_PIN
#define MAX6675_SS
不使用 MAX_MOSI_PIN 或 MAX_MISO_PIN,因为我们只从 MAX 读取(使用 MAX 上的 S0 引脚)。哪一个是正确的? |
我的打印机目前坏了,接下来的几周我都忙得不可开交。 如果我没记错的话,LCD 初始化是在 SD 在 2014 年 6 月 9 日星期一上午 9:07,alien2108 notifications@github.com写道:
|
将 MAX6675 与智能控制器一起使用有什么好消息吗? |
我取得了一些成功 我做的第一件事是将这一行添加到 temperature.cpp 和 pins.h 在第 825 行的 pins.h 中,我删除了“MAX_”前缀 #ifndef SDSUPPORT
// these pins are defined in the SD library if building with SD support
#define SCK_PIN 52
#define MISO_PIN 50
#define MOSI_PIN 51
#define MAX6675_SS 66//53
#else
#define SCK_PIN 52
#define MISO_PIN 50
#define MOSI_PIN 51
#define MAX6675_SS 66//49
#endif
MAX6675_SS 引脚定义更改为数字引脚 66,用于 RAMPS 1.4 板,因为这是最接近的可用引脚,否则未使用引脚 然后在第 742 行的 temperature.cpp 中 #ifdef HEATER_0_USES_MAX6675
#ifndef SDSUPPORT
SET_OUTPUT(MAX_SCK_PIN);
WRITE(MAX_SCK_PIN,0);
SET_OUTPUT(MAX_MOSI_PIN);
WRITE(MAX_MOSI_PIN,1);
SET_INPUT(MAX_MISO_PIN);
WRITE(MAX_MISO_PIN,1);
#endif
#ifndef SDSUPPORT
SET_OUTPUT(SCK_PIN);
WRITE(SCK_PIN,0);
SET_OUTPUT(MOSI_PIN);
WRITE(MOSI_PIN,1);
SET_INPUT(MISO_PIN);
WRITE(MISO_PIN,1);
#endif
/* SET_OUTPUT(SCK_PIN);
WRITE(SCK_PIN,0);
SET_OUTPUT(MOSI_PIN);
WRITE(MOSI_PIN,1);
SET_INPUT(MISO_PIN);
WRITE(MISO_PIN,1);*/
pinMode(SS_PIN, OUTPUT);
//SET_OUTPUT(SS_PIN);
// WRITE(SS_PIN,0);
digitalWrite(SS_PIN,0);
pinMode(MAX6675_SS, OUTPUT);
digitalWrite(MAX6675_SS,1);/*
SET_OUTPUT(MAX6675_SS);
WRITE(MAX6675_SS,1);*/
#endif
简而言之,我将声明重命名为标准 SPI 命令,换句话说,删除了它的“MAX_”部分 我使用了 如果有人可以验证此更改并/或对其进行改进,那就太好了。 下一个小警告是显示器读取温度不均匀,这是由于一些电容(我用手指测试温度是否变化),我也不确定读取 SD 卡的代码是否需要切换 MAX6675在与 SD 卡通话之前先关闭。 |
-temperature.h中的HEAT_INTERVAL需要重命名为MAX6675_HEAT_INTERVAL |
对于一个聪明的编码员来说,如果还没有完成,这应该是一个简单的修复方法 |
MAX6675 与 RepRap Discount Full Graphic+SDCard 冲突
RAMPS V1-4
Marlin V1.0
Repository 显示最近没有更新 MAX6675 或 Full Graphic 显示器。
显示屏打开,但完全空白
http://www.reprapdiscount.com/home/34-full-graphic-smart-lcd-controller.html#
在没有 LCD 显示器的情况下使用时,MAX6675 不会发生冲突,附带 SDCard
全图形显示器在将 Temp_0 设置为 -2 以外的任何其他值时工作,MAX6675
MAX6675 根本没有温度读数
MAX6675 在引脚 49 上使用 CS
在引脚 53 上使用全图形显示 CS
禁用 SDSupport 并禁用显示并将 MAX6675 的 CS 更改为引脚 53(还将电线从引脚 49 移至引脚 53),给出温度读数。
启用 SDSupport 和禁用显示器没有显示温度读数(引脚 53 上的 SDCard 的电线和 CS,引脚 49 上的 MAX6675),也没有显示(因为我禁用了它)
启用显示和 SDSupport(引脚 53 上的 CS 和电线,MAX6675在引脚 49 上)没有显示或温度读数。
也将 CS 换成了 Display 和 SD,以及 MAX6675 CS 并进行了相同的测试,但仍然不行。
在这个博客上有些提到,关于读取温度太快
http://www.brokentoaster.com/blog/?p=561