Inkubatorius, skirtas mikroorganizmų auginimui

konkursas

#1

Sveiki, padarėme inkubatorių, skirtą mikroorganizmų auginimui.
Projekto brėžiniai yra panaudoti iš BHA kurso medžiagos: http://biohackacademy.github.io/
Naudoti komponentai:
• Genuino Uno
• LCD ekranas
• Bandomoji plokštė (breadboard)
• 3 LED diodai 3W (rožinės spalvos)
• 3 mosfetai
• Potenciometras
• 4 rezistoriai (10kΩ)
• Šildanti plėvelė
• 80 mm ventiliatorius 12V , išimtas iš kompiuterio maitinimo bloko
• Aliuminio plokštelė, išimta iš kompiuterio maitinimo bloko
• Relė
• 3 mygtukai
• Laidai (“male to male”)
• Maitinimo blokas
• Temperatūros jutiklis
• Durų vyriai (2 vnt.)
• 10 trumpų varžtų su veržlėmis
• 2 magnetai
• Putplastis
• Organinis stiklas
• Fanera

Inkubatoriaus sienos:
Su lazeriu išsipjovėme visas inkubatoriaus dalis. Susukome inkubatoriaus duris ir suklijavome inkubatoriaus sienas. Į inkubatoriaus vidų įdėjome putplastį. Nudažėme inkubatorių.


Nuoroda inkubatoriaus sienų pjovimui
Incubator-Cut-Sheet

Nuoroda putplasčio pjovimui
inubatorius-putoplastas

Elektronika:
Patikrinome ar visi elektroniniai inkubatoriaus komponentai veikia. Sudėjome visą elektroniką pagal pateiktą schemą. Suprogramavome Arduino. Sudėjome inkubatorių.




Jeigu inkubatorius iš pirmo karto neveiks, neišsigąskite. Gali prireikti keleto kartų norint pasiekti norimo rezultato.

Inkubatoriaus Arduino kodas:

#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define tempWire 6
const int HeatingPad= 7, Fan=8, LedButton=9, tempUp=10, tempDown= 13, LedMosfet=A0;//analog can be used as digital pins
int ETemp =20, UpTempState = 0, lastUpTempState = 0,DownTempState = 0,lastDownTempState = 0;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
OneWire oneWire(tempWire); // communictaion with OneWire devices
DallasTemperature sensors(&oneWire); // Pass our oneWire reference to Dallas Temperature.
boolean oldLedState = LOW;
boolean newLedState = LOW;
boolean LedStatus = LOW;

void setup() {

Serial.begin(9600);
sensors.begin();//start the sensor or start up the libraly
lcd.begin(16,2);
pinMode(tempDown, INPUT);
pinMode(tempUp, INPUT);
pinMode(HeatingPad, OUTPUT);
pinMode(Fan ,OUTPUT);
pinMode(LedMosfet, OUTPUT);
pinMode(LedButton, INPUT);

}

void loop() {

// get temperature readings

lcd.setCursor(0,0);//set where to dispaly your inforamation
lcd.print(“ETemp:”);
DownTempState = digitalRead(tempDown);
UpTempState = digitalRead(tempUp);
if (UpTempState != lastUpTempState) {
if (UpTempState == HIGH) {
ETemp++;
}
delay(50);
}
lastUpTempState = UpTempState;
if (DownTempState != lastDownTempState) {
if (DownTempState == HIGH) {
ETemp–;
}
delay(50);
}
lastDownTempState = DownTempState;

lcd.print(ETemp);
lcd.print(“C”);
//////////////////////////////////////////////////////////////////////
lcd.setCursor(0,1);
lcd.print(“RTemp:”);
sensors.requestTemperatures();
lcd.print(sensors.getTempCByIndex(0));
lcd.print(“C”);
///////////////////////////////////////////////////
if(ETemp>sensors.getTempCByIndex(0)){
digitalWrite(HeatingPad, HIGH);
}
else{
digitalWrite(HeatingPad, LOW);
}
//////////////////////////////////////////////////
if(ETemp<sensors.getTempCByIndex(0) && ETemp>25){
digitalWrite(Fan, HIGH);
}
else{
digitalWrite(Fan, LOW);
}
////////////////////////////////////////////////////
newLedState = digitalRead(LedButton);
if(newLedState !=oldLedState){
if(newLedState == HIGH){
if(LedStatus == LOW){
digitalWrite(LedMosfet, HIGH);
LedStatus = HIGH;
}
else{
digitalWrite(LedMosfet, LOW);
LedStatus= LOW;
}
}
oldLedState = newLedState;

}

}


Konkursas #2019 - Mokyklos Maker Faire