Arduino Dozownik Nawozu Akwarystyczny
Re: Arduino Dozownik Nawozu Akwarystyczny
Witam
Chłopie pomyśl chwilkę sam... przecież wystarczy, że zmiernisz ten fragment w petli loop:
for(int i=0;i<4;i++)
na to:
for(int i=0;i<2;i++)
..szczyt lenistwa :-) (położyć się na fajnej kobiecie i czekać na trzęsienie ziemi :-)
Pozdrawiam
Chłopie pomyśl chwilkę sam... przecież wystarczy, że zmiernisz ten fragment w petli loop:
for(int i=0;i<4;i++)
na to:
for(int i=0;i<2;i++)
..szczyt lenistwa :-) (położyć się na fajnej kobiecie i czekać na trzęsienie ziemi :-)
Pozdrawiam
Re: Arduino Dozownik Nawozu Akwarystyczny
Ok sprawdze wszytko jutro wieczorem
Re: Arduino Dozownik Nawozu Akwarystyczny
Witam serwo pracuje bez przerwy nie przestaje pracować po podaniu dawki
Kod: Zaznacz cały
#include <Servo.h>
Servo servo[4]; // defincja 4 serw
int smin[4]; // w sumie nie wiem po co min i max
int smax[4];
int ruchy; // ilośc ruchów do obliczenia
float dawki[4]={4, 5.6, 3, 2.4}; // przykładowe dawki
float poj[4]={0.4, 0.8, 0.5, 0.3}; // przykładowe pojemności dla jednego ruchu
//--------------------------------------------------
void setup()
{
for(int i=1;i<=1;i++) // w pętli podpinamy 4 serwa do programu
{
smin[i-1]=0; // nie wiem po co skoro serwo ma wyk. ruch od 0-180 st.
smax[i-1]=180; // nie wiem po co skoro serwo ma wyk. ruch od 0-180 st.
servo[i-1].attach(i); // podpinamy serwa do pinów 1,2,3,4
}
}
// -------------------------------------------------
void loop()
{
for(int i=0;i<1;i++)
{
ruchy=(int)(dawki[i]/poj[i]); // mi wychodzi odpowiednio: 10, 7, 6, 8 ruchów :-)
for(int k=1;k<=ruchy;k++)
{
servo[i].write(180);delay(2000); // naciągamy strzykawkę, czekamy, (tu dobierz czas dla delay)
servo[i].write(0);delay(2000); // wypluwamy ze strzykawki, czekamy (tu dobierz czas)
}
// ... i tak dla każdego z 4 serw
}
}
// --- koniec ---------------------------------------
Re: Arduino Dozownik Nawozu Akwarystyczny
Witam
ech... przecież o to chodzi... potem w programie będziesz wywoływał to raz na dobę... teraz sprawdzasz pracę serw w niekończącej się pętli. Myśl chłopie :-) Zrobiłeś właśnie mały kroczek człowieka, a wielki krok dla ludzkości :-) To co jest w ciele loop-a będzie potem funkcją dozuj(), dozowanie, nawożenie, czy jakoś tam...
Mam nadzieję, że ustawianie działek w setupie (wcześniejszy kod) działa poprawnie, jeśli tak, to teraz pomyśl nad zegarem RTC :-)
Jak sobie nie poradzisz to pisz.
Pozdrawiam
ech... przecież o to chodzi... potem w programie będziesz wywoływał to raz na dobę... teraz sprawdzasz pracę serw w niekończącej się pętli. Myśl chłopie :-) Zrobiłeś właśnie mały kroczek człowieka, a wielki krok dla ludzkości :-) To co jest w ciele loop-a będzie potem funkcją dozuj(), dozowanie, nawożenie, czy jakoś tam...
Mam nadzieję, że ustawianie działek w setupie (wcześniejszy kod) działa poprawnie, jeśli tak, to teraz pomyśl nad zegarem RTC :-)
Jak sobie nie poradzisz to pisz.
Pozdrawiam
Re: Arduino Dozownik Nawozu Akwarystyczny
witam
mam problem z modułem rtc okazało się ze moja płytka Leonardo, wykorzystuje piny D2 i D3 do komunikacji I2C a nie jak w uno A4 i A5 , można to jakoś zmienić bo będę potrzepał tych pinów;]
mam problem z modułem rtc okazało się ze moja płytka Leonardo, wykorzystuje piny D2 i D3 do komunikacji I2C a nie jak w uno A4 i A5 , można to jakoś zmienić bo będę potrzepał tych pinów;]
Ostatnio zmieniony 27 mar 2014, 22:21 przez Dabalwwy, łącznie zmieniany 1 raz.
Re: Arduino Dozownik Nawozu Akwarystyczny
Witam
Kurcze, już powinieneś wiedzieć - jest problem - OK... a gdzie jest kod? :-)
Pozdrawiam
Kurcze, już powinieneś wiedzieć - jest problem - OK... a gdzie jest kod? :-)
Pozdrawiam
Re: Arduino Dozownik Nawozu Akwarystyczny
z tymi pinami sobie poradziłem leonardo ma socjalne piny sda i scl program na razie wygląda tak:
Kod: Zaznacz cały
#include <Servo.h>
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
RTC_DS1307 RTC;
LiquidCrystal lcd(13,12,11,10,9,8);
Servo servo[4]; // defincja 4 serw
int smin[4]; // w sumie nie wiem po co min i max
int smax[4];
int ruchy; // ilośc ruchów do obliczenia
float dawki[4]={4, 5.6, 3, 2.4}; // przykładowe dawki
float poj[4]={0.4, 0.8, 0.5, 0.3}; // przykładowe pojemności dla jednego ruchu
//--------------------------------------------------
void setup()
{
Serial.begin(9600);
Wire.begin();
RTC.begin();
lcd.begin(16,4);
for(int i=1;i<=1;i++) // w pętli podpinamy 4 serwa do programu
{
//smin[i-1]=0; // nie wiem po co skoro serwo ma wyk. ruch od 0-180 st.
//smax[i-1]=180; // nie wiem po co skoro serwo ma wyk. ruch od 0-180 st.
servo[i-1].attach(i); // podpinamy serwa do pinów 1,2,3,4
}
}
// -------------------------------------------------
void loop()
{
DateTime now = RTC.now();
lcd.setCursor(6,0);
lcd.print("ZEGAR");
lcd.setCursor(4,1);
lcd.print(now.year(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.day(), DEC);
lcd.print(' ');
lcd.setCursor(0,2);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
if((now.hour()==15)
{
for(int i=0;i<1;i++)
{
ruchy=(int)(dawki[i]/poj[i]); // mi wychodzi odpowiednio: 10, 7, 6, 8 ruchów :-)
for(int k=1;k<=ruchy;k++)
{
servo[i].write(180);delay(500); // naciągamy strzykawkę, czekamy, (tu dobierz czas dla delay)
servo[i].write(0);delay(500); // wypluwamy ze strzykawki, czekamy (tu dobierz czas)
}
// ... i tak dla każdego z 4 serw
}}
}
Re: Arduino Dozownik Nawozu Akwarystyczny
Witam
Dobra, teraz RTC na tapetę.
Wyświetla Ci głupoty, bo ma nieustawiony czas. Zajrzyj do samej biblioteki tam stoi taka linia, którą musisz dodać w setupie:
Co się tam dzieje? Ano do modułu jest "przepisywany" czas z Twojego komputera. Od teraz jesli masz bateryjkę w module to sam moduł odlicza czas niezależnie od Arduino.
Ale Uwaga !!! Tą linijkę w setupie dajesz tylko raz lub tylko wtedy gdy chcesz aktualizować czas, bo np. po miesiącu zegar spóźnia Ci się np. 20 sekund :-)
Czyli wgrywasz program do Arduino a potem zaremuj tą linijkę:
... i wszystko musi śmigać :-)
Pozdrawiam
ps. Ja uzywam Leonardo (klon z firmy And-Tech) i dopiero teraz zauważyłem, że oni zastosowali zworki aby zachować zgodność z np. UNO w zakresie pinów A4 i A5. U mnie SDA i SCL można łączyć po staremu, więc nawet nie zauważyłem, że oryginał ma inaczej. Człowiek uczy się całe życie... i głupi umiera :-)
Dobra, teraz RTC na tapetę.
Wyświetla Ci głupoty, bo ma nieustawiony czas. Zajrzyj do samej biblioteki tam stoi taka linia, którą musisz dodać w setupie:
Kod: Zaznacz cały
RTC.adjust(DateTime(__DATE__, __TIME__));
Ale Uwaga !!! Tą linijkę w setupie dajesz tylko raz lub tylko wtedy gdy chcesz aktualizować czas, bo np. po miesiącu zegar spóźnia Ci się np. 20 sekund :-)
Czyli wgrywasz program do Arduino a potem zaremuj tą linijkę:
Kod: Zaznacz cały
// RTC.adjust(DateTime(__DATE__, __TIME__));
Pozdrawiam
ps. Ja uzywam Leonardo (klon z firmy And-Tech) i dopiero teraz zauważyłem, że oni zastosowali zworki aby zachować zgodność z np. UNO w zakresie pinów A4 i A5. U mnie SDA i SCL można łączyć po staremu, więc nawet nie zauważyłem, że oryginał ma inaczej. Człowiek uczy się całe życie... i głupi umiera :-)
Re: Arduino Dozownik Nawozu Akwarystyczny
Z tym rtc to wiedzialem o co tam chodzi ze trzeba raz ustawic czas i smiga, dobrze odlicza teraz tylko nie wiem jak ma wygladac if zeby sprawdzalo godzine i minuty jednoczesnie
Re: Arduino Dozownik Nawozu Akwarystyczny
Witam
Pozdrawiam
Kod: Zaznacz cały
if((now.hour()==15 && now.minute()==10) // 15.10 pociąg do Yumy
Re: Arduino Dozownik Nawozu Akwarystyczny
Dzięki jutro zajmę się reszta i zobaczymy jak to wyjdzie
Re: Arduino Dozownik Nawozu Akwarystyczny
Mam jeszcze jedna prośbę proszę o pomoc w napisaniu czegoś takiego jak funkcja ustaw(); Tylko żeby można było w niej ustawić czas mam dwie zmienne int h i s , chce zęby po wykonaniu funkcji wstaw wyświetlała się funkcja czas i zęby na przykład przycisk można była ja ostawić i zatwierdzić
Re: Arduino Dozownik Nawozu Akwarystyczny
Witam
Nie mam teraz za wiele czasu, cóż wiosna... ale tak na szybko poczytaj w dziale tutorials post "gotowiec1 "
Pozdrawiam
Nie mam teraz za wiele czasu, cóż wiosna... ale tak na szybko poczytaj w dziale tutorials post "gotowiec1 "
Pozdrawiam