NANO и I2C LCD2004 vs UNO

Нет ответов
mrGoReC
Offline
Зарегистрирован: 16.06.2015

Собрал систему на Uno и I2C LCD2004

кусок кода:

    if(regim==3)// режим Установка Вроемени Таймера 1 полива
                                {
                                   Timer=EEPROM_read_byte(4);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[3]\6CT TA\7MEP 1- ");
                                      if (Timer==0) lcd.print("B\2K");
                                      if (Timer==1) lcd.print("BK ");
                                   TstartHour=EEPROM_read_byte(5);
                                   TstartMinute=EEPROM_read_byte(6);
                                   TstopHour=EEPROM_read_byte(7);
                                   TstopMinute=EEPROM_read_byte(8);
                                   // Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       if (TstartHour<10){lcd.print("0");}
                                   lcd.print(TstartHour);
                                   lcd.print(":");
                                       if (TstartMinute<10){lcd.print("0");}
                                   lcd.print(TstartMinute);
                                  lcd.print(" ");
                                   lcd.setCursor(10,1);
                                   lcd.print("B\2K\5=");
                                   lcd.setCursor(15,1);
                                       if (TstopHour<10){lcd.print("0");}
                                   lcd.print(TstopHour);
                                   lcd.print(":");
                                       if (TstopMinute<10){lcd.print("0");}
                                   lcd.print(TstopMinute);
                                   lcd.setCursor(0,2);
                                   lcd.print("\4 B C \3 \4 C B Bce +");
                             int myArray[7]={0,2,4,6,8,10,12};
                             byte i;
                             for (i=0;i<7;i++)
                             {
                               if (EEPROM_read_byte(24+i)==1) {lcd.setCursor(myArray[i],3);lcd.print(char(94));}
                               if (EEPROM_read_byte(24+i)==0) {lcd.setCursor(myArray[i],3);lcd.print(" ");}
                             }
                             
                             
                             
                                        
                                 {lcd.setCursor(1,3);lcd.print(" ");}
                                 {lcd.setCursor(3,3);lcd.print(" ");}
                                  if (EEPROM_read_byte(24)==0 or EEPROM_read_byte(25)==0 or EEPROM_read_byte(26)==0 or EEPROM_read_byte(27)==0 or EEPROM_read_byte(28)==0 or EEPROM_read_byte(29)==0 or EEPROM_read_byte(30)==0) {lcd.setCursor(15,3);lcd.print(" ");}                                 
                                  if (EEPROM_read_byte(24)==1&&EEPROM_read_byte(25)==1&&EEPROM_read_byte(26)==1&&EEPROM_read_byte(27)==1&&EEPROM_read_byte(28)==1&&EEPROM_read_byte(29)==1&&EEPROM_read_byte(30)==1) {lcd.setCursor(15,3);lcd.print(char(94));}                                 
                                  lcd.setCursor(17,3);
                                  lcd.print("<->");
                                         
                                        lcd.blink();
                                        if (button==5 && flag==1) posic++;
                                        if (button==2 && flag==1) posic--;
                                              if (posic==0)
                                                      {
                                                        lcd.setCursor(19,0);
                                                       if (button==3 && flag==1)
                                                           { if (Timer < 1)  Timer++;
                                                           else
                                                            Timer = 0;
                                                            EEPROM_write_byte(4,Timer);}
                                                         if (button==4 && flag==1) 
                                                           { if (Timer > 0)  Timer--;
                                                           else
                                                            Timer = 1;
                                                            EEPROM_write_byte(4,Timer);} 
                                                       } 
                                              if (posic==1)
                                                       {
                                                        lcd.setCursor(5,1);
                                                       if (button==3 && flag==1)
                                                           { if (TstartHour < 23)  TstartHour++;
                                                           else
                                                            TstartHour = 0;
                                                            EEPROM_write_byte(5,TstartHour);}
                                                         if (button==4 && flag==1) 
                                                           { if (TstartHour > 0)  TstartHour--;
                                                           else
                                                            TstartHour = 23;
                                                            EEPROM_write_byte(5,TstartHour);} 
                                                      }       
                                               if (posic==2)
                                                       {
                                                         lcd.setCursor(8,1);
                                                         if (button==3 && flag==1)
                                                           { if (TstartMinute < 59)  TstartMinute++;
                                                           else
                                                            TstartMinute = 0;
                                                            EEPROM_write_byte(6,TstartMinute);}
                                                        if (button==4 && flag==1) 
                                                           { if (TstartMinute > 0)  TstartMinute--;
                                                           else
                                                            TstartMinute = 59;
                                                            EEPROM_write_byte(6,TstartMinute);}
                                                       }       
                                               if (posic==3)
                                                      {
                                                        lcd.setCursor(16,1);
                                                         if (button==3 && flag==1)
                                                           { if (TstopHour < 23)  TstopHour++;
                                                           else
                                                            TstopHour = 0;
                                                            EEPROM_write_byte(7,TstopHour);}
                                                         if (button==4 && flag==1) 
                                                           { if (TstopHour > 0)  TstopHour--;
                                                           else
                                                            TstopHour = 23;
                                                            EEPROM_write_byte(7,TstopHour);}
                                                      }       
                                               if (posic==4)
                                                      {
                                                       lcd.setCursor(19,1);
                                                       if (button==3 && flag==1)
                                                           { if (TstopMinute < 59)  TstopMinute++;
                                                           else
                                                            TstopMinute = 0;
                                                            EEPROM_write_byte(8,TstopMinute);}
                                                         if (button==4 && flag==1) 
                                                           { if (TstopMinute > 0)  TstopMinute--;
                                                           else
                                                            TstopMinute = 59;
                                                            EEPROM_write_byte(8,TstopMinute);}
                                                       }
                                               if (posic==5)  //устанавливаем дни недели для будильника "Все сразу"
                                                       {/*
                                                         lcd.setCursor(15,2);
                                                         if (button==3 && flag==1)
                                                           { 
                                                           if (Tday < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                                  byte i;
                                                                  for (i=0;i<7;i++)  EEPROM_write_byte(24+i,Tday);
                                                          
                                                       }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (Tday > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                                 byte i;
                                                                 for (i=0;i<7;i++)  EEPROM_write_byte(24+i,Tday);
                                                            
                                                           } */
                                                      }
                                                if (posic==6)  //устанавливаем будильника ПH
                                                       {
                                                         lcd.setCursor(0,2);
                                                         if (button==3 && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(24) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(24,Tday);
                                                            }
                                                        if (button==4 && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(24) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(24,Tday);
                                                           } 
                                                      }
                                                if (posic==7)  //устанавливаем для будильника BT
                                                       {
                                                         lcd.setCursor(2,2);
                                                         if (button==3 && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(25) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(25,Tday);
                                                            }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(25) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(25,Tday);
                                                           } 
                                                      }
                                                  if (posic==8)  //устанавливаем для будильника СР
                                                       {
                                                         lcd.setCursor(4,2);
                                                         if (button==3 && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(26) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(26,Tday);
                                                            }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(26) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(26,Tday);
                                                           } 
                                                      }
                                                 if (posic==9)  //устанавливаем для будильника ЧТ
                                                       {
                                                         lcd.setCursor(6,2);
                                                         if (button==3 && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(27) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(27,Tday);
                                                            }
                                                        if (button==4 && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(27) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(27,Tday);
                                                           } 
                                                      }
                                                 if (posic==10)  //устанавливаем для будильника ПТ
                                                       {
                                                         lcd.setCursor(8,2);
                                                         if (button==3 && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(28) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(28,Tday);
                                                            }
                                                        if (button==4 && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(28) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(28,Tday);
                                                           } 
                                                      }
                                                 if (posic==11)  //устанавливаем для будильника СБ
                                                       {
                                                         lcd.setCursor(10,2);
                                                         if (button==3 && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(29) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(29,Tday);
                                                            }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(29) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(29,Tday);
                                                           } 
                                                      }
                                                 if (posic==12)  //устанавливаем для будильника ВС
                                                       {
                                                         lcd.setCursor(12,2);
                                                         if (button==3 && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(30) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(30,Tday);
                                                            }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(30) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(30,Tday);
                                                           } 
                                                      }
                                               
                                               
                                               
                                               if (posic==13) posic=0;//возврат в начало
                                         }

Все работало. код не менялся.

UNO заменил  на NANO v.3 и началось, курсор мигающий должен перемещаться по позициям для изменения значений переменных, но од перемещается на 1 позицию и потом сразу на 19,1 которой нет в команде setCursor.

мож кто сталкивался с такой проблемой, подскажите.