灯泡简易PCR仪

摘要

PCR(聚合酶链式反应)是利用DNA在体外摄氏95°高温时变性会变成单链,低温(经常是60°C左右)时引物与单链按碱基互补配对的原则结合,再调温度至DNA聚合酶最适反应温度(72°C左右),DNA聚合酶沿着磷酸到五碳糖(5'-3')的方向合成互补链。基于聚合酶制造的PCR仪实际就是一个温控设备,能在变性温度,复性温度,延伸温度之间很好地进行控制。而简易灯泡PCR仪便是用灯泡来加热,用电脑的风扇来冷却,达到控制温度的目的。温度按照PCR反应要求循环30次左右,达到PCR反应要求。在家庭中,PCR试验还能测试食品安全性,监控水质

关键词:PCR 温控设备 升温 冷却

正文

引言

聚合酶链式反应是一种用于放大扩增特定的DNA片段的分子生物技术,它可看作是生物体外的特殊DNA复制,PCR的最大特点,是能将微量的DNA大幅增加。因此,无论是化石中的古生物、历史人物的残骸,还是几十年前凶杀案中凶手所遗留的毛发、皮肤或血液,只要能分离出一丁点的DNA,就能用PCR加以放大,进行比对。这也是“微量证据”的威力之所在。由1983年美国Mullis首先提出设想,1985年由其发明了聚合酶链反应,即简易DNA扩增法,意味着PCR技术的真正诞生。到如今2013年,PCR已发展到第三代技术。1973 年,台湾科学家钱嘉韵,发现了稳定的Taq DNA聚合酶,为PCR技术发展也做出了基础性贡献。

但PCR仪价格普遍较高,一般都要上万元起步,而简易灯泡PCR仪利用了普通的灯泡和多余的电脑风扇,材料简便,成本低廉。它使用Arduino软件和单片机连接来控制灯泡加热和风扇散热,可以达到控制温度的效果。

研究过程

1.用Arduino做简单温度计

D18B20温度传感器,这款传感器能够测量0-100摄氏度的温度,并以电压的数值输出。从0度开始温度每升高1度输出电压就会提高10mv,这样我们就能够使用模拟口检测传感器的电压,进过简单计算得到当前的温度数值。

程序代码:

#include

#include

// Data wire is plugged into pin 2 on the Arduino

#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices

// (not just Maxim/Dallas temperature ICs)

OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.

DallasTemperature sensors(&oneWire);

void setup(void)

{

// start serial port

Serial.begin(9600);

Serial.println("Dallas Temperature IC Control Library Demo");

// Start up the library

sensors.begin();

}

void loop(void)

{

// call sensors.requestTemperatures() to issue a global temperature

// request to all devices on the bus

Serial.print(" Requesting temperatures...");

sensors.requestTemperatures(); // Send the command to get temperatures

Serial.println("DONE");

Serial.print("Temperature is: ");

Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?

// You can have more than one IC on the same bus.

// 0 refers to the first IC on the wire

delay(1000);

}

设想利用这款温度传感器,来测量仪器内试剂温度,并通过监视器进行监视,获得实时温度大小,用以观察仪器内试剂温度。

2.继电器控制灯泡

(继电器,是一种电子控制器件,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。)

由于灯泡运行在220伏交流电,所以 Arduino需要控制一个继电器,打开和关闭灯电路。而单片机工作在5V,电灯是220V,因此需要由单片机控制一个继电器,通过控制这个继电器充当电灯的开关。

  继电器的输出回路一般有三个触点,中间的触点是动触点(公共端),其它两个触点是静触点。

输入回路不通电时,动触点(公共端)总是和一个静触点断开(称为常开),与另一个静触点闭合(称为常闭)

  为了通过灯泡的闪烁发热来达到使温度能够控制在一定范围内效果,加入以下代码。

程序代码:

int a,val; //定义变量

float temperature; //定义浮点型变量,用于存放转换后的温度

int B=3975; //热敏电阻的基础参考值B

float resistance;

void setup()

{

myservo.attach(4); //定义舵机驱动端口

}

void loop()

{

a=analogRead(0); //读取温度传感器的模拟值

resistance=(float)(1023-a)*10000/a; //计算出传感器的电阻值

temperature=1/(log(resistance/10000)/B+1/298.15)-273.15;//将电阻值转换成温度值

delay(500); //延时500毫秒

val=map(temperature,0,50,0,180); //将转换的温度值映射到舵机的角度值

}

3.风扇

加热10秒,温度升到30度,风扇吹30秒,温度降到26度,实验结果如下:

程序代码:

#include

#include

// Data wire is plugged into pin 2 on the Arduino

#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices

// (not just Maxim/Dallas temperature ICs)

OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.

DallasTemperature sensors(&oneWire);

void setup(void)

{ // start serial port

Serial.begin(9600);

Serial.println("Dallas Temperature IC Control Library Demo");

pinMode(13, OUTPUT);

pinMode(7, OUTPUT);

// Start up the library

sensors.begin();

}

void loop(void)

{

// call sensors.requestTemperatures() to issue a global temperature

// request to all devices on the bus

Serial.print(" Requesting temperatures...");

sensors.requestTemperatures(); // Send the command to get temperatures

Serial.println("DONE");

Serial.print("Temperature is: ");

Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?

// You can have more than one IC on the same bus.

// 0 refers to the first IC on the wire

delay(1000);

digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)

delay(20000); // wait for a second

digitalWrite(13, LOW); // turn the LED off by making the voltage LOW

delay(200); // wait for a second

digitalWrite(7, HIGH); // turn the LED on (HIGH is the voltage level)

delay(60000); // wait for a second

digitalWrite(7, LOW); // turn the LED off by making the voltage LOW

delay(200); // wait for a second

}

4.总体连接

经过实验,从灯泡开始加热到整体温度达到90摄氏度需要大约60秒,接通风扇开始冷却恢复至温度30摄氏度大约需要90秒。

结论

研究发现

在这一次研究中,我们使用Arduino软件与单片机连接来控制灯泡发光加热和风扇转动降温,发现传感器实际应用效果非常棒。在实验过程中,我们也发现了自己在程序编码上的一些不足,通过查找资料和请教老师,我们最终克服了这些困难,锻炼提高了自己的能力。

参考文献

[1]李钧敏, 分子生物学实验,浙江大学出版社,2010.6

[2]王立铭,上帝的手术刀-基因编辑简史,浙江人民出版社,2017.5

[3]王月姣,朱家驹 固态继电器在单片机测控系统中的应用。中南民族大学学报 2005

图1

图1

图2

图2

图3

图3

图4

图4

图5

图5

图6

图6

图7

图7

图8

图8

图9

图9

图10

图10

图11

图11