Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
ARDUİNO İLE OTOMATİK YOĞURT ÜRETME MAKİNASI YAPIMI
#1
ARDUİNO İLE OTOMATİK YOĞURT ÜRETME MAKİNASI YAPIMI

GİRİŞ ve AMAÇ
Günümüzün en büyük sorunlarının başında, insanların doğal beslenememesi gelmektedir. Marketlerdeki yiyeceklerin(fabrikasyon olan) tamamında katkı maddeleri mevcuttur. Bu katkı maddeleri besinlere doğasının dışında farklı özellikler kazandırmanın yanında insanlara birçok zararlar vermektedir. Özellikle ülkemizin geleceği çocuklarımıza…
Bilindiği gibi insanın yapı taşı proteinlerdir ve en önemli protein kaynağı ise süt ve süt ürünleridir. Süt ürünleri içerisinde ise önemli bir yere sahip ve ülkemiz insanı tarafından bolca tüketilen yoğurt gelmektedir. İnsanlarımız yoğurt ihtiyacını mecburen marketlerden karşılamak zorundadır. Piyasadaki yoğurtların hemen hemen hepsi fabrikasyon ve doğal olmayan yöntemlerle üretilmektedir.
Biz bu çalışmamızda sütün mayalanma aşamalarını kullanıcının tamamen kendi denetiminde olmasını ve herkesin kendi evinde doğal yoğurtlarını yapabilmelerine yardımcı olmayı amaçladık.
 
PROJEDE KULLANILAN MALZEMELER

  • Arduino UNO R3

  • Su Isıtıcısı

  • LCD EKRAN(2×16)

  • 5v, 10A RÖLE

  • MS18B20 sıcaklık Sensörü

  • Buzzer

  • Dirençler(10k,470,220,)

  • Potansiyometre

  • Transistör(2n2222A)

  • 3 Adet Buton
MS18B20 Sıcaklık Sensörü
[img=270x0]http://i0.wp.com/mekatronizm.com/wp-content/uploads/2016/04/Untitled-1-1.png?resize=270%2C215[/img]Bu sensör DS18B20 sensörünün su geçirmez sürümüdür. Dijital bir sensör olduğu için 1 metre uzunluğundaki kablosu yardımıyla derin mesafelerdeki sıcaklık rahatlıkla ölçülebilir ve data transferinde herhangi bir bozulma olmaz. Tek kablo (1-wire) arabirimi üzerinden 9 veya yapılandırılabilir 12 bitlik okuma gerçekleştirilebilir. Çeşitli bina içi, teçhizat, makine ve sıvı havuzlarının sıcaklık ölçümleri rahatlıkla yapılabilir. Ölçüm aralığı  -55 ile +125 derece aralığındadır.
 
Fritzing Devre Şeması
[img=731x0]http://i2.wp.com/mekatronizm.com/wp-content/uploads/2016/04/2-3.jpg?resize=860%2C538[/img]
PROJENİN GERÇEK GÖRÜNÜŞÜ
[img=731x0]http://i1.wp.com/mekatronizm.com/wp-content/uploads/2016/04/3-2.jpg?resize=860%2C645[/img]
Sistemin Çalışma Yapısı
Öncelikle makinamızın içerisine 1lt sütü döküyoruz. Makinamızın kablosunu prize takıyoruz ve Arduino ile devre beslemesini ise 5V, 500mA çıkışlı güç kaynağına bağlıyoruz.  Makinamıza çalıştırdığımızda kullanıcıdan start butonunu basarak başlangıç sinyalini vermemiz gerekmektedir.
Start butonunu bastıktan sonra makine hemen sütün sıcaklığını kontrol etmekte ve ekrana yazdırmaktadır. Eğer sütün sıcaklığı 40 °C den düşük ise sütü ısıtmakta, 40 °C den eğer fazla ise bu adımı atlamaktadır. Sütün sıcaklığı  40 °C ye ulaştığında ısıtıcı durdurulup,  ekrana “ mayayı koyup karıştırın” yazmaktadır. Bu adımda makine mayanın kullanıcı tarafından konulup karıştırılmasını beklenmektedir. Kullanıcı bahsedilen işlemi gerçekleştirdikten sonra ileri butonuna basması gerekmektedir. İleri butonuna basıldıktan sonra ekranda yoğurdun tutması için gerekli zaman geri sayım şeklinde ekranda gösterilir. Zaman dolduktan sonra ise bitiş müziği çalmaktadır.
Olası kazalara karşı  sistemin acil stop butonu bulunmaktadır. Stop butonuna basıldıktan sonra sistemin resetlenmesi gerekmektedir.



Kod:
#include <OneWire.h> // OneWire kütüphanesini ekliyoruz.(ds18b20 sensör için).
#include <LiquidCrystal.h> // LCD kütüphanesini ekliyoruz.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // LCD' nin bağlantı pinlerini tanımlıyoruz.
int DS18S20_Pin = 8; // Sıcaklık sensörünü bağladığımız dijital pini 8 olarak belirliyoruz.
OneWire ds(DS18S20_Pin); // Sıcaklık sensörümüz 8. pinde
const int c = 261, d = 294,e = 329,f = 349,g = 391,gS = 415,a = 440,aS = 455,gH = 784,aH = 880; // Bitiş şarkısı için nota değerleri tanımlıyoruz.
const int b = 466,cH = 523,cSH = 554,dH = 587,dSH = 622,eH = 659,fH = 698,fSH = 740,gSH = 830;
const int buzzerPin = 6; // pinleri tanımlıyoruz.
const int rolePin=7;
const int start_button=10;
const int stop_button=9;
const int ileri_button=13;
int counter = 0;
boolean start;
boolean dur=true;
boolean ileri;

void setup(void) {

pinMode(rolePin, OUTPUT); //pinleri giriş ve ya çıkış olarak tanımlıyoruz.
pinMode(buzzerPin, OUTPUT);
pinMode(stop_button,INPUT);
pinMode(start_button, INPUT);
pinMode(ileri_button, INPUT);
lcd.begin(16, 2); //LCD'nin sütun,satır sayısını belirtiyoruz.
lcd.print("baslamak icin ");
lcd.setCursor(0,1);
lcd.print("starta bas");
digitalWrite(rolePin, LOW); // güvenlik için röle pinini başlangıç tapasif hale getiriyoruz.

}
int temperature = getTemp(); // çalışma sırasında sıcaklığı ölçüyoruz.
delay(100);
if(temperature < 30 ){ // eğer sıcaklık değerimiz 30 dereceden küçük ise röleyi aktif hale getirip ısıtıcımızı çalıştırıyoruz.
digitalWrite(rolePin, HIGH);
lcd.clear(); // sıcaklık değerini eş zamanlı olarak ekrana yazdırıyoruz.
lcd.setCursor(0,1);
lcd.print("sicaklik:");
lcd.println(temperature);
delay(1000);
}

if(temperature >= 30 && ileri == false){ // sıcaklığın 30 dereceyi aşması durumunda ısıtıcımız durdurulup kullanıcadan mayayı koyması isteniyor
digitalWrite(rolePin, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("yogurtu koy ve ");
lcd.setCursor(0,1);
lcd.print("karistir ");
delay(1000);
if(digitalRead(ileri_button) == HIGH) // kullanıcının mayayı koyduktan sonra ileri butonuna basmasıp basmadığını kontrol ediyoruz.
ileri=true;
}
if(ileri==true){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("kalan mayalanma");
lcd.setCursor(0,1);
lcd.print("suresi: ");
int ck=20;
int sure = ck-(millis() / 1000); // mayalanma süresini hesaplıyıp ekrana yazdırıyoruz.
lcd.println(sure);

// mayalanma tamamlanınca uyarı olarak STARWARS müziği çalıyoruz.
firstSection();
secondSection();
//Variant 1
beep(f, 250);beep(gS, 500);beep(f, 350);beep(a, 125);beep(cH, 500);
beep(a, 375);beep(cH, 125);beep(eH, 650);
delay(500);
secondSection();
//Variant 2
beep(f, 250);beep(gS, 500);beep(f, 375);beep(cH, 125);
beep(a, 500);beep(f, 375);beep(cH, 125);beep(a, 650);
delay(650);
dur = false;
}
}
}
}
float getTemp(){ // DS18S20 sensörden gelen verileri anlayabileceğimiz sıcaklık değerine dönüştüren alt program.
//returns the temperature from one DS18S20 in DEG Celsius

byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for (int i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}
ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];
float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;
return TemperatureSum;
}
// STARWARS müziğimizin notalarının sıralanışı
void beep(int note, int duration)
{
//Play tone on buzzerPin
tone(buzzerPin, note, duration);
if(counter % 2 == 0)
delay(duration);
else
delay(duration);
noTone(buzzerPin);
delay(50);
counter++;
}
void firstSection()
beep(eH, 500);beep(eH, 500);beep(eH, 500);beep(fH, 350);
beep(cH, 150);beep(gS, 500);beep(f, 350);beep(cH, 150);
beep(a, 650);
delay(500);
}
void secondSection()
{
beep(aH, 500);beep(a, 300);beep(a, 150);beep(aH, 500);
beep(gSH, 325);beep(gH, 175);beep(fSH, 125);beep(fH, 125);
beep(fSH, 250);
delay(325);
beep(aS, 250);beep(dSH, 500);beep(dH, 325);beep(cSH, 175);
beep(cH, 125);beep(b, 125);beep(cH, 250);
delay(350);
}
Bul
Alıntı


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  ARDUİNO VE MATLAB İLE MPU6050 KULLANIMI VE YÖNTEMLER Ken 0 205 19-05-2016, Saat: 09:57
Son Mesaj: Ken
  MIT APP INVERTOR & ARDUİNO İLE LED KONTROL ETME YÖNTEMİ Ken 0 122 19-05-2016, Saat: 09:55
Son Mesaj: Ken
  MIT APP INVERTOR VE ARDUİNO İLE SERVO MOTOR KONTROL ETME YÖNTEMİ Ken 0 128 19-05-2016, Saat: 09:53
Son Mesaj: Ken
  ARDUİNO İLE NOKİA 5110(PCD8544) GRAFİK LCD KULLANIMI VE GEREKLİ YÖNTEMLER Ken 0 195 19-05-2016, Saat: 09:52
Son Mesaj: Ken
  ARDUİNO KONTROLLÜ ÇİM SULAMA SİSTEMİ PROJESİ VE YÖNTEMLER Ken 0 141 19-05-2016, Saat: 09:51
Son Mesaj: Ken

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi
loading...