• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z kompilacją kodu.
#6
Będzie działał jak znajdę wszystkie błędy al ni wgrasz go nawet do megi bo się nie zmieści i wali błędami.

Kod:
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BACKLIGHT_PIN
LiquidCrystal_I2C lcd(0x3F,16,2);
#include "RTClib.h"
#include<OneWire.h>
#define ONE_WIRE_BUS 2
RTC_DS1307 RTC;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int LED1 = 3;   //lampa nr 1
int LED2 = 5;  // lampa nr 2
int GODZ;
int MIN;
int SEC;
int mocD1;     // do syg PWM
int T = 2;
int Ton=45;  //temp wł/wył wentylatora
int Toff=27; //temp wł/wył wentylatora
int P1=6;    // menu od ustawiania czasu
int P2=7;     // przycisk +
int P3=8;     // przycisk -
int hourupg;
int minupg;
int yearupg;
int monthupg;
int dayupg;
int menu=0;
void setup()
{
  DateTime now = RTC.now();
lcd.setBacklight(HIGH);
lcd.init();                    
lcd.begin(16,2);
lcd.clear();
Wire.begin();
//czas.adjust(DateTime(__DATE__, __TIME__));
pinMode(P1,INPUT);
pinMode(P2,INPUT);
pinMode(P3,INPUT);
pinMode(T,INPUT);   // termometr
pinMode(9,OUTPUT);//wentylator
pinMode(3,OUTPUT);  //lampa led 1
pinMode(5,OUTPUT);  //lampa led 2
Serial.begin(9600);
sensors.begin();
RTC.begin();
//if(! RTC.isrunning())
{
  lcd.println("RTC is NOT running!");
//  RTC.adjust(DataTime(_DATE_,_TIME_));

}
int menu=0;

}
void loop()
{
sensors.requestTemperatures();
lcd.setCursor(11,0);
lcd.print(sensors.getTempCByIndex(0));
if ((sensors.getTempCByIndex(0))> Ton)
{
  digitalWrite(9,LOW);
}
if ((sensors.getTempCByIndex(0)) < Toff)
{
  digitalWrite(9,HIGH);
}

int dzienG = 13;          // rozpoczęcie oświetlenia w godz
int dzienM = 00;        //      w minutach
int nocG = 22;         // ustawienie koniec oswietlenia w godz
int nocM = 00;       // w minutach
int maxD1 = 60;       // ilosc krokow z tablicy
int STEP = 1;
int ZMIANA =60;     //dlugosc rozjasniania lub sciemniania tutaj wynosi 60 min
int czas1=(dzienG*60+dzienM); //obliczenie czas rozjasnienia
int czas2=(nocG*60+nocM);   //obl czasu gaszenia
int CZAS;
//Serial.print(sensors.requestTemperatures());
static int D1;
int mocD1[61] =
{ 0,5,8,11,14,
18,20,25,
28,30,32,36,40,46,50,
  56,58,60,62,68,72,74,78,
   80,84,86,90,94,98,106,
   112,118,120,124,128,130,
   136,138,142,146,150,156,160,164,
   172,176,182,184,192,200,
   204,208,216,220,228,232,238,
   240,244,248,254
      
};
if (CZAS<czas1)
{
  D1= 0;
}
if ((czas1<=CZAS)&&(CZAS<(czas1+ZMIANA)))
{
D1 = ((CZAS-czas1)/STEP);  
}
if (((czas1+ZMIANA)<=CZAS)&&(CZAS<(czas2-ZMIANA)))
{
  D1 = maxD1;
}
if (((czas2-ZMIANA)<=CZAS)&&(CZAS<czas2))
{
D1 = ((czas2-CZAS)/STEP);
}
if (czas2<=CZAS)
{
  D1 = 0;
}
analogWrite(LED1,mocD1[D1]);
analogWrite(LED2,mocD1[D1]);
lcd.setCursor(9,1);
lcd.print("PWM");
lcd.print(' ');
lcd.print((D1*100/maxD1));
lcd.print("%");
  if(digitalRead(P1))
  {
  menu=menu+1;
  }
if(menu==0)
{
  DisplayDateTime();
}
if (menu==1)
{
  DisplaySetHour();
}
if (menu==2)
{
  DisplaySetMinute();
}
if (menu==3)
{
  DisplaySetYear();
}
if (menu==4)
{
  DisplaySetMonth();
}
if (menu==5)
{
  DisplaySetDay();
}
if (menu==6)
{
  StoreAgg();
  delay(500);
  menu=0;
}
delay(100);
}
void DisplayDateTime()
{
DateTime now = RTC.now();
lcd.setCursor(0,1);
  //lcd.print("Hour");
  if (now.hour()<=9)
  {
   lcd.print("0");
  }
lcd.print(now.hour(),DEC);
  hourupg=now.hour();
lcd.print(":");
  if(now.minute()<=9)
  {
   lcd.print("0");
  }
  lcd.print(now.minute(),DEC);
  minupg=now.minute();
  lcd.print(":");
  if (now.second()<=9)
  {
    lcd.print("0");
  }
  lcd.print(now.second(),DEC);
  lcd.setCursor(0,0);
  //lcd.print("Date");
  if (now.day()<=9)
  {
    lcd.print("0");
  }
  lcd.print(now.day(),DEC);
  dayupg=now.day();
  lcd.print("/");
  if (now.month()<=9)
  {
    lcd.print("0");
  }
  lcd.print (now.month(),DEC);
  monthupg=now.month();
  lcd.print("/");
  lcd.print(now.year(),DEC);
  yearupg=now.year();
}
void DisplaySetHour()
{
  lcd.clear();
  DateTime now = RTC.now();
  if(digitalRead(P2)==HIGH)
  {
    if(hourupg==23)
    {
      hourupg=0;
    }
    else
    {
      hourupg=hourupg+1;
    }
   }
   if(digitalRead(P3)==HIGH)
   {
    if(hourupg==0)
    {
      hourupg=23;
    }
    else
    {hourupg=hourupg-1;
    }
   }
   lcd.setCursor(0,0);
   lcd.print("Set time:");
   lcd.setCursor(0,1);
   lcd.print(hourupg,DEC);
   delay(200);
  }
  void DisplaySetMinute()
  {
    lcd.clear();
    if(digitalRead(P2)==HIGH)
    {
      if(minupg==59)
      {
        minupg=0;
      }
      else
      {
        minupg=minupg+1;
      }
    }
    if(digitalRead(P3)==HIGH)
    {
      if(minupg==0)
      {
        minupg=59;
       }
       else
       {
        minupg=minupg-1;
       }
    }
    lcd.setCursor(0,0);
    lcd.print("Set Minutes:");
    lcd.setCursor(0,1);
    lcd.print(minupg,DEC);
    delay(200);
  }
  void DisplaySetYear()
  {
    lcd.clear();
    if(digitalRead(P2)==HIGH)
    {
      yearupg=yearupg+1;
    }
     if(digitalRead(P3)==HIGH)
     {
      yearupg=yearupg-1;
     }
     lcd.setCursor(0,0);
     lcd.print("Set Year:");
     lcd.print(yearupg,DEC);
     delay(200);
  }
     void DisplaySetMonth()
     {
      lcd.clear();
      if(digitalRead(P2)==HIGH)
      {
        if (monthupg==12)
        {
          monthupg=1;
        }
        else
        {
          monthupg=monthupg+1;
        }
      }
      if (digitalRead(P3)==HIGH)
      {
        if (monthupg==1)
        {
          monthupg=12;
        }
        else
        {
          monthupg=monthupg-1;
        }
      }
      lcd.setCursor(0,0);
      lcd.print("Set Month:");
      lcd.setCursor(0,1);
      lcd.print(monthupg,DEC);
      delay(200);
     }
     void DisplaySetDay()
     {
      lcd.clear();
      if(digitalRead(P2)==HIGH)
      {
        if(dayupg==31)
        {
          dayupg=1;
        }
        else
        {
          dayupg=dayupg+1;
        }
      }
      if(digitalRead(P3)==HIGH)
      {
        if (dayupg==1)
        {
          dayupg=31;
        }
        else
        {
          dayupg=dayupg-1;
        }
      }
      lcd.setCursor(0,0);
      lcd.print("Set Day:");
      lcd.setCursor(0,1);
      lcd.print(dayupg,DEC);
      delay(200);
     }
     void StoreAgg()
     {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("SAVING IN");
      lcd.setCursor(0,1);
      lcd.print("PROGRESS");
      RTC.adjust(DateTime(yearupg,monthupg,dayupg,hourupg,minupg,0));
      delay(200);
     }
Jedak się da wgrać ale musisz sam parę rzeczy rozkminić.

usunolem

Kod:
int GODZ=now.hour();
int MIN=now.minute();
int SEC=now.second();

Oraz dodałem
Kod:
int CZAS
-nie wiem co osiągną chciałeś ta zmienia ale była nie zdeklarowana.
[Obrazek: banerelektronika.jpg]



Jeśli pomogłem podziękuj punktem reputacji Wink
 
Odpowiedź
  


Wiadomości w tym wątku
Problem z kompilacją kodu. - przez gintur - 12-08-2017, 19:19
RE: Problem z kompilacją kodu. - przez adix - 12-08-2017, 20:49
RE: Problem z kompilacją kodu. - przez gintur - 12-08-2017, 21:46
RE: Problem z kompilacją kodu. - przez adix - 13-08-2017, 13:44
RE: Problem z kompilacją kodu. - przez gintur - 13-08-2017, 13:50
RE: Problem z kompilacją kodu. - przez adix - 13-08-2017, 13:53

Skocz do:


Przeglądający: 1 gości