【智慧烘焙】滾筒烘豆機

Description

Description
作者:暨大電機 郭耀文

創作動機

最近隔壁的老師開始烘咖啡豆,嘗試不同的方法,某天,他拿了網路文章說有人用滾筒式烤箱來烘,但是整個燒起來,後來有人加了溫度感測器,溫度到會停止加熱,問我說改這個會不會很難,我說小事一件,過年後我們倆就動手處理一下。對有經驗的Maker來說,這應該是幼稚園等級,對於初學者來說,也是一個不錯的練習,所以就分享給大家。

一、改裝主角

使用的主角是TSK-K1092遠紅外線烘烤爐,剛好看到福利品特價,不買來玩說不過去。

二、使用控制板與模組

1.Arduino UNO: 這應該不用介紹吧。

2.I2C LCD:  簡介如下硬體: 4pin, GND, VCC, SDA, SCL,連接的方式很簡單,VCC 接到 5V,GND 接到 GND,SDA 接到 SDA,SCL 接到 SCL。
軟體: 使用LiquidCrystal 函式庫
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/

(1)程式加入
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 設定 LCD I2C 位址
(2) setup()中加入:
lcd.begin(16, 2);
(3) 主要指令
lcd.setCursor(0, 0); 移動游標
lcd.print(value); 於游標處印出字串value

3.MAX6675 :  簡介如下硬體: 5pin VCC, SO, CS, SCK, GND,我使用Vcc接pin 13, SO接pin 10, CS接pin 11, SCK接 pin 12

軟體:
https://github.com/adafruit/MAX6675-library

(1)程式加入
#include <max6675.h>
int thermo_vcc_pin = 13;
int thermo_so_pin = 10;
int thermo_cs_pin = 11;
int thermo_sck_pin = 12;
MAX6675 thermocouple(thermo_sck_pin, thermo_cs_pin, thermo_so_pin);
(2) setup()中加入:
pinMode(thermo_vcc_pin, OUTPUT);
digitalWrite(thermo_vcc_pin, HIGH);
(3) 必須注意需要等一段時間才可以讀溫度,250ms就可以了,讀取溫度的指示是
temp=thermocouple.readCelsius();

4.SSR: 我買的是這一顆,可以看到只要3V DC以上就可以控制了,使用上非常簡單,’ – ‘ 接到Arduion的GND,’+’接到沒用到的pin,我是用pin 8

 

三、程式說明

把上面四種東西加上去就差不多了,經過我測試6675用250ms去讀一次是OK的,所以loop中基本上就是以250ms去讀取一次,每讀取四次就是一秒鐘,再開始處理,狀態列印在LCD上,把溫度除以4取平均,在由溫度與target數值來決定SSR的開關。溫度分三段,0~480秒從室溫升到150度,後來的360秒由150升到220度,最後控制溫度在210~210度。不過程式貼來這裡縮排都不見了,大家將就看一下吧。

#include <max6675.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 設定 LCD I2C 位址
int count=0,sec=0;
float ini_temp,temp=0,scale=0,target;
char st[20];

// ThermoCouple
int thermo_vcc_pin = 13;
int thermo_so_pin = 10;
int thermo_cs_pin = 11;
int thermo_sck_pin = 12;

MAX6675 thermocouple(thermo_sck_pin, thermo_cs_pin, thermo_so_pin);

String value;
void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0, 0); // 設定游標位置在第一行行首
// Debug console
Serial.begin(9600);
Serial.println(“start”);

//ThermoCouple
pinMode(thermo_vcc_pin, OUTPUT);
digitalWrite(thermo_vcc_pin, HIGH);
pinMode(8, OUTPUT);
digitalWrite(8,LOW);
delay(1000);

ini_temp=thermocouple.readCelsius();
lcd.setCursor(0, 1); // 設定游標位置在第一行行首
value= String(“”)+”initial=”+ini_temp;
lcd.print(value);
scale=(150-ini_temp)/480;
target=ini_temp;
Serial.println(value);
Serial.println(scale);
Serial.println(target);
delay(1000);
digitalWrite(8,HIGH);
}

void loop()
{
delay(250);
temp=temp+thermocouple.readCelsius();

count++;
if (count==4)
{
sec++;
// temp=thermocouple.readCelsius();
target=target+scale;
value= String(“”)+”time=”+sec+” “+(int)target;
lcd.clear();
lcd.setCursor(0, 0); // 設定游標位置在第一行行首
lcd.print(value);
Serial.println(value);

temp=temp/4;
value= String(“”)+”temp=”+temp;
Serial.println(value);
lcd.setCursor(0, 1); // 設定游標位置在第一行行首
lcd.print(value);
count=0;
if (sec<840)
{
if (temp>target)
digitalWrite(8,LOW);
else
digitalWrite(8,HIGH);
}
if (sec==480)
scale=(220.0-150.0)/360;
if (sec>840)
{

if (temp>220)

digitalWrite(8,LOW);

if (temp<210)

digitalWrite(8,HIGH);

}
temp=0;
}

}

四、改裝說明

花最多時間是在拆烤箱,後來搞清楚才發現有卡榫,只要把左右的塑膠板拆下即可。

1.我把風扇拆下,改裝到左邊。溫度sensor就找空隙放進去。


2.SSR就串在燈管的電源上,鎖在塑膠板上。實際控制板的接線。


3.原來的滾筒效果不佳,後來加上一些鐵片就好多了。

4.完成

五、成果影片

 

六、改良及後記

  1. 1.後來有改成四段的溫升,實際的溫度有時會比target高一些,本來想改成類似PWM輸出,不過我的客戶已經很滿意,我就懶得再改了。
  2. 2.排煙的效果不理想,需要多在金屬殼上多鑽一些洞。
  3. 3.最後冷卻只是拿個風扇,也可以改進。

Latest posts by Yaw-Wen Kuo (see all)

    Contact

    Contact

    Project簡述

    Project簡述
    • 簡述
      最近隔壁的老師開始烘咖啡豆,嘗試不同的方法,某天,他拿了網路文章說有人用滾筒式烤箱來烘,但是整個燒起來。問我能不能加裝溫度感測器,讓溫度到會停止加熱,於是我們倆就開始動手製作這台溫控型滾筒烘豆機。
    • 作者
      暨大電機郭耀文

    您的姓名 〈需填寫〉

    您的電子郵件信箱 〈需填寫〉

    主旨

    您的信件內容