Tym razem belka o wymiarach 80x16cm o mocy 48W. Sterowana jest ona za pomocą arduino nano oraz driverem z wejściem pwm.
Zasilana jest za pomocą zasilacza 12V 5A. Driver ustawiony jest na 4375mA (krzyżyk na schemacie poniżej oznacza rozlutowaną ścieżkę i obniżona natężenie na wyjściu drivera o 625mA).
Diody na belce podzielone zostały na 16 szeregów po 3 diody.
Do projektu użyte zostały diody na chipie 45mil. Temperatury barwowe zostały opisane poniżej
- 4- 4500k
- 6 – 6500k
- 8 – 8500k
- F – full spectrum
Poniższy schemat oraz skrypt są kompletne. W połączeniu z innymi z działu z programami można uzyskać w pełni funkcjonalny komputer akwariowy. Do prawidłowego działania programu potrzebne są biblioteki oraz program do obsługi zegara. Wszystkie te rzeczy można pobrać tutaj.
Skrypt do pobrania
#include <DS1307.h> //użyte biblioteki #include <Wire.h> //użyte biblioteki #define DS1307_ADDRESS 0x68 //zegar byte zero = 0x00; //zegar //***********************opis wyjść************************* int LED1 = 11; //diody 1 int GODZ; //Godzina int MIN; //Minuta int SEC; //Sekundy int dzienG = 10; //początek dnia - godziny int dzienM = 00; //początek dnia - minuty int nocG = 21; //początek nocy - godziny int nocM = 00; //początek nocy - minuty int maxD1 = 60; //maksymalna moc kanału LED1 int ZMIANA = 60; //długość trwania rozjaśniania int STEP = 1; //długość trwania jednego kroku void setup() { Wire.begin(); pinMode(LED1, OUTPUT); //diody Serial.begin(9600); //serial port } void loop() { int CZAS = (GODZ*60+MIN); //aktualna godzina int czas1 = (dzienG*60+dzienM); //początek dnia int czas2 = (nocG*60+nocM); //początek nocy GODZ = (RTC.get(DS1307_HR,true)); //godzina pobierana z RTC MIN = (RTC.get(DS1307_MIN,true)); //minuta pobierana z RTC SEC = (RTC.get(DS1307_SEC,true)); //sekundy pobierana z RTC static int D1; //stopień rozjaśniania LED1 int mocD1[61] = //stopień rozjaśniania LED1 { 255,230,220,210,200,195,190,185,180,175, 170,165,160,155,150,145,140,135,130,125, 120,115,110,105,100,95,90,85,80,75, 70,65,60,55,50,45,40,35,30,25, 20,19,18,17,16,15,14,13,12,11, 10,9,8,7,6,5,4,3,2,1,0 }; if (CZAS<czas1) //noc { D1=0; //digitalWrite(LED1, LOW); Serial.print("noc "); } if ((czas1<=CZAS)&&(CZAS<(czas1+ZMIANA))) //poranek { D1=((CZAS-czas1)/STEP); Serial.print("swit "); } if (((czas1+ZMIANA)<=CZAS)&&(CZAS<(czas2-ZMIANA))) //dzień { D1=maxD1; Serial.print("dzien "); } if(((czas2-ZMIANA)<=CZAS)&&(CZAS<czas2)) //zmrok { D1=((czas2-CZAS)/STEP); Serial.print("zmrok "); } if(czas2<=CZAS) //noc { D1=0; //digitalWrite(LED1, LOW); Serial.print("noc "); } analogWrite(LED1, mocD1[D1]); /*************************** serial monitor **************/ Serial.print("LED:"); Serial.print((D1*100)/maxD1); Serial.print(" "); Serial.print(GODZ); Serial.print(":"); Serial.print(MIN); Serial.print(":"); Serial.print(SEC); Serial.println(" MN-Tech.pl _1pwm "); delay (1000); }