Arduino Uno R3 Akvaryum Ph + Derece
-
Merhaba, akvaryum kullanmak için arduino unp r3 ile ph ve derece ölçer bir sistem yapmak istiyorum, elimde olan malzemelerin resimlerini ekledim, nette kod aradım ama hepsi bir arada bulamadım veya çalışmadı acemilik işte, olurda yardım etmek isteyen olursa teşekkürlerimi sunarım..
-
3. Resimdeki kartın pH prob kısmı var demi ? Birde O Kart sinyalleri Dijital olarak mı veriyor Analog mu ?
-
risk53 bunu yazdı
3. Resimdeki kartın pH prob kısmı var demi ? Birde O Kart sinyalleri Dijital olarak mı veriyor Analog mu ?
hocam resimden cok anlaşılmiyor ama coaxial kablo girisi gibi görüyorum. dijital bir data taşımak için kullanılır normalde. sadece soketi tırnaklı cikmasin diyede kullanılmış olabilir gerci.
edit: resmi tekrar inceliyince, orta da ki chip sadece data encoding için olmayacağından, analog bir datayı dijitale ceviriyordur. sensor analog diye düsünüyorum
rakkoc tarafından 10/Ara/20 17:26 tarihinde düzenlenmiştir -
Evet ph prob var,
sırası ile bağlantı T1 - 2V5 - PO - GND - GND - VCC
bulduğum ve denediğim link
http://digitrode.ru/computing-devices/mcu_cpu/2696-ph-metr-na-osnove-arduino-svoimi-rukami.html
tekuna tarafından 10/Ara/20 19:12 tarihinde düzenlenmiştir -
Biraz Karışık bir işlem ama bildiğim kadar anlatayım.
Öncelikle O kart üzerindeki Po pH analog sinyal çıkışı diğer + ve - bağlarsın kullandığın arduino kart hakkında bilgim yok o katın analog girişi varsa oraya Po pinini bağla.
Ph Kalibrasyon sıvılarına ihtiyacın olacak 4.01-7.01-10.01 bunları temin etmen gerekir.
Bunları temin ettikten sonra
void setup() { Serial.begin(115200); } void loop() { float PH = analogRead(A0); Serial.print("PH:"); Serial.println(PH); delay(1000); }
-Üstteki kodları yaz arduino'ya gönder seri ekranı aç.
-Excel ile alttaki gibi bir tablo oluştur kalibrasyon sıvılarına karşılık gelen değerleri yaz Excelde Ekle/Grafiklerden dağılım grafiği ekle grafiğin Üzerindeki 3 Nokta üzerine sağ tıkla Eğilim Çizgisi Ekle de ve Eğilim Çizgisini biçimlendir kısmının en altında Grafik Üzerinde denklermi görüntüle kısmını işaretle Oluşturduğun grafiğin üzerinde bir denklem gözükecek tablo alttaki gibiyse bu şekilde y = -0,03x + 25 ( Bunu bulmanın daha kolay yolu olabilir ben lise terkim okumuş arkadaşlar yardımcı olabilir)
DEĞER PH 700 4 600 7 500 10 Sonra Üstteki arduino kodundaki float PH = analogRead(A0); kısmını float PH = analogRead(A0)*-0.03 + 25; olarak değiştir. Muhtemelen doğru değerleri alacaksın. Sıcaklık sensörü içinde aynı şeyi değişik sıcaklıkları referans alarak ayarlayabilirsin. Ekrana yazma kısmını da Webde kolaylıkla bulabilirsin.
-
Lise terksin ama Maşallah.. Teşekkürler..
-
Ph neden
Discus mu besliyorsun
-
Discus daha önce besledim, tam olarak ortamı sağlayacam dersen zor bir balık çeşidi ve çok zaman gerekli, normal balıklarım var (vatoz-lepistes-tetra veasire) bu ph-derece işini nette gördüm hoşuma gitti, yaparmıyım dedim malzemeleri topladım ama yemedi her bir sistem farklı demekki, kod bulunmuyor herhalde yeniden yazılması lazım.. ama en sonunda ekranda hello world yazısını almayı başardım, azimle işeyen taşı delermiş hesabı çalışmaya devam.. varsa bildiğiniz kod filan paylaşırsanız memnun olurum.. (sadece ben değil akvaryumcu arkadaşlara örnek olsun..)
-
-
Kod bulamadım, bulsam kalibre işine sonra girecem, şöyle bir video buldum ama kod yok, tam istediğim bu ph ve derece..
< ="//www.youtube.com//k8yFGj5qQNk" width="560" height="314" allowfullscreen="allowfullscreen">
tekuna tarafından 11/Ara/20 17:53 tarihinde düzenlenmiştir -
Merhaba Arkadaşlar şöyle bir kod buldum ve birinci satırda pH olayını hallettim kalibre de ettim, şimdi mesele araya dereceyi nasıl yazabilirim?..
derece pH sensörüne bağlı DS18B20 nette bulduğum bir resim ile arduino anakart üzerinde 2 ye bağladım!?
#include
#include
LiquidCrystal_I2C lcd(0x27, 16, 2);
float calibration_value = 21.34;
int phval = 0;
unsigned long int avgval;
int buffer_arr[10],temp;
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.begin(16, 2);
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Akvaryum");
lcd.setCursor(0, 1);
lcd.print("");
delay(2000);
lcd.clear();
}
void loop() {
for(int i=0;i<10;i++)
{
buffer_arr[i]=analogRead(A0);
delay(30);
}
for(int i=0;i<9;i++)
{
for(int j=i+1;j<10;j++)
{
if(buffer_arr[i]>buffer_arr[j])
{
temp=buffer_arr[i];
buffer_arr[i]=buffer_arr[j];
buffer_arr[j]=temp;
}
}
}
avgval=0;
for(int i=2;i<8;i++)
avgval+=buffer_arr[i];
float volt=(float)avgval*5.0/1024/6;
float ph_act = -5.70 * volt + calibration_value;
lcd.setCursor(0, 0);
lcd.print("pH Val:");
lcd.setCursor(8, 0);
lcd.print(ph_act);
delay(1000);
}