Arduino Polska Forum
DS1307 - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino)
+--- Wątek: DS1307 (/watek-ds1307)



DS1307 - szybki946 - 09-02-2017

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.


RE: DS1307 - namok - 09-02-2017

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.


RE: DS1307 - adix - 09-02-2017

namok podaj lik do elektrody gdzie podjął temat.


RE: DS1307 - namok - 09-02-2017

Poszukaj po użytkowniku to znajdziesz.


RE: DS1307 - adix - 09-02-2017

Teraz rozumie kolega chce gotowca na elektrodzie prawie go dostał wystarczy pomyśleć to kod do zrobienia w 3 godziny.


RE: DS1307 - namok - 09-02-2017

Tu nawet nie chdzi o gotowca tylko o to że "wiel lepiej".


RE: DS1307 - szybki946 - 10-02-2017

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);

                }



RE: DS1307 - JasQ - 23-02-2017

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ć .


RE: DS1307 - Burakko - 14-04-2017

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 ?