TomekSz Zgłoś Napisano 28 Stycznia 2013 (edytowane) U mnie juz dziala. Program napisalem sam. Wysyane z mojego iPad przy uyciu Tapatalk HD Edytowane 29 Stycznia 2013 przez TomekSz (wyświetl historię edycji) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
polecki Zgłoś Napisano 29 Stycznia 2013 (edytowane) TomekSz a wzuc jakies foto i opis funkcji Wysyłane z mojego GT-I9300 za pomocą Tapatalk 2 Edytowane 29 Stycznia 2013 przez zielony mintaj (wyświetl historię edycji) Cytuj 275 l,Sump 80l, 2x Ecotech RADION xr30w,Bubble King Mini 200, Reef Octopus MF-70 na ROWA, Skimz + AllInOne BioPellets, Vortech MP-10 x2, JEBAO DC6000 obieg, Grotech TEC III NG FM Balling Light, 25kg LR, 18kg LS i pare zwierzaków Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
nanorafa Zgłoś Napisano 29 Stycznia 2013 Stanowczo podziel się kodem Cytuj Kostka 100x100x50cm, Oświetlenie: 12 x 39W, ATI Sunpower Cyrkulacja: 2 x Tunze 6095, 1x Tunze 6055 Obieg: NewJet 4500 Reaktor Ca, DIY Sól: Tropic Marine Pro Reef, RedSea. Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
TomekSz Zgłoś Napisano 29 Stycznia 2013 (edytowane) Stanowczo podziel się kodem Bardzo proszę, mam nadzieje, ze Tester sie nie obrazi za zasmiecanie tematu: Tak więc: do arduino podłączyłem: moduł zegara RTC i dwa analogowe potencjometry dla kanału białego i niebieskiego i z arduino wyprowadziłem wyjściami PWM sygnał na drivery kanałów białego i niebieskiego. Cały ukłąd ma działać w taki sposób, że: zdefiniowałem godzine wschodu i zachodu, lampa załącza się rano od razu do poziomu wyregulowanego przez potencjometry. Jeśli jest dzień to zmany nastaw na potencjometrach regulują poziomem jasności na obydwu kanałach, jesli jest noc, to zmiany nastawów na potencjometrach nie zmieniaja jasności na kanałach tylko później w czasie wschodu lampa zaswieci sie do poziomów ustawionych na potencjometrach. W nocy swieci tylko kanal niebieski symulujac swiatlo ksiezyca. NIE zrobiłem plynnego wschodu/zachodu, NIE dodałem wyswietlacza, dlatego ze mi sie nie chciało Jesli ktos bardzo chce moge to zrobic, u mnie po prostu nie bylo takiej potrzeby bo zrobilem lampe do szczepkarium w sumpie. A teraz baaaardzo prosty kod z komentami: #include <Wire.h> #include "RTClib.h" RTC_DS1307 RTC; int whitePotValue = 0; //analogowa wartość na potencjometrze kanału białego int bluePotValue = 0; //analogowa wartość na potencjometrze kanału niebiekiego int bluePWMValue = 0; //cyfrowa wartość PWM podawana na driver niebieskich int whitePWMValue = 0; //cyfrowa wartość PWM podawana na driver białych bool dzien = true; //wartość logiczna określająca czy jest dzień czy noc void setup() { // te 4 linijki ponizej dotycza podlaczenia RTC do arduino pinMode(16, OUTPUT); pinMode(17, OUTPUT); digitalWrite(16, LOW); digitalWrite(17, HIGH); Wire.begin(); RTC.begin(); } // the loop routine runs over and over again forever: void loop() { DateTime now = RTC.now(); //tutaj ustawiam godzine/minute/sekunde wschodu if(now.hour()==10 && now.minute()==0 && now.second()==0 && dzien!=true) { dzien = true; } //tutaj ustawiam godzine/minute/sekunde zachodu if(now.hour()==20 && now.minute()==0 && now.second()==0 && dzien==true) { dzien = false; } //odczytuje wartośc z potencjometrów int bluePotValue = analogRead(A0); int whitePotValue = analogRead(A1); //mapuje wartość analogowe z potencjometrów do wartości PWM bluePWMValue = map(bluePotValue, 0, 1023, 0, 255); whitePWMValue = map(whitePotValue, 0, 1023, 0, 255); //jeśli jest dzień to wysyłam sygnały PWM do driverów if(dzien) { analogWrite(9, bluePWMValue); analogWrite(10, whitePWMValue); } //jeśli jest noc na kanal biały wysylam wartość 0 - nie swieci // i na kanał niebieski wysylam wartość 10 czyli słabe swiatło symulujące księżycc else { analogWrite(9, 10); analogWrite(10, 0); } delay(100); } Edytowane 29 Stycznia 2013 przez TomekSz (wyświetl historię edycji) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Tester Zgłoś Napisano 29 Stycznia 2013 pewnie ze sie nie obraze Cytuj 425L - Maxspect Recurve R6 120, Twistman 150 Integra, Komputer od AquaTrend i takie tam... Stary projekt [600L] Nowy projekt [425L] Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Świrek Zgłoś Napisano 10 Marca 2013 Tak więc: do arduino podłączyłem: moduł zegara RTC i dwa analogowe potencjometry dla kanału białego i niebieskiego i z arduino wyprowadziłem wyjściami PWM sygnał na drivery kanałów białego i niebieskiego. Właśnie przymierzam się do zastosowania arduino do sterowania lampą. Jednak z elektroniki jestem cienki Bolek :/ Gdybyś mógł napisać, jak połączyłeś Arduino z driverami? Tak samo jak na schemacie Testera? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Świrek Zgłoś Napisano 29 Kwietnia 2013 To ja też dorzucę mój kod. Kanały niebieski i biały zapalają się w 10 krokach. Najpierw niebieski, potem przerwa, a następnie biały. Przerwa standardowo wynosi 0, ale w przypadku konieczności ograniczenia długości świecenia białym światłem, np. przy walce z plagami, możemy sobie ustawić zwłokę. Lampa gaśnie też w sposób płynny, najpierw białe, potem niebieskie. Czas wyłączenia to czas, kiedy lampa przechodzi w tryb nocny. Na podstawie tego czasu, Arduino oblicza kiedy zacząć wyłączać lampę. Kod pozwala ustawić czas włączania, wyłączania, długość pojedyńczego kroku, oraz maksymalne moce kanałów. Aby zastosować kod, potrzebujemy tylko Arduino, zegar RTC1307, oraz sterowalne drivery, np MR2007Vxx. A oto kod: #include <Wire.h> #include <DS1307.h> #define nieb 11 #define bial 10 void setup() { pinMode(nieb, OUTPUT); Serial.begin(9600); } void loop() {//**************************************************************************************** //*************************************************************************************** // TU USTAWIASZ JAK MA ŚWIECIĆ I NIC WIĘCEJ NIE MUSISZ ROBIĆ // Oczywiście jak chesz, możesz się pobawić kodem, ale do sterowania lampą wystarczy to co jest. //*************************************************************************************** int krok = 1; //długość w minutach trwania jednego stopnia rozjaśniania int maxb = 10; //maksymalna moc kanału białego WARTOŚCI 0-10 int maxn = 10; //maksymalna moc kanału niebieskiego WARTOŚCI 0-10 int plaga = 0; //w przypadku plagi opóźnia zapalanie białego światła w godzinach int gwl = 12; //godzina załączenia int mwl = 26; //minuta załączenia int gwy = 13; //godzina włączenia int mwy = 35; //minuta wyłączenia //************************************************************************************** int GODZ = (RTC.get(DS1307_HR,true)); //godzina pobierana z RTC int MIN = (RTC.get(DS1307_MIN, true)); //minuta pobierana z RTC int CZAS = (GODZ*60+MIN); //aktualna godzina podawana w minutach int CZASWL = (gwl*60+mwl); //czas załączenia podany w minutach int CZASWY = (gwy*60+mwy); //czas wyłączenia podany w minutach static int blue; //stopień niebieskiego static int white; //stopień białego int mocbia[11] = { 0,15,31,45,63,96,123,160,190,220,255 }; //stopnie mocy kanału białego int mocnieb[11] = { 10,26,38,45,63,96,123,160,190,220,255 }; //stopnie mocy kanału niebieskiego int pla; pla=plaga*60; //*************************************************************************************** // kolejne stopnie załączania i wyłączania //*************************************************************************************** //1. przedział od północy do czasu włączenia if ((CZAS>=0)&&(CZAS<CZASWL)) { blue=0; white=0; } //2. przedział od załączenia niebieskiego do rozjaśnienia if ((CZAS>=CZASWL)&&(CZAS<(CZASWL+(krok*maxn)))) { blue=((CZAS - CZASWL)/krok); Serial.println("ROZJASNIANIE NIEBIESKIEGO"); } //3. przedział zwłoka od raozjaśnienia niebieskiego do początku rozjaśniania białego (na wypadek plagi) if ((CZAS>=(CZASWL+(krok*maxn)))&&(CZAS<(pla+CZASWL+(krok*maxn)))) { blue=maxn; white=0; Serial.println("PRZERWA NA PLAGE"); } //4. przedział rozjaśnianie białego if((CZAS>=(pla+CZASWL+(krok*maxn)))&&(CZAS<(pla+CZASWL+(krok*maxn)+(krok*maxb)))) { blue=maxn; white=((CZAS-(pla+CZASWL+(krok*maxn)))/krok); Serial.println("ROZJASNIANIE BIALEGO"); } //5. przedział świecenie na maksa if((CZAS>=(pla+CZASWL+(krok*maxn)+(krok*maxb)))) { blue=maxn; white=maxb; } //6. przedział ściemnianie białego if((CZAS>=(CZASWY-(krok*maxb)-(krok*maxn))&&(CZAS<CZASWY-(krok*maxn)))) { blue=maxn; white=(((CZASWY-krok*maxn)-CZAS)/krok); Serial.println("SCIEMNIANIE BIALEGO"); } //7. przedział ściemnianie niebieskiego if((CZAS>=CZASWY-(krok*maxn))&&(CZAS<CZASWY)) { white=0; blue=((CZASWY-CZAS)/krok); Serial.println("SCIEMNIANIE NIEBIESKIEGO"); } //8. noc do północy if((CZAS>=CZASWY)) { blue=0; white=0; Serial.println("NOC"); } //************************************************ //SAMO STEROWANIE // *********************************************** analogWrite(nieb, mocnieb[blue]); analogWrite(bial, mocbia[white]); Serial.print("Niebieski : "); Serial.print(blue); Serial.print(" Bialy : "); Serial.println(white); Serial.print(GODZ); Serial.print(":"); Serial.println(MIN); delay(1000); } Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
roofii1 Zgłoś Napisano 17 Marca 2015 (edytowane) Odgrzebie temat.Czy taki http://allegro.pl/arduino-uno-r3-atmel-atmega328-klon-avr-najtaniej-i5035517234.html podejdzie pod driver LDD-100H? http://www.tme.eu/pl...dcdc/mean-well/ dzięki Edytowane 17 Marca 2015 przez roofii1 (wyświetl historię edycji) Cytuj Akwa 315L+sump 135L,blau scuma 150 na pompie jebao 6500,oświetlenie hybryda 4x39WT5+ledchip 210W,2x koralia II Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Hellvis Zgłoś Napisano 13 Czerwca 2016 Panowie czy u was to wszystko tak płynnie działa ze tylko wrzucacie ten kod w arduino i ładujecie? U mnie za kazdym razem wyskakuje masa błedów, nie wiem czy muszę sciagnąc wcześniej jeszcze jakieś biblioteki czy coś ;/ Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach