NANO и I2C LCD2004 vs UNO
- Войдите на сайт для отправки комментариев
Втр, 31/05/2016 - 21:29
Собрал систему на 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.
мож кто сталкивался с такой проблемой, подскажите.