Arduino konusun da acemiyim bir kuluçka makinesi yapmak istiyorum Robot mutfağı adlı bir sitede bir proje budum
Sorunum şu ki projede ds1302 rtc modül kullanılmış Bende ise ds3231 modül var analog pinler dolu ne yapabilirim kodda ne gibi değişiklikler yapmalıyım.
#include<Servo.h> Servo sg90; DS1302RTC RTC(5, 6, 7); # define role 4 int aci = 90; int yumurta_gun = 1; int servo = 0; float sicaklik = 0; const int Lm35 = A5;
int sifirla = 0; int gelen_veri = 0; float voltaj_deger = 0;
float ortalama = 0; int say =0; int address = 50; // eepromdaki değişken adres int kayit = 0; // eepromdan okunarak tutulan data
int servo_konum=0;
// lcd(RS, E, d4, d5, d6, d7) LiquidCrystal lcd(13, 12, 11, 10, 9, 8); dht11 DHT11; int saat = 0; int dakika = 0; int saniye = 0; int yil = 0; int ay = 0; int gun = 0; int alt_seviye=0; int ust_seviye=0;
int layer[4] = {A0, A1, A2, A3}; int chk = 0; #define DHT11_PIN 2 // Sensor is connected to Arduino pin 2 void setup() { // Setup LCD to 16x2 characters
// Check write-protection lcd.setCursor(0, 1); if (RTC.writeEN()) lcd.print("Yazmaya izin ver."); else lcd.print("Yazma korumali.");
delay (200);
// Setup Time library lcd.clear(); lcd.print("RTC Senk."); setSyncProvider(RTC.get); // the function to get the time from the RTC if (timeStatus() == timeSet) lcd.print(" Tamam!"); else lcd.print(" HATALI!");
digitalWrite(role, HIGH); // ısıtıcı açık digitalWrite(layer[1], 1);//kırmızı
say=0;
if (servo_konum == 0) { if (saat == 0 || saat == 1 || saat == 4 || saat == 5 || saat == 8 || saat == 9 || saat == 12 || saat == 13 || saat == 16 || saat == 17 || saat == 20 || saat == 21 ) { for (int a = aci; a > 40; a--) { digitalWrite(layer[2], 0);//sarı digitalWrite(layer[3], 1);//mavi sg90.attach(3); sg90.write(a); aci = a; delay(100); } } if (saat == 2 || saat == 3 || saat == 6 || saat == 7 || saat == 10 || saat == 11 || saat == 14 || saat == 15 || saat == 18 || saat == 19 || saat == 22 || saat == 23)
{ for (int a = aci; a < 140; a++) { digitalWrite(layer[2], 1);//sarı digitalWrite(layer[3], 0);//mavi sg90.attach(3); sg90.write(a); aci = a; delay(100); } }
Arduino konusun da acemiyim bir kuluçka makinesi yapmak istiyorum Robot mutfağı adlı bir sitede bir proje budum
Sorunum şu ki projede ds1302 rtc modül kullanılmış Bende ise ds3231 modül var analog pinler dolu ne yapabilirim kodda ne gibi değişiklikler yapmalıyım.
CODE: #include <EEPROM.h>
#include <dht11.h>
#include <LiquidCrystal.h>
#include <DS1302RTC.h>
#include <Time.h>
#include<Servo.h>
Servo sg90;
DS1302RTC RTC(5, 6, 7);
# define role 4
int aci = 90;
int yumurta_gun = 1;
int servo = 0;
float sicaklik = 0;
const int Lm35 = A5;
int sifirla = 0;
int gelen_veri = 0;
float voltaj_deger = 0;
float ortalama = 0;
int say =0;
int address = 50; // eepromdaki değişken adres
int kayit = 0; // eepromdan okunarak tutulan data
int servo_konum=0;
// lcd(RS, E, d4, d5, d6, d7)
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
dht11 DHT11;
int saat = 0;
int dakika = 0;
int saniye = 0;
int yil = 0;
int ay = 0;
int gun = 0;
int alt_seviye=0;
int ust_seviye=0;
int layer[4] = {A0, A1, A2, A3};
int chk = 0;
#define DHT11_PIN 2 // Sensor is connected to Arduino pin 2
void setup()
{
// Setup LCD to 16x2 characters
// DHT11.attach(2);
Serial.begin(9600);
lcd.begin(16, 2);
for (int i = 0; i < 4; i++)
{
pinMode(layer, OUTPUT);
}
pinMode(role, OUTPUT);
lcd.clear();
lcd.setCursor (0, 0);
lcd.println("KULUCKA MAKINASI");
lcd.setCursor (0, 1);
lcd.println("*robotdevreleri*");
delay(2000);
lcd.clear();
sg90.attach(3);
delay(1000);
// Check clock oscillation
lcd.clear();
if (RTC.haltRTC())
lcd.print("Saat durdu!");
else
lcd.print("Saat aktif");
// Check write-protection
lcd.setCursor(0, 1);
if (RTC.writeEN())
lcd.print("Yazmaya izin ver.");
else
lcd.print("Yazma korumali.");
delay (200);
// Setup Time library
lcd.clear();
lcd.print("RTC Senk.");
setSyncProvider(RTC.get); // the function to get the time from the RTC
if (timeStatus() == timeSet)
lcd.print(" Tamam!");
else
lcd.print(" HATALI!");
delay (200);
lcd.clear();
yumurta_gun = EEPROM.read(address); // adresten yumurta_guni oku
}
void loop()
{
EEPROM.write(address,(yumurta_gun)); // eeprom adrese değeri yaz
sifirla = analogRead(A4);
if (sifirla > 500)
{
yumurta_gun = 1;
}
saniye = second();
saat = hour();
dakika = minute();
gun = day();
ay = month();
yil = year();
lcd.setCursor (0, 0);
lcd.setCursor (0, 0);
if (ay < 10)
{
lcd.print("0");
}
else
{
lcd.print("-");
}
lcd.print(ay);
if (gun < 10)
{
lcd.print("-0");
}
else
{
lcd.print("-");
}
lcd.print(gun);
lcd.setCursor (8, 0);
if (saat < 10)
{
lcd.print("0");
}
lcd.print(saat);
if (dakika < 10)
{
lcd.print("-0");
}
else
{
lcd.print("-");
}
lcd.print(dakika);
if (saniye < 10)
{
lcd.print("-0");
}
else
{
lcd.print("-");
}
lcd.print(saniye);
ortalama = 0;
for (int a = 0; a < 10; a++)
{
gelen_veri = analogRead(Lm35);
voltaj_deger = ((gelen_veri / 1023.0) * 5000);
sicaklik = voltaj_deger / 10.0;
ortalama = ortalama + sicaklik;
delay(100);
}
float ort = ortalama / 10;
chk = DHT11.read();
lcd.setCursor (0, 1);
lcd.print("%");
lcd.print((float)DHT11.humidity, DEC);
lcd.setCursor (3, 1);
// sicaklik = (float)DHT11.temperature;
lcd.print("C:");
lcd.print(ort);
lcd.setCursor (9, 1);
lcd.print(" ");
lcd.print(yumurta_gun);
lcd.print(".GUN ");
digitalWrite(role, HIGH); // ısıtıcı açık
digitalWrite(layer[1], 1);//kırmızı
if (saat == 12 && dakika == 0 && saniye < 3 )
{
yumurta_gun++;
if (yumurta_gun == 22)
{
yumurta_gun =1;
}
lcd.setCursor (9, 1);
lcd.print(" ");
lcd.print(yumurta_gun);
lcd.print(".GUN ");
delay(3000);
}
if (yumurta_gun <= 18)
{
alt_seviye = 37;
ust_seviye = 37.7;
}
if (yumurta_gun > 18)
{
alt_seviye = 36;
ust_seviye = 36.7;
servo_konum = 1;
}
if (ort > 38.5)
{
digitalWrite(role, LOW);// ısıtıcı kapalı
lcd.setCursor (0, 1);
lcd.print("%");
lcd.print((float)DHT11.humidity, DEC);
lcd.setCursor (3, 1);
// sicaklik = (float)DHT11.temperature;
lcd.print("C:");
lcd.print(ort);
lcd.setCursor (9, 1);
lcd.print(" ");
lcd.print(yumurta_gun);
lcd.print(".GUN ");
digitalWrite(layer[0], 1); //buzzer
digitalWrite(layer[1], 1);//kırmızı
delay(100);
digitalWrite(layer[0], 0); //buzzer
digitalWrite(layer[1], 0);//kırmızı
delay(50);
}
if (ort >= ust_seviye)
{
while (say == 0)
{
ortalama = 0;
for (int a = 0; a < 10; a++)
{
gelen_veri = analogRead(Lm35);
voltaj_deger = ((gelen_veri / 1023.0) * 5000);
sicaklik = voltaj_deger / 10.0;
ortalama = ortalama + sicaklik;
delay(100);
}
float ort = ortalama / 10;
if (ort < alt_seviye)
{
say=1;
}
sifirla = analogRead(A4);
if (sifirla > 500)
{
yumurta_gun = 1;
}
digitalWrite(role, LOW); // ısıtıcı kapalı
digitalWrite(layer[1], 0);//kırmızı
saniye = second();
saat = hour();
dakika = minute();
gun = day();
ay = month();
yil = year();
lcd.setCursor (0, 0);
if (ay < 10)
{
lcd.print("0");
}
else
{
lcd.print("-");
}
lcd.print(ay);
if (gun < 10)
{
lcd.print("-0");
}
else
{
lcd.print("-");
}
lcd.print(gun);
lcd.setCursor (8, 0);
if (saat < 10)
{
lcd.print("0");
}
lcd.print(saat);
if (dakika < 10)
{
lcd.print("-0");
}
else
{
lcd.print("-");
}
lcd.print(dakika);
if (saniye < 10)
{
lcd.print("-0");
}
else
{
lcd.print("-");
}
lcd.print(saniye);
lcd.setCursor (0, 1);
lcd.print("%");
lcd.print((float)DHT11.humidity, DEC);
lcd.setCursor (3, 1);
// sicaklik = (float)DHT11.temperature;
lcd.print("C:");
lcd.print(ort);
lcd.setCursor (9, 1);
lcd.print(" ");
lcd.print(yumurta_gun);
lcd.print(".GUN ");
}
}
lcd.setCursor (9, 1);
lcd.print(" ");
lcd.print(yumurta_gun);
lcd.print(".GUN ");
digitalWrite(role, HIGH); // ısıtıcı açık
digitalWrite(layer[1], 1);//kırmızı
say=0;
if (servo_konum == 0)
{
if (saat == 0 || saat == 1 || saat == 4 || saat == 5 || saat == 8 || saat == 9 || saat == 12 || saat == 13 || saat == 16 || saat == 17 || saat == 20 || saat == 21 )
{
for (int a = aci; a > 40; a--)
{
digitalWrite(layer[2], 0);//sarı
digitalWrite(layer[3], 1);//mavi
sg90.attach(3);
sg90.write(a);
aci = a;
delay(100);
}
}
if (saat == 2 || saat == 3 || saat == 6 || saat == 7 || saat == 10 || saat == 11 || saat == 14 || saat == 15 || saat == 18 || saat == 19 || saat == 22 || saat == 23)
{
for (int a = aci; a < 140; a++)
{
digitalWrite(layer[2], 1);//sarı
digitalWrite(layer[3], 0);//mavi
sg90.attach(3);
sg90.write(a);
aci = a;
delay(100);
}
}
}
}
< Resime gitmek için tıklayın >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi ggne -- 8 Temmuz 2020; 15:31:11 >