先容
在开始之前,让我们看看设计将包含哪些部分。我们须要一个加热器来加热铁尖。此外,还有一个热电偶和一个MAX6675 IC,用于丈量温度。由于全体数字部分的事情电压为5V,而主输入电压为12至24V,因此我们须要降压转换器将电压降至5V。我们还须要一个OLED屏幕来显示温度和2个按钮进行掌握。电源由PCB底部的大MOSFET掌握。
第1部分 - 读取温度

在我们构建全体PCB之前,让我们看看如何丈量实际温度。为此,我们须要一个热电偶,MAX6675 IC和Arduino。按照下图建立连接。小心热电偶的极性。
现在,打开下一个示例代码并确保安装了MAX6675库。复制下面的代码并编译。如果没有缺点,请利用上面的事理图将代码上传到Arduino,然后打开串行监视器将速率设置为9600。每半秒你将得到摄氏度和华氏度输出的实际温度值。加热热电偶进行测试。在这个例子中热电偶必须是k型 。
#include \"大众max6675.h\"大众//INCLUDE THE LIBRARYint thermoDO = 9;int thermoCS = 8;int thermoCLK = 13;MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO); void setup() { Serial.begin(9600); Serial.println(\"大众MAX6675 test\公众); // wait for MAX chip to stabilize delay(500);}void loop() { // basic readout test, just print the current temp Serial.print(\"大众C = \公众); Serial.println(thermocouple.readCelsius()); Serial.print(\"大众F = \公众); Serial.println(thermocouple.readFahrenheit()); delay(1000);}
第2部分 - 概要
我们知道了如何读取实际温度,我们也知道烙铁须要的部件。通过所有组件,不才面制作了事理图。我们可以看到ATMega328p-AU微掌握器连接到其他组件。我们将MAX6675读热电偶通过SPI通信连接到微掌握器。其余,主输入插头带有反向二极管,MOSFET用于掌握加热器的电源,按钮带有下拉电阻,有些引脚用于UART端口和OLED显示器i2c通信。末了,有4个引脚用于加热器输出和热电偶输入。
绘制完事理图后,创建尺寸为100毫米×17毫米的电路板布局。pcb采取双层板。芯片位于顶层,MOSFET位于底层。在右侧,可以看到来自降压转换器的24V输入和5V输出。
第3部 - 焊接PCB
首先,焊接ATMega芯片的最小系统。下面有事理图。这是该芯片的配置以便事情。它须要一个5V电源,16MHz的晶体和两个精确的22pF电容和一个连接到复位引脚的10K上拉电阻。
现在,我将这些元件焊接在PCB上。芯片,晶体,两个22pF电容和10k上拉电阻,然后将FTDI模块(如下图所示)连接到PCB上的UART端口。通过这4个元件,可以检讨芯片是否正常事情。
将FTDI连接到PC并上传任何串行通信代码进行测试。例如,一个带有Serial.println(“HI”)的代码; 。打开串行监视器并测试它是否有效。
其余 - 烧录勾引程序
这部分是为了防止你的芯片没有勾引加载程序。建议你买一个带bootloader的芯片,如果没有,用热风枪从Arduino NANO拆焊芯片,这样你就可以确保它能正常事情。其余,Arduino NANO与芯片本身价格相同。
要烧录bootloader,请在目标板和Arduino NANO之间通过SPI连接。
现在打开Arduino IDE并将Arduino NANO连接到PC。转到FILE→EXAMPLES→ARDUINO ISP并打开该示例并将其上传到Arduino NANO板。现在,转到TOOLS→PROGRAMMER并将编程器类型变动为Arduino as ISP。末了,转到TOOLS→BURN BOOTLOADER,LED将开始快速闪烁。末了变动编程器类型并连接FTDI模块上传测试代码。
第4部 - 终极PCB
现在,焊接除降压转换器之外的所有部件。焊接完所有部件,OLED屏幕,MOSFET,MAX6675 IC,所有电阻器和电容器以及输入插头。
现在,取出降压转换器并向其供应12V至24V电压并旋转电位器,直到输出端达到5或5.1V旁边。现在,将胶粘在电位器上,这样就可以确保它不会移动导致烧毁我们的微掌握器和全体电路板。
现在可以将降压转换器焊接到电路板上,下一步是将加热器和热电偶焊接到H和T引脚。为此,必须要知道热电偶的正负引脚。
第5部 - 连接加热器和热电偶
打开商用烙铁,它有5根电线,2根接加热器,2根接热电偶,1根接地。加热器没有极性。但热电偶有极性,以是必须找出极性。将线焊接到热电偶上并将它们连接到k型温度计。如果读数正常,那么现在的极性即为精确极性。
现在,将加热器和热电偶焊接到PCB上。加热器标有H +和H-,热电偶标有PCB上的T-和T +。不要担心加热器的极性,但要把稳热电偶。
第5部 - 代码
将FTDI模块连接到UART端口并上传下一个代码。确保已经安装了MAX6675和OLEd库。代码很大略。代码的想法是这样的。从就寝模式开始,按下任何按钮,退出就寝模式,然后创建一个PID代码。在另一个循环中,利用SPI通信读取温度,打算偏差并终极得到PID值。接下来,将PWM旗子暗记写入连接在引脚D3上的MOSFET。
//Start PID code unsigned long currentMillis = millis(); if( (currentMillis - previousMillis >= Delay) && (!sleepmode && !temp_change)){ previousMillis += Delay; if(!sleepmode) { temperature_read = (ktc.readCelsius()); error = set_value - temperature_read + 3; error_percent = (error/set_value)100.0; P_pid = kp error; I_pid = I_pid + (ki error); D_pid = kd((error - previous_error)/(Delay/1000)); //The delay is 1000 defined at the begginning PID_value = P_pid + I_pid + D_pid; if(PID_value > 255) {PID_value = 255;} if(PID_value < 1) {PID_value = 1;} //Write PWM signal to MOSFET on D3 analogWrite(mosfet,PID_value);
第6部 - 成品
上传,测试它是否正常事情。将12至24V连接至DC插头。它将从开机logo开始,然后处于就寝模式。按任意按钮并改变温度。可以达到480度。加装低廉甜头的外壳就OK了。