Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   251 / 854
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 10, 2016 /
 
Ez lesz az
A hozzászólás módosítva: Aug 10, 2016

RTClib.zip
    
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 10, 2016 /
 
Ez bekötési rajz!
Nem pedig lib!
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 10, 2016 /
 
Jobb oldali sorkapocs gnd,vcc,sda,scl
Ha erre a bekötésre gondoltál
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 10, 2016 /
 
Nem erre gondoltam, hanem az általad használt RTC libet nem tudom!
De hagyjuk!
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 10, 2016 /
 
villanyszerelő vagyok,nálam a bekötési rajz ilyen
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 10, 2016 /
 
Ez már a te bajod!

A Keypad használata talán jó?
Mivel nem találja a fordító az RTC libet! Így nem tudom lefordítani!
A többi a te gondod!
  1. /* @file CustomKeypad.pde
  2. || @version 1.0
  3. || @author Alexander Brevig
  4. || @contact alexanderbrevig@gmail.com
  5. ||
  6. || @description
  7. || | Demonstrates changing the keypad size and key values.
  8. || #
  9. */
  10. #include <Keypad.h>
  11. #include <Wire.h>
  12. #include "RTClib.h"
  13. #include <LiquidCrystal_I2C.h>
  14. #include <Keypad.h>
  15.  LiquidCrystal_I2C lcd(0x27, 20, 4);
  16.  RTC_DS1307 RTC;
  17.  
  18.  int hour;
  19.  int minute;
  20.  int second;
  21.  
  22. const byte ROWS = 4; //four rows
  23. const byte COLS = 1; //four columns
  24. //define the cymbols on the buttons of the keypads
  25. char hexaKeys[ROWS] = {'0','1','2','3'};
  26.  
  27.  
  28. byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
  29. byte colPins[1] = {8}; //connect to the column pinouts of the keypad
  30.  
  31. //initialize an instance of class NewKeypad
  32. Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
  33.  
  34. void setup(){
  35.   Serial.begin(9600);
  36.  
  37.  Wire.begin();
  38. RTC.begin();
  39. lcd.init();
  40. lcd.begin(20, 4);
  41. lcd.backlight();
  42.  
  43. digitalWrite(REL1, HIGH);
  44. digitalWrite(REL2, HIGH);
  45. digitalWrite(REL3, HIGH);
  46. digitalWrite(REL4, HIGH);
  47.  
  48.  
  49. pinMode(REL1, OUTPUT);
  50. pinMode(REL2, OUTPUT);
  51. pinMode(REL3, OUTPUT);
  52. pinMode(REL4, OUTPUT);
  53.  
  54.  
  55. }
  56.  
  57. void loop(){
  58.   char customKey = customKeypad.getKey();
  59.  
  60.   if (customKey){
  61.     Serial.println(customKey);  
  62.   }
  63.   if (customKey == '0'){
  64.     hour_setting();
  65.   } else if (customKey == '1'){
  66.     minute_setting();
  67.   } else if (customKey == '2'){
  68.     sec_settting();
  69.   }else{}
  70.  
  71. }
  72.  
  73.  
  74.  void hour_setting(){
  75.          
  76.  
  77.  do {                                                    // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  78.       lcd.setCursor(0,0);
  79.       lcd.print("Set hour:");
  80.       lcd.setCursor(1,1);
  81.       lcd.print("OK:3     UP:1 UP:2");
  82.       keypressed = Mykeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  83.       if (keypressed=='1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  84.         {
  85.           hour =hour+1;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  86.          }
  87.         if (keypressed=='2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  88.         {
  89.           hour =hour-1;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  90.          }
  91.        delay(100);
  92.       } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja
  93.      
  94.  }  
  95.      
  96.  void minute_setting()
  97.  {
  98.  
  99.  do {                                                   // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  100.       lcd.setCursor(0,0);
  101.       lcd.print("Set minute:");
  102.       lcd.setCursor(1,1);
  103.       lcd.print("OK:3     UP:1 UP:2");
  104.       keypressed = Mykeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  105.       if (keypressed=='1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  106.         {
  107.           minute =minute+1;                                   //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  108.          }
  109.         if (keypressed=='2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  110.         {
  111.           minute =minute-1;                                   //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  112.          }
  113.        delay(100);
  114.       } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja
  115.      
  116.  }    
  117.    
  118.    
  119.    
  120. void sec_settting()
  121.  {
  122.  
  123.  do {                                                    // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  124.       lcd.setCursor(0,0);
  125.       lcd.print("Set sec:");
  126.       lcd.setCursor(1,1);
  127.       lcd.print("OK:3     UP:1 UP:2");
  128.       keypressed = Mykeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  129.       if (keypressed== '1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  130.         {
  131.           sec =sec+1;                                   //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  132.          }
  133.         if (keypressed== '2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  134.         {
  135.           sec =sec-1;                                   //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  136.          }
  137.        delay(100);
  138.       } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja
  139.  
  140. }
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 10, 2016 /
 
köszi,megnézem
A hozzászólás módosítva: Aug 10, 2016
(#) Daszkalosz válasza Daszkalosz hozzászólására (») Aug 10, 2016 /
 
Arduino: 1.6.4 (Windows 8.1), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

sketch_aug10b.ino: In function 'void loop()':
sketch_aug10b:64: error: 'keypressed' was not declared in this scope
sketch_aug10b:64: error: 'Mykeypad' was not declared in this scope
sketch_aug10b.ino: In function 'void hour_setting()':
sketch_aug10b:88: error: 'keypressed' was not declared in this scope
sketch_aug10b:88: error: 'Mykeypad' was not declared in this scope
sketch_aug10b:98: error: 'keypressed' was not declared in this scope
sketch_aug10b.ino: In function 'void minute_setting()':
sketch_aug10b:110: error: 'keypressed' was not declared in this scope
sketch_aug10b:110: error: 'Mykeypad' was not declared in this scope
sketch_aug10b:120: error: 'keypressed' was not declared in this scope
sketch_aug10b.ino: In function 'void sec_settting()':
sketch_aug10b:134: error: 'keypressed' was not declared in this scope
sketch_aug10b:134: error: 'Mykeypad' was not declared in this scope
sketch_aug10b:137: error: 'sec' was not declared in this scope
sketch_aug10b:141: error: 'sec' was not declared in this scope
sketch_aug10b:144: error: 'keypressed' was not declared in this scope
'keypressed' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.

Ezt írja ki
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 10, 2016 /
 
Írtam miért nem tudtam tesztelni.
Korántsem kész a kód. (Nehéz veled 1 – 2-re menni!)

Javítgassad ki a hibákat!
Ami hiányzik, az pótoljad!
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 10, 2016 /
 
Én értelek,hogy nehéz és sajnálom Csak nem értem milyen bekötési rajzot akartál az RTC-ről
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 10, 2016 /
 
Ne már!???

Kértem, hogy egy RTC libet válassz amit közösen használhatunk!
Erreföl te küldted a linket a sch-ról!
Vissza irtam, hogy mit küldtél!!!???
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 10, 2016 /
 
És elküldtem az én RTC libemet,amit használok nem?
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 10, 2016 /
 
  1. /* @file CustomKeypad.pde
  2. || @version 1.0
  3. || @author Alexander Brevig
  4. || @contact alexanderbrevig@gmail.com
  5. ||
  6. || @description
  7. || | Demonstrates changing the keypad size and key values.
  8. || #
  9. */
  10. #include <Keypad.h>
  11. #include <Wire.h>
  12. #include "RTClib.h"
  13. //#include <LiquidCrystal_I2C.h>
  14. #include <Keypad.h>
  15. // LiquidCrystal_I2C lcd(0x27, 20, 4);
  16.  RTC_DS1307 RTC;
  17.  
  18.  int hour;
  19.  int minute;
  20.  int second;
  21.  
  22. const int REL1 = 7;
  23.  const int REL2 = 8;
  24.  const int REL3 = 9;
  25.  const int REL4 = 10;
  26.  
  27. const byte ROWS = 4; //four rows
  28. const byte COLS = 1; //four columns
  29. //define the cymbols on the buttons of the keypads
  30. char hexaKeys[ROWS] = {'0','1','2','3'};
  31.  
  32.  
  33. byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
  34. byte colPins[1] = {8}; //connect to the column pinouts of the keypad
  35.  
  36. //initialize an instance of class NewKeypad
  37. Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
  38.  
  39. void setup(){
  40.   Serial.begin(9600);
  41.  
  42.  Wire.begin();
  43. RTC.begin();
  44. //lcd.init();
  45. //lcd.begin(20, 4);
  46. //lcd.backlight();
  47.  
  48. digitalWrite(REL1, HIGH);
  49. digitalWrite(REL2, HIGH);
  50. digitalWrite(REL3, HIGH);
  51. digitalWrite(REL4, HIGH);
  52.  
  53.  
  54. pinMode(REL1, OUTPUT);
  55. pinMode(REL2, OUTPUT);
  56. pinMode(REL3, OUTPUT);
  57. pinMode(REL4, OUTPUT);
  58.  
  59.  
  60. }
  61.  
  62. void loop(){
  63.   char customKey = customKeypad.getKey();
  64.  
  65.   if (customKey){
  66.     Serial.println(customKey);  
  67.   }
  68.   if (customKey == '0'){
  69.     hour_setting();
  70.   } else if (customKey == '1'){
  71.     minute_setting();
  72.   } else if (customKey == '2'){
  73.     sec_settting();
  74.   }else{}
  75.  
  76. }
  77.  
  78.  
  79.  void hour_setting(){
  80.     char keypressed;    
  81.  
  82.  do {                                                    // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  83.       //lcd.setCursor(0,0);
  84.       //lcd.print("Set hour:");
  85.       //lcd.setCursor(1,1);
  86.       //lcd.print("OK:3     UP:1 UP:2");
  87.       keypressed =customKeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  88.       if (keypressed=='1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  89.         {
  90.           hour =hour+1;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  91.          }
  92.         if (keypressed=='2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  93.         {
  94.           hour =hour-1;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  95.          }
  96.        delay(100);
  97.       } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja
  98.      
  99.  }  
  100.      
  101.  void minute_setting()
  102.  {
  103.   char keypressed;
  104.  do {                                                   // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  105.       //lcd.setCursor(0,0);
  106.       //lcd.print("Set minute:");
  107.       //lcd.setCursor(1,1);
  108.       //lcd.print("OK:3     UP:1 UP:2");
  109.       keypressed = customKeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  110.       if (keypressed=='1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  111.         {
  112.           minute =minute+1;                                   //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  113.          }
  114.         if (keypressed=='2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  115.         {
  116.           minute =minute-1;                                   //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  117.          }
  118.        delay(100);
  119.       } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja
  120.      
  121.  }    
  122.    
  123.    
  124.    
  125. void sec_settting()
  126.  {
  127.   char keypressed;
  128.  do {                                                    // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  129.       //lcd.setCursor(0,0);
  130.       //lcd.print("Set second:");
  131.       //lcd.setCursor(1,1);
  132.       //lcd.print("OK:3     UP:1 UP:2");
  133.       keypressed = customKeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  134.       if (keypressed== '1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  135.         {
  136.           second =second+1;                                   //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  137.          }
  138.         if (keypressed== '2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  139.         {
  140.           second =second-1;                                   //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  141.          }
  142.        delay(100);
  143.       } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja
  144.  
  145. }
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 10, 2016 /
 
Most jól működik,értem
A hozzászólás módosítva: Aug 10, 2016
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 10, 2016 /
 
1 es gombra elugrik a minute_setting(); rutinba,
ott megint várja a gomb nyomást amit fel dolgozna! Ha készen lenne a rutin?
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 10, 2016 /
 
Értem
(#) Daszkalosz válasza Daszkalosz hozzászólására (») Aug 12, 2016 /
 
Szia! Próbáltam folytatni,de nem jutottam semmire eddig Úgy meg tudom csinálni,hogy nincs nyomógomb,meg lcd-re való kiíratás.De így sajnos még nem. Tudod még folytatni a kódot? Persze,ha van időd.
Köszönöm türelmed
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 12, 2016 /
 
Ted fel a kódod + az IIC LCD lib-et mert nincsen időm keresgélni!
Per pillanat éppen 1 másik projecten dolgozok, ezért várnod kel!
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 12, 2016 /
 
REndben,felrakom. Köszönöm
A hozzászólás módosítva: Aug 12, 2016
(#) (Felhasználó 120038) válasza Daszkalosz hozzászólására (») Aug 13, 2016 /
 
Tedd fel neki az rtc lib-t is.

Miért nem ment? Hiába nyomkodtad a gombokat, nem csinált semmit? Ez lehet azért van, mert nem '1' meg '2' ill '3' kell az if-szerkezetekbe, hanem azok ASCII kódjai kellenek oda. De lehet tévedek, nekem mintha korábban írtam volna.
(#) kapu48 válasza (Felhasználó 120038) hozzászólására (») Aug 13, 2016 /
 
Éppen azért van felső vesszők közé téve, hogy karakterként kezelje!
(#) (Felhasználó 120038) válasza kapu48 hozzászólására (») Aug 13, 2016 /
 
Elvileg igen. Nálam így nem ment egy másik projektben, de azért írtam itt így, mert tényleg így kellene mennie.
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 13, 2016 /
 
Sziasztok. Felrakom az RTC lib-et is,hátha kell

RTClib.zip
    
(#) Daszkalosz válasza (Felhasználó 120038) hozzászólására (») Aug 13, 2016 /
 
Szia! Működött,csak ha megnyomtam az 1-es gombot egyet léptetett. Másodszori gombnyomásra már nem reagált,csak akkor,ha a 3-as gombot megnyomtam. Ugyanígy ment a többi gombbal is
(#) (Felhasználó 120038) válasza Daszkalosz hozzászólására (») Aug 13, 2016 /
 
Azt kipróbáltad, hogy pl a hour settingsben kiíratod serial.println-el az értéket soros monitorra?

hour =hour+1;
serial.println(hour);
(#) kapu48 válasza Daszkalosz hozzászólására (») Aug 13, 2016 /
 
Lehet tesztelni!
  1. /* @file Idokapcsolo.ino
  2.     || @version 1.0
  3.     || @author kapu48
  4.     || @contact
  5.     ||
  6.     || @description
  7.     || | Demonstrates changing the keypad size and key values.
  8.     || #
  9.     */
  10.     #include <Keypad.h>
  11.     #include <Wire.h>
  12.     #include "RTClib.h"
  13.     #include <LiquidCrystal_I2C.h>
  14.     #include <Keypad.h>
  15.    
  16.     LiquidCrystal_I2C lcd(0x27, 20, 4);
  17.      RTC_DS1307 RTC;
  18.      int _year, year_;
  19.      int _month, month_;
  20.      int _day=32, day_;
  21.      int _hour, hour_;
  22.      int _minute, minute_;
  23.      int _second=60, second_;
  24.      
  25.      const int REL1 = 7;
  26.      const int REL2 = 8;
  27.      const int REL3 = 9;
  28.      const int REL4 = 10;
  29.      
  30.     const byte ROWS = 4; //four rows
  31.     const byte COLS = 1; //four columns
  32.     //define the cymbols on the buttons of the keypads
  33.     char hexaKeys[ROWS] = {'0','1','2','3'};
  34.      
  35.      
  36.     byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
  37.     byte colPins[1] = {8}; //connect to the column pinouts of the keypad
  38.      
  39.     //initialize an instance of class NewKeypad
  40.     Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
  41.     DateTime now_;
  42.  
  43.  //..............................................................setup()..............................................      
  44.     void setup(){
  45.       Serial.begin(9600);
  46.      
  47.      Wire.begin();
  48.      RTC.begin();
  49.      lcd.init();
  50.      lcd.begin(20, 4);
  51.      lcd.backlight();
  52.      
  53.     digitalWrite(REL1, HIGH);
  54.     digitalWrite(REL2, HIGH);
  55.     digitalWrite(REL3, HIGH);
  56.     digitalWrite(REL4, HIGH);
  57.      
  58.      
  59.     pinMode(REL1, OUTPUT);
  60.     pinMode(REL2, OUTPUT);
  61.     pinMode(REL3, OUTPUT);
  62.     pinMode(REL4, OUTPUT);
  63.      // Ezt csak 1* futatjukle, utánna megjegyzésbe rakjuk és ujra programozzuk
  64.      RTC.adjust(DateTime(2016, 8, 14, 10, 0, 0));
  65.      
  66.     }
  67.  
  68.  //..............................................................loop()..............................................      
  69.     void loop(){
  70.       now_ = RTC.now();
  71.       lcd.setCursor(0,0);
  72.       lcd.print(now_.year());
  73.       lcd.print(". ");
  74.       if(now_.month() < 10) lcd.print(" ");
  75.       lcd.print(now_.month());
  76.       lcd.print(". ");
  77.       if(now_.day() < 10) lcd.print(" ");
  78.       lcd.print(now_.day());
  79.       lcd.print(".  ");
  80.      
  81.       lcd.setCursor(0,1);
  82.       if(now_.hour() < 10) lcd.print(" ");
  83.       lcd.print(now_.hour());
  84.       lcd.print(": ");
  85.       if(now_.minute() < 10) lcd.print(" ");
  86.       lcd.print(now_.minute());
  87.       lcd.print(": ");
  88.       if(now_.second() < 10) lcd.print(" ");
  89.       lcd.print(now_.second());
  90.       lcd.print("   ");
  91.      
  92.       char customKey = customKeypad.getKey();
  93.      
  94.       if (customKey){
  95.         Serial.println(customKey);  
  96.       }
  97.       if (customKey == '0'){
  98.         hour_setting();
  99.       } else if (customKey == '1'){
  100.         minute_setting();
  101.       } else if (customKey == '2'){
  102.         sec_settting();
  103.       }else{date_setting();}
  104.      
  105.     }
  106.      
  107.   //.....................................................hour_setting().......................................................      
  108.      void hour_setting(){
  109.         char keypressed;
  110.  
  111.         hour_ =  now_.hour();
  112.    
  113.         lcd.setCursor(0,0);
  114.         lcd.print("Set hour:          ");  
  115.         lcd.setCursor(1,0);
  116.         lcd.print("Ora = ");  
  117.         if(hour_ < 10) lcd.print(" ");
  118.         lcd.print(hour_);        
  119.      do {                                                    // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  120.            delay(100);
  121.           lcd.setCursor(6,1);
  122.           if(hour_ < 10) lcd.print(" ");
  123.           lcd.print(hour_);
  124.           keypressed =customKeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  125.           if (keypressed=='1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  126.             {
  127.               if(hour_ < 24){
  128.                   hour_++;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  129.                }else{
  130.                   hour_ = 0;
  131.                }
  132.                
  133.              }
  134.             if (keypressed=='2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  135.             {
  136.               if(hour_ > 0){
  137.                   hour_--;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  138.                }else{
  139.                   hour_ = 23;
  140.                }                                //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  141.              }
  142.            //delay(100);
  143.           } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja
  144.         now_ = RTC.now();  
  145.         year_ =  now_.year();
  146.         month_ =  now_.month();
  147.         day_ =  now_.day();
  148.         //hour_ =  now_.hour();
  149.         minute_ =  now_.minute();
  150.         second_ =  now_.second();    
  151.          RTC.adjust(DateTime(year_, month_, day_, hour_, minute_, second_));    
  152.          _day=32;         // LCD frissítés kényszerítése
  153.          _second=60;    
  154.      }  
  155.  
  156.   //...........................................................minute_setting().................................................          
  157.      void minute_setting()
  158.      {
  159.         char keypressed;
  160.        
  161.         minute_ =  now_.minute();
  162.        
  163.         lcd.setCursor(0,0);
  164.         lcd.print("Set perc:          ");  
  165.         lcd.setCursor(0,1);
  166.         lcd.print("Perc = ");  
  167.         if(minute_ < 10) lcd.print(" ");
  168.         lcd.print(minute_);        
  169.      do {                                                    // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  170.            delay(100);
  171.           lcd.setCursor(7,1);
  172.           if(minute_ < 10) lcd.print(" ");
  173.           lcd.print(minute_);
  174.           keypressed =customKeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  175.           if (keypressed=='1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  176.             {
  177.               if(minute_ < 60){
  178.                   minute_++;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  179.                }else{
  180.                   minute_ = 0;
  181.                }
  182.                
  183.              }
  184.             if (keypressed=='2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  185.             {
  186.               if(minute_ > 0){
  187.                   minute_--;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  188.                }else{
  189.                   minute_ = 59;
  190.                }                                //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  191.              }
  192.            //delay(100);
  193.           } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja    
  194.        now_ = RTC.now();
  195.        year_ =  now_.year();
  196.         month_ =  now_.month();
  197.         day_ =  now_.day();
  198.         hour_ =  now_.hour();
  199.         //minute_ =  now_.minute();
  200.         second_ =  now_.second();    
  201.          RTC.adjust(DateTime(year_, month_, day_, hour_, minute_, second_));
  202.           _day=32;         // LCD frissítés kényszerítése
  203.          _second=60;
  204.      }  
  205.        
  206.        
  207.  //............................................................sec_settting()................................................      
  208.     void sec_settting()
  209.      {
  210.         char keypressed;
  211.        
  212.         second_ =  now_.second();
  213.        
  214.         lcd.setCursor(0,0);
  215.         lcd.print("Set second:         ");  
  216.         lcd.setCursor(0,1);
  217.         lcd.print("mPerc = ");
  218.         if(second_ < 10) lcd.print(" ");
  219.         lcd.print(second_);        
  220.      do {                                                    // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
  221.            delay(100);
  222.           lcd.setCursor(8,1);
  223.           if(second_ < 10) lcd.print(" ");
  224.           lcd.print(second_);
  225.           keypressed =customKeypad.getKey();                   //keypressed v�ltoz� szint�n a setupban kell defini�lni
  226.           if (keypressed=='1')                                //Annyit tudni kell itt, hogy most 1-et �rtam be, de neked pl az 1-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  227.             {
  228.               if(second_ < 60){
  229.                   second_++;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  230.                }else{
  231.                   second_ = 0;
  232.                }
  233.                
  234.              }
  235.             if (keypressed=='2')                              //Annyit tudni kell itt, hogy most 2-et �rtam be, de neked pl az 2-es gomb megnyom�s�ra lehet nem ezt adja vissza, hanem azt amit te adt�l meg, sz�val az kell majd neki itt megadni
  236.             {
  237.               if(second_ > 0){
  238.                   second_--;                                 //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  239.                }else{
  240.                   second_ = 59;
  241.                }                                //A sec v�ltoz�t a setupban int k�nt kell defini�lni
  242.              }
  243.            //delay(100);
  244.           } while(keypressed != '3');                         // Azaz m�g nem a h�rmas gombot nyomja    
  245.         now_ = RTC.now();
  246.         year_ =  now_.year();
  247.         month_ =  now_.month();
  248.         day_ =  now_.day();
  249.         hour_ =  now_.hour();
  250.         minute_ =  now_.minute();
  251.         //second_ =  now_.second();    
  252.         RTC.adjust(DateTime(year_, month_, day_, hour_, minute_, second_));    
  253.          _day=32;         // LCD frissítés kényszerítése
  254.          _second=60;
  255.   }
  256.  
  257.  
  258.  
  259. //............................................................date_settting()................................................
  260. void date_setting(){
  261.   // TODO!
  262.         char keypressed;  
  263.        
  264.         lcd.setCursor(0,0);
  265.         lcd.print("Set date:           ");  
  266.         lcd.setCursor(0,1);
  267.        
  268.         delay(100);
  269.         //year_ =  
  270.  
  271.         //month_ =  
  272.  
  273.         //day_ =
  274.        
  275.         now_ = RTC.now();
  276.        
  277.         //year_ =  now_.year();
  278.         //month_ =  now_.month();
  279.         //day_ =  now_.day();
  280.         hour_ =  now_.hour();
  281.         minute_ =  now_.minute();
  282.         second_ =  now_.second();    
  283.         RTC.adjust(DateTime(year_, month_, day_, hour_, minute_, second_));  
  284.          _day=32;         // LCD frissítés kényszerítése
  285.          _second=60;
  286. }


A date_setting() rutin megírása már rátok vár!
Az eddigiek alapján már könnyű lessz!
A hozzászólás módosítva: Aug 13, 2016
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 13, 2016 /
 
Nagyon Köszönöm! Tesztelem
(#) kapu48 válasza kapu48 hozzászólására (») Aug 13, 2016 /
 
loop() Kód kibővítve az LCD írásának szürésével:
  1. void loop(){
  2.       now_ = RTC.now();
  3.      
  4.    if(_day != now_.day()){         // LCD frissítés szükséges?      
  5.       _day != now_.day();
  6.       lcd.setCursor(0,0);
  7.       lcd.print(now_.year());
  8.       lcd.print(". ");
  9.       if(now_.month() < 10) lcd.print(" ");
  10.       lcd.print(now_.month());
  11.       lcd.print(". ");
  12.       if(now_.day() < 10) lcd.print(" ");
  13.       lcd.print(now_.day());
  14.       lcd.print(".  ");
  15.    }
  16.     if(_second != now_.second()){         // LCD frissítés szükséges?  
  17.       _second = now_.second();      
  18.       lcd.setCursor(0,1);
  19.       if(now_.hour() < 10) lcd.print(" ");
  20.       lcd.print(now_.hour());
  21.       lcd.print(": ");
  22.       if(now_.minute() < 10) lcd.print(" ");
  23.       lcd.print(now_.minute());
  24.       lcd.print(": ");
  25.       if(now_.second() < 10) lcd.print(" ");
  26.       lcd.print(now_.second());
  27.       lcd.print("   ");
  28.     }  
  29.       char customKey = customKeypad.getKey();
  30.      
  31.       if (customKey){
  32.         Serial.println(customKey);  
  33.       }
  34.       if (customKey == '0'){
  35.         hour_setting();
  36.       } else if (customKey == '1'){
  37.         minute_setting();
  38.       } else if (customKey == '2'){
  39.         sec_settting();
  40.       }else{date_setting();}
  41.      
  42.  }
(#) kapu48 válasza kapu48 hozzászólására (») Aug 13, 2016 /
 
5. sor hibás:
  1. _day = now_.day();
(#) Daszkalosz válasza kapu48 hozzászólására (») Aug 13, 2016 /
 
Köszönöm,javítottam.
Egy kérdésem lenne! a reléket hogy fogom tudni kapcsolni külön külön? Vagyis minden relének más időpontot adni?
Egy terrárium kapcsolása lenne, 3 lámpa és egy párásító
A hozzászólás módosítva: Aug 13, 2016
Következő: »»   251 / 854
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem