Arduino
OKUDUĞUNUZ KONU
Arduino Voltmetre Hafıza Kartı Kayıt LCD Ekran
0

Arduino Voltmetre Hafıza Kartı Kayıt LCD Ekran

Yazar : Eren Doğan17 Nisan 2017

Merhaba arkadaşlar, daha önce ki projeme benzeyen bir devre yapıyoruz yine çalıştığım yerde benden tramvayların hattan çektiği gerilim ölçümü yapan ve de hafıza kartı na düzenli olarak kaydeden (datalogger) bir devre yapmamı istemişlerdi belki sizin de işinize yarar diyerek paylaşıyorum.Bu devre ile 50 Vdc ye kadar sağlıklı ölçüm yapabilirsiniz Kütüphanelerle ilgili sıkıntınız olursa yorumda paylaşın lütfen

Projede Kullanılan Malzemeler

  • Arduino UNO
  • 16×2 LCD ekran
  • Potansiyemetre
  • RTC Saat Modülü
  • SD kart modülü
  • 100k 1/4 Watt direnç
  • 10k 1/4 Watt direnç

Devre Şeması:

Çalışma Videosu:

Devre Kodları:

#include <SPI.h>
#include <SD.h>
#include <DS1302.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(10, 9, 4, 3, 2, 1);
const int SSPin = 8;
int analogInput = A0;

float vout = 0.0;
float vin = 0.0;

float R1 = 100000.0;
float R2 = 10000.0;

int value = 0;

namespace
{
const int CePin = 5;
const int IoPin = 6;
const int SckPin = 7;
char buf[50];
DS1302 rtc(CePin, IoPin, SckPin);
String dayAsString(const Time::Day day)
{
switch (day)
{
case Time::kSunday: return "Pazar";
case Time::kMonday: return "Pzt";
case Time::kTuesday: return "Sali";
case Time::kWednesday: return "Csb";
case Time::kThursday: return "Psb";
case Time::kFriday: return "Cuma";
case Time::kSaturday: return "Cmt";
}
return "Hata!";
}

void PrintTime()
{
Time t = rtc.time();
const String day = dayAsString(t.day);
snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d",
day.c_str(),
t.yr, t.mon, t.date, t.hr, t.min, t.sec);
lcd.setCursor(0,1);
lcd.println(buf);
}
}

void setup()
{
lcd.begin(16, 2);
pinMode(analogInput, INPUT);
if (!SD.begin(SSPin))
{
lcd.println("SD kart baglanamadi");
return;
}
lcd.println("SD kart baglandi");
rtc.writeProtect(false);
rtc.halt(false);
Time t(2017, 04, 10, 11, 30, 00, Time::kMonday);
rtc.time(t);
delay(2000);
lcd.clear();
}

void loop() {
value = analogRead(analogInput);
vout = (value * 4.95) / 1024.0;
vin = vout / (R2 / (R1 + R2));
File dataFile = SD.open("log.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(vin);
dataFile.println(buf);
dataFile.close();
lcd.print("Voltaj=");
lcd.println(vin);
}
else {
lcd.println("Hata");
}
lcd.setCursor(0, 0);
lcd.print("Voltaj =");
lcd.print(vin);
PrintTime();
delay(60000);
lcd.clear();
} 
SİZCE NASIL OLMUŞ?
Beğendim
100%
İlginç
0%
Eh İşte
0%
Anlamadım
0%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Eren Doğan
Eren Doğan
Elektrik-Elektronik Mühendisi
YORUMLAR

YORUM YAP