Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję
Odbierz rabat na filament!
Ważna
informacja!
Pisanie postów i komentowanie jest już włączone! W przypadku problemów z działaniem forum/bloga proszę o kontakt na adres web@forbot.pl lub na forum w odpowiednim temacie.

Problem z kompilacją kodu.

Autor Wiadomość
gintur 



Posty: 1
Wysłany: 12-08-2017, 19:03   Problem z kompilacją kodu.

Witam
zmajstrowałem sobie na bazie arduino nano sterownik dwóch lamp LED.
Kod który posiadam wyświetla godzinę ,date,temperature zasilacza,sygnał PWM wyrażony w procentach.Kod działa bez problemów.
Wgrywając kod do arduino pobiera on sobieaktualny czas i datę z laptopa.Chciałbym to zmienić i zrobić tak aby datę i czas można było ustawić za pomocą np. 3 przycisków.Znalazłem taki kod ,który wyswietla czas i date i mogę ustawić je przyciskami.Postanowiłem' jakby'' połączyć ze sobą 2 kody i te polecenia które odpowiadają za nastawę czasu i daty przepisałem do mojego pierwszego kodu ,niestety kod nie chce się skompilować .Czy mógłby ktoś mi podpowiedzieć gdzie jest błąd?
Kod programu: Zaznacz cały


#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 CZAS = (now.hour()*60+now.minute());// aktualny czas
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 GODZ=now.hour();
int MIN=now.minute();
int SEC=now.second();
//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);
     }
   

Ostatnio popularny » Kurs Arduino II - #8 - cyfrowy czujnik wilgotności (DHT11)


Postaw piwo autorowi tego posta
 
 
deshipu 




Posty: 1900
Pomógł: 97 razy
Otrzymał 162 piw(a)
Programuję w:
Python, C, Lua
Należę do:
Nigmalabs
Moje roboty:
uKubik, pKubik, Katka, Tote

Wysłany: 13-08-2017, 23:34   

Co to znaczy "nie chce się kompilować"? Dostajesz jakiś błąd? Jaki? W której linii? Próbowałeś przeczytać komunikat o błędzie i zrozumieć jego treść?

Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Wersja do druku

Skocz do:  

Nie rozwiązałeś swojego problemu? Zobacz podobne tematy: Kombinowanie z przer... [ Bascom] Jak zrobić... Jaki język programow... Generowanie przebieg...
lub przeszukaj forum po wybranych tagach: kodu., kompilacja, problem


Powered by phpBB modified by Przemo © 2003 phpBB Group
Popularne kursy: Arduinopodstawy elektroniki