31-07-2016, 11:59
Witam - mam hi problem z kompilacja programu:
komunikat który się pojawia:
link do projektu:
http://majsterkowo.pl/naswietlarka-lamin...wietlanie/
na moje pytanie odnośnie błędu autor nie odpowiada - proszę o pomoc.
pozdrawiam Jacek.
Kod:
#include <math.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <EEPROM.h>
byte xxpg[8] = {0b11111, 0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000}; // panel gora
byte xxpd[8] = {0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111, 0b11111, 0b11111}; //panel dol
byte xxpo[8] = {0b11111, 0b11111, 0b11111, 0b00000, 0b00000, 0b11111, 0b11111, 0b11111}; //panele oba
byte xxstrzalka[8] = {0b00000, 0b01000, 0b11100, 0b11110, 0b11111, 0b11110, 0b11100, 0b01000}; //strzalka
LiquidCrystal_I2C lcd(0x38,16,2);
int encoderPin1 = 3; //
int encoderPin2 = 2; //
volatile int lastEncoded = 0; // ENKODER
volatile long encoderValue = 1; //
long lastencoderValue = 0; //
int lastMSB = 0; //
int lastLSB = 0; //
int H1 = 7; //przekaznik panel gora
int H2 = 8; //przekaznik panel dol
int buzzer = 4; //buzzer
int button_e = 11; //przycisk - enkoder
int encl = 2; //przerwanie - enkoder nr 1
int encp = 3; //przerwanie - enkoder nr 2
byte ekspmin[5] = {0,0,0,0,0}; //minuty ekspozycji
byte ekspsek[5] = {0,0,0,0,0}; //sekundy ekspozycji
byte panel[5] = {0,0,0,0,0};//zaswiecany panel
byte ekspal[5] = {0,0,0,0,0}; //alarm po ekspozycji
byte ciemnia[5] = {0,0,0,0,0}; //ciemnia
byte ciemmin[5] = {0,0,0,0,0}; //minuty ciemnia
byte ciemsek[5] = {0,0,0,0,0}; //sekundy ciemnia
byte ciemal[5] = {0,0,0,0,0}; //alarm po ciemni
byte temp[8] = {0,0,0,0,0,0,0,0};
byte miejsce = 0;
byte z = 0; //Poczatek wszystkiego
byte enko = 1; //wybrany program
byte poz = 0;
unsigned long czas, czas2, czasall;//czas do porwnania - millis, czas wcisniecia przycisku
void setup(){
pinMode(encoderPin1, INPUT);
pinMode(encoderPin2, INPUT);
digitalWrite(encoderPin1, HIGH);
digitalWrite(encoderPin2, HIGH);
attachInterrupt(0, updateEncoder, CHANGE);
attachInterrupt(1, updateEncoder, CHANGE);
pinMode(H1, OUTPUT);
pinMode(H2, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(button_e, INPUT);
lcd.init();
lcd.setCursor(0,0);
lcd.print("-BeGie------v1.1");
lcd.setCursor(0,1);
lcd.print("UV LED EXP. BOX ");
lcd.createChar(1, xxpg);
lcd.createChar(2, xxpd);
lcd.createChar(3, xxpo);
lcd.createChar(4, xxstrzalka);
for (int i=0; i < 5; i++){ //zaswiecany panel (EEPROM 0 - 4)
panel[i] = EEPROM.read(i);
}
for (int i=0; i < 5; i++){ //minuty ekspozycji (EEPROM 5 - 9)
ekspmin[i] = EEPROM.read(i+5);
}
for (int i=0; i < 5; i++){ //sekundy ekspozycji (EEPROM 10 - 14)
ekspsek[i] = EEPROM.read(i+10);
}
for (int i=0; i < 5; i++){ //alarm po ekspozycji (EEPROM 15 - 19)
ekspal[i] = EEPROM.read(i+15);
}
for (int i=0; i < 5; i++){ //ciemnia (EEPROM 20 - 24)
ciemnia[i] = EEPROM.read(i+20);
}
for (int i=0; i < 5; i++){ //minuty ciemnia(EEPROM 25 - 29)
ciemmin[i] = EEPROM.read(i+25);
}
for (int i=0; i < 5; i++){ //minuty sekundy(EEPROM 30 - 34)
ciemsek[i] = EEPROM.read(i+30);
}
for (int i=0; i < 5; i++){ //alarm po ciemni(EEPROM 35 - 39)
ciemal[i] = EEPROM.read(i+35);
}
delay(2000);
lcd.clear();
menu();
}
void menu(){
switch (miejsce){
case 0:
if(z == 0){
encoderValue = enko;
z = 1;
}
if(encoderValue < 1){ encoderValue = 5;}
if(encoderValue > 5){ encoderValue = 1;}
lcd.setCursor(0,0);
lcd.print("Profil ");
lcd.print(encoderValue);
lcd.print("/5 ");
lcd.setCursor(0,1);
switch (panel[encoderValue - 1]){
case 0: lcd.write(1); break;
case 1: lcd.write(2); break;
case 2: lcd.write(3); break;
}
lcd.setCursor(1,1);
if(ekspmin[encoderValue - 1] < 10){
lcd.print("0");
lcd.print(ekspmin[encoderValue - 1]);
} else {
lcd.print(ekspmin[encoderValue - 1]);
}
lcd.setCursor(3,1);
lcd.print(":");
lcd.setCursor(4,1);
if(ekspsek[encoderValue - 1] < 10){
lcd.print("0");
lcd.print(ekspsek[encoderValue - 1]);
} else {
lcd.print(ekspsek[encoderValue - 1]);
}
if(ekspal[encoderValue - 1] == 1){
if(ciemnia[encoderValue - 1] == 1){
lcd.write(4);
lcd.print("A");
lcd.write(4);
} else{
lcd.write(4);
lcd.print("A ");
}
} else{
if(ciemnia[encoderValue - 1] == 1){
lcd.print(" ");
lcd.write(4);
lcd.print(" ");
} else{
lcd.print(" ");
}
}
if(ciemnia[encoderValue - 1] == 1){
lcd.setCursor(9,1); //CIEMNIA
if(ciemmin[encoderValue - 1] < 10){
lcd.print("0");
lcd.print(ciemmin[encoderValue - 1]);
} else {
lcd.print(ciemmin[encoderValue - 1]);
}
//lcd.setCursor(11,1);
lcd.print(":");
//lcd.setCursor(12,1);
if(ciemsek[encoderValue - 1] < 10){
lcd.print("0");
lcd.print(ciemsek[encoderValue - 1]);
} else {
lcd.print(ciemsek[encoderValue - 1]);
}
//lcd.setCursor(14,1);
if(ciemal[encoderValue - 1] == 1){
lcd.write(4);
lcd.print("A");
} else {
lcd.print(" ");
}
} else{
lcd.setCursor(9,1);
lcd.print(" ");
}
//
if (digitalRead(button_e) == HIGH){
do{
delay(50);
}while (digitalRead(button_e) == HIGH);
lcd.clear();
delay(200);
miejsce = 1;
z = 0;
enko = encoderValue;
}
menu();
break;
case 1:
if(z == 0){
encoderValue = 1;
z = 1;
lcd.setCursor(0,0);
lcd.print("Profil ");
lcd.print(enko);
lcd.print(" ");
}
if(encoderValue < 1){ encoderValue = 3;}
if(encoderValue > 3){ encoderValue = 1;}
lcd.setCursor(0,1);
switch (encoderValue) {
case 1: lcd.print("1.Start "); break; //1.Start
case 2: lcd.print("2.Modyfikuj "); break; //2.Modyfikacja
case 3: lcd.print("3.Cofnij "); break; //3.Powrót
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
z = 0;
if(encoderValue == 1){start();}
if(encoderValue == 2){miejsce = 2;}
if(encoderValue == 3){miejsce = 0;}
}
menu();
break;
case 2: //USTAWIANIE PANELI
if(z == 0){
encoderValue = panel[enko - 1];
z = 1;
//lcd.print("-BeGie----------");
lcd.setCursor(0,0);
lcd.print("Ktory panel wl.?");
}
if(encoderValue < 0){ encoderValue = 2;}
if(encoderValue > 2){ encoderValue = 0;}
lcd.setCursor(0,1);
switch (encoderValue) {
case 0: lcd.write(1); lcd.print("1.Gorny "); break;
case 1: lcd.write(2); lcd.print("2.Dolny "); break;
case 2: lcd.write(3); lcd.print("3.Oba "); break;
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
temp[0] = encoderValue;
z = 0;
miejsce = 3;
}
menu();
break;
case 3: //USTAWIANIE MINUT EKSPOZYCJI
if(z == 0){
encoderValue = ekspmin[enko - 1];
z = 1;
lcd.setCursor(0,0);
lcd.print("Czas ekspozycji?");
czas = millis();
}
if(encoderValue < 0){ encoderValue = 45;}
if(encoderValue > 45){ encoderValue = 0;}
lcd.setCursor(0,1);
if (czas + 700 > millis()){
if(encoderValue < 10){
lcd.print("0");
lcd.print(encoderValue);
} else {
lcd.print(encoderValue);
}
} else {
if (czas + 1000 > millis()){
lcd.print(" ");
} else {
czas = millis();
}
}
lcd.setCursor(2,1);
lcd.print(":");
if(ekspsek[enko - 1] < 10){
lcd.print("0");
lcd.print(ekspsek[enko - 1]);
} else {
lcd.print(ekspsek[enko - 1]);
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
temp[1] = encoderValue;
z = 0;
miejsce = 4;
}
menu();
break;
case 4: //USTAWIANIE SEKUND EKSPOZYCJI
if(z == 0){
encoderValue = ekspsek[enko - 1];
z = 1;
lcd.setCursor(0,0);
lcd.print("Czas ekspozycji?");
czas = millis();
}
lcd.setCursor(5,1);
lcd.print(" ");
if (temp[1] == 0){
if(encoderValue < 5){ encoderValue = 59;}
if(encoderValue > 59){ encoderValue = 5;}
} else {
if(encoderValue < 0){ encoderValue = 59;}
if(encoderValue > 59){ encoderValue = 0;}
}
//if(encoderValue < 0){ encoderValue = 59;}
//if(encoderValue > 59){ encoderValue = 0;}
lcd.setCursor(0,1);
if(temp[1] < 10){
lcd.print("0");
lcd.print(temp[1]);
} else {
lcd.print(temp[1]);
}
lcd.print(":");
lcd.setCursor(3,1);
if (czas + 700 > millis()){
if(encoderValue < 10){
lcd.print("0");
lcd.print(encoderValue);
} else {
lcd.print(encoderValue);
}
} else {
if (czas + 1000 > millis()){
lcd.print(" ");
} else {
czas = millis();
}
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
temp[2] = encoderValue;
z = 0;
miejsce = 5;
}
menu();
break;
case 5: //USTAWIANIE ALARMU PO EKSPOZYCJI
if(z == 0){
encoderValue = ekspal[enko - 1];
z = 1;
lcd.setCursor(0,0);
//lcd.print("-BeGie----------");
lcd.print("Alarm po eksp.? ");
}
if(encoderValue < 0){ encoderValue = 1;}
if(encoderValue > 1){ encoderValue = 0;}
lcd.setCursor(0,1);
switch (encoderValue) {
case 0: lcd.print("1.Brak alarmu "); break;
case 1: lcd.print("2.Alarm "); break;
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
temp[3] = encoderValue;
z = 0;
miejsce = 6;
}
menu();
break;
case 6: //WL/WYL CIEMNI
if(z == 0){
encoderValue = ciemnia[enko - 1];
z = 1;
lcd.setCursor(0,0);
//lcd.print("-BeGie----------");
lcd.print("Wl/wyl ciemnia? ");
}
if(encoderValue < 0){ encoderValue = 1;}
if(encoderValue > 1){ encoderValue = 0;}
lcd.setCursor(0,1);
switch (encoderValue) {
case 0: lcd.print("1.Wylacz ciemnie"); break;
case 1: lcd.print("2.Wlacz ciemnie "); break;
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
temp[4] = encoderValue;
z = 0;
if(encoderValue == 1){
miejsce = 7;
} else {
miejsce = 10;
}
}
menu();
break;
case 7: //USTAWIANIE MINUT CIEMNI
if(z == 0){
encoderValue = ciemmin[enko - 1];
z = 1;
lcd.setCursor(0,0);
//lcd.print("-BeGie----------");
lcd.print("Czas ciemni? ");
czas = millis();
}
if(encoderValue < 0){ encoderValue = 45;}
if(encoderValue > 45){ encoderValue = 0;}
lcd.setCursor(0,1);
if (czas + 700 > millis()){
if(encoderValue < 10){
lcd.print("0");
lcd.print(encoderValue);
} else {
lcd.print(encoderValue);
}
} else {
if (czas + 1000 > millis()){
lcd.print(" ");
} else {
czas = millis();
}
}
lcd.setCursor(2,1);
lcd.print(":");
if(ciemsek[enko - 1] < 10){
lcd.print("0");
lcd.print(ciemsek[enko - 1]);
} else {
lcd.print(ciemsek[enko - 1]);
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
temp[5] = encoderValue;
z = 0;
miejsce = 8;
}
menu();
break;
case 8: //USTAWIANIE SEKUND CIEMNI
if(z == 0){
encoderValue = ciemsek[enko - 1];
z = 1;
lcd.setCursor(0,0);
//lcd.print("-BeGie----------");
lcd.print("Czas ciemni? ");
czas = millis();
}
lcd.setCursor(5,1);
lcd.print(" ");
if (temp[5] == 0){
if(encoderValue < 5){ encoderValue = 59;}
if(encoderValue > 59){ encoderValue = 5;}
} else {
if(encoderValue < 0){ encoderValue = 59;}
if(encoderValue > 59){ encoderValue = 0;}
}
lcd.setCursor(0,1);
if(temp[5] < 10){
lcd.print("0");
lcd.print(temp[5]);
} else {
lcd.print(temp[5]);
}
lcd.print(":");
lcd.setCursor(3,1);
if (czas + 700 > millis()){
if(encoderValue < 10){
lcd.print("0");
lcd.print(encoderValue);
} else {
lcd.print(encoderValue);
}
} else {
if (czas + 1000 > millis()){
lcd.print(" ");
} else {
czas = millis();
}
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
temp[6] = encoderValue;
z = 0;
miejsce = 9;
}
menu();
break;
case 9: //USTAWIANIE ALARMU PO CIEMNI
if(z == 0){
encoderValue = ciemal[enko - 1];
z = 1;
lcd.setCursor(0,0);
//lcd.print("-BeGie----------");
lcd.print("Alarm po ciemni?");
}
if(encoderValue < 0){ encoderValue = 1;}
if(encoderValue > 1){ encoderValue = 0;}
lcd.setCursor(0,1);
switch (encoderValue) {
case 0: lcd.print("1.Brak alarmu "); break;
case 1: lcd.print("2.Alarm "); break;
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
temp[7] = encoderValue;
z = 0;
miejsce = 10;
}
menu();
break;
case 10: //POTWIERDZENIE
if(z == 0){
encoderValue = 0;
z = 1;
lcd.setCursor(0,0);
//lcd.print("-BeGie----------");
lcd.print("Zapisac zmiany ");
lcd.setCursor(0,1);
lcd.print("profilu ");
lcd.print(enko);
lcd.print("?");
}
if(encoderValue < 0){ encoderValue = 1;}
if(encoderValue > 1){ encoderValue = 0;}
lcd.setCursor(11,1);
switch (encoderValue) {
case 0: lcd.print("-TAK-"); break;
case 1: lcd.print("-NIE-"); break;
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
//lcd.print("-BeGie----------");
lcd.setCursor(0,0);
lcd.print("ZAPISYWANIE... ");
if(encoderValue == 0){ //ZAPISZ
byte y = 0;
for (int i=0; i < 8; i++){
EEPROM.write((enko - 1) + y, temp[i]);
y = y + 5;
delay(50);
}
y = 0;
lcd.setCursor(0,0);
lcd.print("ZAPISANO... ");
} else {
lcd.setCursor(0,0);
lcd.print("ANULOWANO... ");
}
for (int i=0; i < 5; i++){ //zaswiecany panel (EEPROM 0 - 4)
panel[i] = EEPROM.read(i);
}
for (int i=0; i < 5; i++){ //minuty ekspozycji (EEPROM 5 - 9)
ekspmin[i] = EEPROM.read(i+5);
}
for (int i=0; i < 5; i++){ //sekundy ekspozycji (EEPROM 10 - 14)
ekspsek[i] = EEPROM.read(i+10);
}
for (int i=0; i < 5; i++){ //alarm po ekspozycji (EEPROM 15 - 19)
ekspal[i] = EEPROM.read(i+15);
}
for (int i=0; i < 5; i++){ //ciemnia (EEPROM 20 - 24)
ciemnia[i] = EEPROM.read(i+20);
}
for (int i=0; i < 5; i++){ //minuty ciemnia(EEPROM 25 - 29)
ciemmin[i] = EEPROM.read(i+25);
}
for (int i=0; i < 5; i++){ //minuty sekundy(EEPROM 30 - 34)
ciemsek[i] = EEPROM.read(i+30);
}
for (int i=0; i < 5; i++){ //alarm po ciemni(EEPROM 35 - 39)
ciemal[i] = EEPROM.read(i+35);
}
delay(1000);
z = 0;
miejsce = 0;
}
menu();
break;
} //KONIEC GLOWNEGO SWITCH
} //KONIEC MENU
void start(){
switch(miejsce){
case 0:
lcd.clear();
lcd.setCursor(0,0);
lcd.print("START... ");
miejsce = 1;
start();
break;
case 1:
switch(panel[enko - 1]){
case 0:
digitalWrite(H1, HIGH);
digitalWrite(H2, LOW);
break;
case 1:
digitalWrite(H1, LOW);
digitalWrite(H2, HIGH);
break;
case 2:
digitalWrite(H1, HIGH);
digitalWrite(H2, HIGH);
break;
}
miejsce = 2;
z = 0;
start();
break;
case 2:
if(z == 0){
if(ciemnia[enko - 1] == 0){
czas2 = ((ekspmin[enko - 1] * 60) + ekspsek[enko - 1]);
} else{
czas2 = (((ekspmin[enko - 1] * 60) + ekspsek[enko - 1]) + (ciemmin[enko - 1] * 60) + ciemsek[enko - 1]);
czas = ((ekspmin[enko - 1] * 60) + ekspsek[enko - 1]);
}
czasall = czas2;
czas = (czas * 1000) + millis();
czas2 = (czas2 * 1000) + millis();
z = 1;
}
if(poz == 0){
lcd.setCursor(0,0);
lcd.print("Ekspozycja UV ");
lcd.setCursor(15,0);
switch (panel[enko - 1]) {
case 0: lcd.write(1); break;
case 1: lcd.write(2); break;
case 2: lcd.write(3); break;
}
}
if(poz == 2){
lcd.setCursor(0,0);
lcd.print("Ciemnia ");
}
lcd.setCursor(0,1);
lcd.print("Czas: ");
lcd.setCursor(6,1);
if ((((czas2 - millis()) / 1000) / 60) > 9){
lcd.print(((czas2 - millis()) / 1000) / 60);
} else{
lcd.setCursor(6,1);
lcd.print("0");
lcd.setCursor(7,1);
lcd.print(((czas2 - millis()) / 1000) / 60);
}
lcd.setCursor(8,1);
lcd.print(":");
if ((((czas2 - millis()) / 1000) % 60) > 9){
lcd.setCursor(9,1);
lcd.print(((czas2 - millis()) / 1000) % 60);
} else{
lcd.setCursor(9,1);
lcd.print("0");
lcd.setCursor(10,1);
lcd.print(((czas2 - millis()) / 1000) % 60);
}
lcd.setCursor(11,1);
lcd.print(" "); // czyscik
if (((100 - ((czas2 - millis()) / czasall) / 10)) > 99){
lcd.setCursor(12,1);
lcd.print((100 - ((czas2 - millis()) / czasall) / 10));
} else {
if (((100 - ((czas2 - millis()) / czasall) / 10)) > 9){
lcd.setCursor(12,1);
lcd.print(" ");
lcd.print((100 - ((czas2 - millis()) / czasall) / 10));
} else {
lcd.setCursor(12,1);
lcd.print(" ");
lcd.print((100 - ((czas2 - millis()) / czasall) / 10));
}
}
lcd.setCursor(15,1);
lcd.print("%");
if ((((czas - millis()) / 1000) / 60) == 0 && (((czas - millis()) / 1000) % 60) == 0 && poz == 0){ //ALARM KONCA EKSPOZYCJI
if (ciemnia[enko - 1] == 0){
miejsce = 3;
poz = 3;
} else {
miejsce = 3;
poz = 1;
}
}
if ((((czas2 - millis()) / 1000) / 60) == 0 && (((czas2 - millis()) / 1000) % 60) == 0){ //ALARM KONCA
miejsce = 3;
poz = 3;
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ANULOWANO... ");
digitalWrite(H1, LOW);
digitalWrite(H2, LOW);
delay(1000);
lcd.clear();
z = 0;
poz = 0;
miejsce = 0;
menu();
}
start();
break;
case 3:
if(poz == 1){
lcd.setCursor(0,0);
lcd.print(" KONIEC ");
lcd.setCursor(0,1);
lcd.print(" EKSPOZYCJI UV! ");
if(ekspal[enko - 1] == 1){
digitalWrite(buzzer, HIGH);
}
digitalWrite(H1, LOW);
digitalWrite(H2, LOW);
delay(2000);
digitalWrite(buzzer, LOW);
poz = 2;
miejsce = 2;
start();
}
if(poz == 3){
lcd.setCursor(0,0);
lcd.print(" KONIEC ");
lcd.setCursor(0,1);
lcd.print(" PROGRAMU!! ");
digitalWrite(H1, LOW);
digitalWrite(H2, LOW);
if((ciemnia[enko - 1] == 0 && ekspal[enko - 1] == 1) || (ciemnia[enko - 1] == 1 && ciemal[enko - 1] == 1)){
digitalWrite(buzzer, HIGH);
}
if (digitalRead(button_e) == HIGH){
do{
delay(50);
digitalWrite(buzzer, LOW);
} while(digitalRead(button_e) == HIGH);
lcd.clear();
z = 0;
poz = 0;
miejsce = 0;
menu();
}
}
start();
break;
} //KONIEC
} //KONIEC START
void loop(){
}
void updateEncoder(){
int MSB = digitalRead(encoderPin1);
int LSB = digitalRead(encoderPin2);
int encoded = (MSB << 5) |LSB;
int sum = (lastEncoded << 1) | encoded;
if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++;
if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --;
lastEncoded = encoded;
}
komunikat który się pojawia:
Cytat: This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
sketch_jul31a:11: error: invalid conversion from 'int' to 't_backlighPol'
sketch_jul31a:11: error: initializing argument 3 of 'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, t_backlighPol)'
C:\Users\Jacek\Documents\Arduino\libraries\NewliquidCrystal/LiquidCrystal_I2C.h: In function 'void setup()':
C:\Users\Jacek\Documents\Arduino\libraries\NewliquidCrystal/LiquidCrystal_I2C.h:154: error: 'int LiquidCrystal_I2C::init()' is private
sketch_jul31a:63: error: within this context
link do projektu:
http://majsterkowo.pl/naswietlarka-lamin...wietlanie/
na moje pytanie odnośnie błędu autor nie odpowiada - proszę o pomoc.
pozdrawiam Jacek.