Emir2507
Üye
- Katılım
- 11 Haz 2020
- Mesajlar
- 1
- Puanları
- 1
- Yaş
- 29
Merhaba. Arduino'da bir proje yapmak istedim. Amaç = RTC modülündeki saat bilgisi 16x2 LCD ekranda yazmalı. Daha sonra hareket sensörü hareket algıladığında sayım yapmalı, bunları yaptım. Sonra birkaç ekleme yapmak istedim. Hareket algıladığında ve LDR sensörü belli bir değerin altını gösterdiğinde röleye sinyal gitsin bir de sayaca +1 yapmasını istedim. Kodları yazdım ama bir türlü çalışmadı hata nedir? Cevaplarınızı bekliyorum. İyi günler.
Not: Hareket algılandığında 2 saniye bekleme vermemin sebebi hareket sensörü minimum 3 saniye boyunca locik 1 verir bunu yapmazsam her hareket algıladığında +3 verir. Sorunu bekleterek çözdüm.
Berbat bir forum açılan konulara ilgi yok. lütfen beni banlayın hesabımı silin. lanet bir site
Not: Hareket algılandığında 2 saniye bekleme vermemin sebebi hareket sensörü minimum 3 saniye boyunca locik 1 verir bunu yapmazsam her hareket algıladığında +3 verir. Sorunu bekleterek çözdüm.
Kod:
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 7, 6, 5, 4, 3);
RTC_DS1307 RTC;
int buton = 2;
int hareket= 9;
int sayac;
int ldr = A0;
int role = 12;
int asd=9;
char daysOfTheWeek[7][12] = {"Paz", "Pzt", "Sal", "Car", "Per", "Cum", "Cmt"};
void setup () {
pinMode(buton,INPUT);
pinMode(hareket,INPUT);
pinMode(13,OUTPUT);
pinMode(ldr,INPUT);
pinMode(role,OUTPUT);
Wire.begin();
RTC.begin();
lcd.begin(16, 2);
if (! RTC.isrunning()) {
lcd.println("RTC calismiyor");
}
for(int a=0; a<3; a++){
lcd.print("Bekleyiniz.");
delay(500);
lcd.clear();
lcd.print("Bekleyiniz..");
delay(500);
lcd.clear();
lcd.print("Bekleyiniz...");
delay(500);
lcd.clear();
}
lcd.setCursor(0, 0);
lcd.print("Selim...........");
lcd.setCursor(0, 1);
lcd.print("............Emir");
delay (2000);
lcd.clear();
}
void loop () {
digitalWrite(13,LOW);
if(digitalRead(buton)==0){
DateTime now = RTC.now();
lcd.setCursor(0, 0);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
lcd.print(' ');
lcd.print(" ");
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.setCursor(0, 1);
if (now.hour()<10)
lcd.print('0');
lcd.print(now.hour(), DEC);
lcd.print(':');
if (now.minute()<10)
lcd.print('0');
lcd.print(now.minute(), DEC);
lcd.print(':');
if (now.second()<10)
lcd.print('0');
lcd.print(now.second(), DEC);
delay(100);
lcd.clear();
}
if(digitalRead(buton)==1){
lcd.print("Hareket = ");
lcd.print(sayac);
lcd.setCursor(6,1);
lcd.print("LDR = ");
lcd.print(ldr);
lcd.home();
}
else if(analogRead(ldr)<35 && digitalRead(hareket)==1){
delay(2000);
sayac=sayac+1;
digitalWrite(role,HIGH);
delay(6000);
digitalWrite(role,LOW);
}
else if(digitalRead(hareket)==1){
delay(2000);
sayac=sayac+1;
}
ldr = analogRead(A0);
}
Moderatör tarafında düzenlendi: