Arduino Polska Forum

Pełna wersja: DS1307
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam zacznę od początku mam problem z robieniem czasowe wyłącznika na arduino nano i ds1307, to znacz wiem jak zrobić prosty wyłącznik czyli np. 6:00 włącz i 23:00 wyłącz. Mnie troszkę chodzi o coś innego ale podobnego chciałbym żeby adruno włączał kilka godzin nie tylko jeden czas np. 12:00 do 12:03 potem 15:00 do 15:05 i na koniec 19:00 do 19:03 i tak codziennie. Obszukałem się całe google i nigdzie takiego poradnika nie ma, myślę że nie jednemu się to też przyda więc czekam na propozycje i z góry dziękuje za pomoc.
Dostałeś dobre porady na elektrodzie i masz je w głębokim poważaniu, więc dlaczego teraz miałoby się coś zmienić. Zamiast czekać na gotowca naucz się podstaw i zrobisz to w minutę. Zapewne więcej czasu poświęciłeś na szukanie gotowca niż na naukę podstawowych instrukcji które wystarczą aby rozwiązać Twój problem.
namok podaj lik do elektrody gdzie podjął temat.
Poszukaj po użytkowniku to znajdziesz.
Teraz rozumie kolega chce gotowca na elektrodzie prawie go dostał wystarczy pomyśleć to kod do zrobienia w 3 godziny.
Tu nawet nie chdzi o gotowca tylko o to że "wiel lepiej".
Nie chodzi o to że ja tu czekam na gotowaca bo to nie pradawda.Poprostu chciałem taki tema tu poruszyć bo u was takiego nie ma a pewnie nie jedna osoba tego szuka.Podam kod który działa u mnie w akwarium tylko  że  mam z nim mały problem dlatego szukałem innego rozwiązania a wyszło ja wyszło. Jeśli chodzi o forum elektroda to ludzie wypisywali głupoty w moim temacie,dlatego postanowiłem tu napisać z myślą że znajdę tu ludzi z większą wiedzą.
Przepraszam za błędy al pisałem z telefonu bo poruszyły mnie waszeodpowiedzi.

Kod:
#include <DS1307.h>
#include <Wire.h>
#define DS1307_ADDRESS 0x68

#include <LiquidCrystal_I2C.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#define BACKLIGHT_PIN 3 //lcd
#define ONE_WIRE_BUS 4 //TU ZMIENIAMY PIN DO TERMOMETRU
#include <Servo.h>

Servo myservo;
byte zero = 0x00;
OneWire oneWire(ONE_WIRE_BUS);    //termometr - one wire
DallasTemperature sensors(&oneWire); //termometr
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7);


//*************************************opis wyjść****************************************************
int pos = 0;
int LED1 = 3;      // OŚWIETLENIE LED
int FIL = 5;       // FILTR
int CO2 = 8;     // BUTLA CO2
int KARP= 6;      // KARMINIK
int KARL = 7;      // KARMINIK
int T1 = 4;          // TERMOMETR

int GODZ;            //Godzina
int MIN;               //Minuta
int SEC;               //Sekundy



//****************************************SETUP**************************************************/
void setup()
{
myservo.attach(11);
lcd.begin(20,4); //lcd
Wire.begin();
lcd.setBacklight(HIGH); //lcd
lcd.home(); //lcd
sensors.begin();


pinMode(FIL, OUTPUT);          
pinMode(KARL, OUTPUT);          // KARMINIK
pinMode(KARP, OUTPUT);          // KARMINIK
       pinMode(T1, INPUT);               //TERMOMETR






Serial.begin(9600);
}
//*****************************************LOOP*****************************************/
void loop()
{
int CZAS = (GODZ*3600+MIN*60+SEC);

       
sensors.requestTemperatures();
//***dane do zmian - zmieniamy informacje tylko w tej części*******


//********************FILTR************************************************
//******DZIEŃ*************************WIECZÓR*****************************
int gFDON = 15;                     int gFWON = 19;
int mFDON = 00;                    int mFWON = 00;
int gFDOFF = 15;            int gFWOFF = 19;
int mFDOFF = 03;                int mFWOFF = 03;

//***************************CZAS FILTR***************************
int czasFDON = (gFDON*3600+mFDON*60); //dzień filtr OFF karmik ON
int czasFDOFF = (gFDOFF*3600+mFDOFF*60); //dzień filtr ON karmik OFF
int czasFWON = (gFWON*3600+mFWON*60); //wieczór filtr OFF karmik ON
int czasFWOFF = (gFWOFF*3600+mFWOFF*60); //wieczór filtr ON karmik OFF

GODZ = (RTC.get(DS1307_HR,true));
MIN = (RTC.get(DS1307_MIN,true));
SEC = (RTC.get(DS1307_SEC,true));

//***********************KARMIENIE************************
if ((CZAS<czasFDON)) //od północy do karmienia 1
   {
               myservo.write(pos);
               digitalWrite(FIL, HIGH);         //FILTR ON    

   }
       if ((czasFDON<=CZAS)&&(CZAS<czasFDOFF)) //karmienie poranne
           {

myservo.write(120);
   digitalWrite(FIL, LOW);         //FILTR OFF  

            }
        if ((czasFDOFF<=CZAS)&&(CZAS<czasFWON)) //czas pomiędzy karmieniami
            {

               myservo.write(pos);
              digitalWrite(FIL, HIGH);         //FILTR ON  
            }
if ((czasFWON<=CZAS)&&(CZAS<czasFWOFF)) //karmienie 2
           {

myservo.write(120);
               digitalWrite(FIL, LOW);         //FILTR OFF  

            }


    if (czasFWOFF<=CZAS) //od karmienia wieczornego do północy
           {

               myservo.write(pos);
              digitalWrite(FIL, HIGH);         //FILTR ON

            }

delay (200);

                }
Spokojnie . Tematów odnośnie ds1307 jest na forum kilka jak nie więcej ( polecam wyszukiwarkę ). Jeżeli chcesz się wiedzą podzielić napisz poradnik w odpowiednim dziale a zostaniesz doceniony i nagrodzony . Pamiętaj że na tym forum są osoby które korzystają z wielu for poświęconych innym zagadnieniom z elektroniki , programowania i szybko namierzą działalność pasożytniczą . Niestety jak i w twoim przypadku zazwyczaj kończy się to niepochlebnymi komentarzami i ogólnym niesmakiem .

P.s. "code" jest taki znacznik z niego też proszę korzystać bo i ja zacznę karać .
Jak 1-szy raz użyłem 1307 znalazłem stronę Pana Jarzębskiego. W niej jest zawarte chyba wszystko. Warto przeczytać od deski do deski a reszta użycia to już fantazja programisty. Rozumiem że buduje sterownik akwarystyczny. Załączanie czasu kiedyś robiłem najprościej if godzina then set pin, if godzina then reset pin. Jak widzę to w kodzie tak napisałeś. Opisz dokładnie z czym się borykasz gdzie leży problem twojego kodu ? I ciekawi mnie ten karmnik... masz automatyczne karmienie ? fotka hardwarowa ?