agaclar.net

Geri Dön   agaclar.net > Üretim, Bakım, Düzenleme, Temel Malzemeler > Topraksız Tarım
(https)




Beğeni Düzeni12Beğeniler
  • 7 Gönderen kahvelekesi
  • 1 Gönderen kahvelekesi
  • 2 Gönderen kahvelekesi
  • 1 Gönderen kahvelekesi
  • 1 Gönderen megbilgi

 
 
Bookmark and Share Dış Bağlantılar Konu Araçları Mod Seç
Prev Önceki mesaj   Sonraki mesaj Next
Eski 26-04-2017, 19:57   #12
Yeni Üye
 
Giriş Tarihi: 06-03-2017
Şehir: KOCAELİ
Mesajlar: 19

KOD
Alıntı:


#include <OneWire.h>
#include <DallasTemperature.h>

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
//#include <LCD5110_Basic.h>
//LCD5110 myGLCD(7,6,5,3,4);
//extern uint8_t SmallFont[];
//extern uint8_t MediumNumbers[];
//extern uint8_t BigNumbers[];

int role=11;
int R1= 1000;
int Ra=25; //Resistance of powering Pins
int ECPin= A0;
int ECGround=A1;
int ECPower =A4;

float PPMconversion=0.5;
float TemperatureCoef = 0.019;
float K=2.40 ;

#define ONE_WIRE_BUS 10 // Data wire For Temp Probe is plugged into pin 10 on the Arduino
const int TempProbePossitive =8; //Temp Probe power connected to pin 9
const int TempProbeNegative=9; //Temp Probe Negative connected to pin 8

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);// Pass our oneWire reference to Dallas Temperature.


float Temperature=10;
float EC=0;
float EC25 =0;
int ppm =0;


float raw= 0;
float Vin= 5;
float Vdrop= 0;
float Rc= 0;
float buffer=0;

void setup()
{

//myGLCD.InitLCD();
//myGLCD.setContrast(60);


pinMode(role, OUTPUT);
pinMode(TempProbeNegative , OUTPUT ); //seting ground pin as output for tmp probe
digitalWrite(TempProbeNegative , LOW );//Seting it to ground so it can sink current
pinMode(TempProbePossitive , OUTPUT );//ditto but for positive
digitalWrite(TempProbePossitive , HIGH );
pinMode(ECPin,INPUT);
pinMode(ECPower,OUTPUT);//Setting pin for sourcing current
pinMode(ECGround,OUTPUT);//setting pin for sinking current
digitalWrite(ECGround,LOW);//We can leave the ground connected permanantly

delay(100);// gives sensor time to settle
sensors.begin();
delay(100);
R1=(R1+Ra);// Taking into acount Powering Pin Resitance

};

void loop()
{
GetEC();
GetRole();
PrintReadings(); // Cals Print routine [below main loop]
delay(60000);

}

void GetEC(){
sensors.requestTemperatures();// Send the command to get temperatures
Temperature=sensors.getTempCByIndex(0); //Stores Value in Variable
digitalWrite(ECPower,HIGH);
raw= analogRead(ECPin);
raw= analogRead(ECPin);// This is not a mistake, First reading will be low beause if charged a capacitor
digitalWrite(ECPower,LOW);

Vdrop= (Vin*raw)/1024.0;
Rc=(Vdrop*R1)/(Vin-Vdrop);
Rc=Rc-Ra; //acounting for Digital Pin Resitance
EC = 1000/(Rc*K);

EC25 = EC/ (1+ TemperatureCoef*(Temperature-25.0));
ppm=(EC25)*(PPMconversion*1000);


}

void GetRole(){
if( EC25 < 0.20 )
{

digitalWrite(role, HIGH);
delay(3000);
digitalWrite(role, LOW);


}
}

void PrintReadings(){
Serial.begin(9600);
display.begin();
display.setContrast(60);
display.clearDisplay(); // clears the screen and buffer
display.setTextSize(2);
display.setTextColor(BLACK);
display.setCursor(0,0);
display.println(EC25);
display.setCursor(55,0);
display.print("EC");
display.setCursor(0,15);
display.println(ppm);
display.setCursor(45,15);
display.print("PPM");
display.setCursor(0,30);
display.println(Temperature);
display.setCursor(65,30);
display.print("C");
display.display();
//myGLCD.clrScr();
// myGLCD.setFont(MediumNumbers);
// myGLCD.printNumI(EC25,0,0);
//myGLCD.setFont(SmallFont);
//myGLCD.print("Simens",45,10);

// myGLCD.setFont(MediumNumbers);
//myGLCD.printNumI(ppm,0,20);
// myGLCD.setFont(SmallFont);
//myGLCD.print("Ppm",45,25);


//myGLCD.setFont(MediumNumbers);
// myGLCD.printNumI(Temperature,0,35);
// myGLCD.setFont(SmallFont);
//myGLCD.print("C",45,40);


//Serial.print(Rc);
//Serial.print(" EC: ");
Serial.print(EC25);
//Serial.print(" Simens ");
Serial.print(ppm);
//Serial.print(" ppm ");
Serial.print(Temperature);
// Serial.println(" *C ");
//Serial.print("Vdrop: ");
//Serial.println(Vdrop);
//Serial.print("Rc: ");
//Serial.println(Rc);
//Serial.print(EC);
//Serial.println("Siemens");
}

;
Bu şekilde yapabilirim

saleri ve Proje40 beğendi.
kahvelekesi Çevrimdışı   Alıntı Yaparak Cevapla Başa Dön
 

Etiketler
ec metre, ec ölçer


Gönderme Kuralları
Yeni konu gönderemezsiniz
Konulara yanıt veremezsiniz
Ek dosya yükleyemezsiniz
Kendi gönderilerinizi düzenleyemezsiniz

BB code Açık
Smilies Açık
[IMG] Kodu Açık
HTML Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Forum saati Türkiye saatine göredir. GMT +2. Şu an saat: 11:04.
(Türkiye için GMT +2 seçilmelidir.)


Forum vBulletin Version 3.8.5 Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
agaclar.net © 2004 - 2025