Arduiona Seri port ekran sorunu

mrtfb123

Üye
Katılım
24 Kas 2017
Mesajlar
40
Puanları
1
Yaş
31
merhaba arkadaşlar sensörlerden aldığım bilgileri sd karta yazdıyorum fakat bu işlemi seri port ekranını açmadan yapamıyor. Seri port ekranını açınca yazma işlemi gerçekleştiriyor. Ben 9 v pille yazma işlemi yapmak istiyorum. Fakat yapamıyorum. Kodlarım şu şekilde. Ekstra olarakta saniyede 10 değerden fazla alamıyorum en az 25 değer almak istiyorum.

Kod:
double dewPoint(double celsius, double humidity)
{
  // (1) Saturation Vapor Pressure = ESGG(T)
  double RATIO = 373.15 / (273.15 + celsius);
  double RHS = -7.90298 * (RATIO - 1);
  RHS += 5.02808 * log10(RATIO);
  RHS += -1.3816e-7 * (pow(10, (11.344 * (1 - 1 / RATIO ))) - 1) ;
  RHS += 8.1328e-3 * (pow(10, (-3.49149 * (RATIO - 1))) - 1) ;
  RHS += log10(1013.246);

  // factor -3 is to adjust units - Vapor Pressure SVP * humidity
  double VP = pow(10, RHS - 3) * humidity;

  // (2) DEWPOINT = F(Vapor Pressure)
  double T = log(VP / 0.61078); // temp var
  return (241.88 * T) / (17.558 - T);
}
#include "DHT.h"
#include <DS3231.h>
#include <SD.h>
#include "Adafruit_BMP085.h"
Adafruit_BMP085 bmp;
#define DHTPIN 2
#define DHTTYPE DHT22
const int chipSelect = 4;
DHT sensor(DHTPIN, DHTTYPE);
DS3231  rtc(SDA, SCL);
void setup()
{
Serial.begin(2000000);
rtc.begin();
rtc.setTime(12, 0, 0); 
rtc.setDate(1, 1, 2014);
sensor.begin();
SD.begin(chipSelect);
bmp.begin();
}
void loop()
{
float humidity = sensor.readHumidity();
float S_C = sensor.readTemperature();
float S_F = sensor.readTemperature(true);
float I_F = sensor.computeHeatIndex(S_F, humidity);
float I_C = sensor.convertFtoC(I_F);
float p = bmp.readPressure();
float y = bmp.readAltitude();
File sdcard_file = SD.open("veri.txt", FILE_WRITE);
if (sdcard_file) {
sdcard_file.print(rtc.getDateStr());
sdcard_file.print(" ");
sdcard_file.print(rtc.getTimeStr());
sdcard_file.print("  Sıcaklık C:");
sdcard_file.print(S_C);
sdcard_file.print("  Nem:%");
sdcard_file.print(humidity);
sdcard_file.print("  Isı C: ");
sdcard_file.print(I_C);
sdcard_file.print("  Çığ Devrilme Noktası(*C):");
sdcard_file.print(dewPoint(S_C, humidity));
sdcard_file.print("  Basınç = ");
sdcard_file.print(p);
sdcard_file.print(" Pa");
sdcard_file.print(" Yükseklik = ");
sdcard_file.print(y);
sdcard_file.println(" metre ");
sdcard_file.close();
Serial.print(rtc.getDateStr());
Serial.print(" ");
Serial.print(rtc.getTimeStr());
Serial.print("  Sıcaklık C:");
Serial.print(S_C);
Serial.print("  Nem:%");
Serial.print(humidity);
Serial.print("  Isı C: ");
Serial.print(I_C);
Serial.print("  Çığ Devrilme Noktası(*C):");
Serial.print(dewPoint(S_C, humidity));
Serial.print("  Basınç = ");
Serial.print(p);
Serial.print(" Pa");
 Serial.print(" Yükseklik = ");
Serial.print(y);
Serial.println(" metre ");
delay(10);
}
}
 
Moderatör tarafında düzenlendi:
A.S neleri kaldırmam gerek serial.printleri ve serial.begin(200000) kodlarını kaldırdım yinede sonuca ulaşamadım
 
Serial.begin... yerine Serial.end();
yazın. Serial.print... satırlarını da siliniz.
 
ilginiz içün teşekkür ederim ama pille beslediğim zaman hala sd karta veri yazma işlemi gerçekleşmiyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…