Fórum témák
- • PLC kérdések
- • Retro számítógépek
- • Áramváltó trafóval áram mérés, hogy?
- • Kapcsolóüzemű táp 230V-ról
- • Rádióamatőrök topikja
- • Elektromos távirányítós kapunyitó
- • Kombikazán működési hiba
- • Villanyszerelés
- • Rádió áthangolása, OIRT - CCIR konverter
- • Számítógép hiba, de mi a probléma?
- • ESR mérő
- • Villanypásztor
- • Rossz HDD javítás, mentés
- • Rádió adó építése
- • Klíma beszerelése, fűtés-hűtés házilag
- • Hegesztő inverter javítás
- • Boombox javítás
- • Mosogatógép hiba
- • TV-k tulajdonságai, vásárlás
- • Kapcsolási rajzot keresek
- • Klíma szervizelés, javítás
- • Fejhallgató erősítő
- • Kazettás magnó (deck) javítása
- • TV hiba, mi a megoldás?
- • Audiofil, High End Audio
- • Felajánlás, azaz ingyen elvihető
- • Eredményjelző
- • Gáz fogyasztás monitorozása
- • Crystal radio - detektoros rádió
- • Erősítő mindig és mindig
- • Csere-bere
- • Hűtőgép kompresszor
- • Mosógép vezérlők és általános problémáik
- • Mobiltelefon hiba
- • Sütő javítás
- • Mikrofon előerősítő
- • ESP32 bootloader
- • Autós fejegységek kapcsolási rajza
- • Analóg oszcilloszkóp javítása
- • Hűtőgép probléma
- • Opel Astra elektromos hibák
- • Elfogadnám, ha ingyen elvihető
- • Transzformátor készítés, méretezés
- • Dióda helyettesítés
- • Vezetéknélküli termosztát
- • Oszcilloszkóp, avagy hogyan kell használni?
- • Vicces - mókás történetek
- • A műhely (bemutató topik, ahol az alkotások készülnek)
- • Arduino
- • Tápegységgel kapcsolatos kérdések
- • Labortáp javítás
- • MOSFET-ek
- • Sprint-Layout NYÁK-tervező
- • Tápegység
- • Androidos okos telefonok
» Több friss téma
|
A klónok CH340 Soros-USB illesztőjének drivere ( Letöltés)
Ez lesz az A hozzászólás módosítva: Aug 10, 2016
Ez bekötési rajz!
Nem pedig lib!
Jobb oldali sorkapocs gnd,vcc,sda,scl
Ha erre a bekötésre gondoltál
Nem erre gondoltam, hanem az általad használt RTC libet nem tudom!
De hagyjuk!
villanyszerelő vagyok,nálam a bekötési rajz ilyen
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!
/* @file CustomKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/
#include <Keypad.h>
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int hour;
int minute;
int second;
const byte ROWS = 4; //four rows
const byte COLS = 1; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS] = {'0','1','2','3'};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[1] = {8}; //connect to the column pinouts of the keypad
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup(){
Serial.begin(9600);
Wire.begin();
RTC.begin();
lcd.init();
lcd.begin(20, 4);
lcd.backlight();
digitalWrite(REL1, HIGH);
digitalWrite(REL2, HIGH);
digitalWrite(REL3, HIGH);
digitalWrite (REL4, HIGH );
pinMode(REL1, OUTPUT);
pinMode(REL2, OUTPUT);
pinMode(REL3, OUTPUT);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
if (customKey == '0'){
hour_setting();
} else if (customKey == '1'){
minute_setting();
} else if (customKey == '2'){
sec_settting();
}else{}
}
void hour_setting(){
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
lcd.setCursor(0,0);
lcd.print("Set hour:");
lcd.setCursor(1,1);
lcd.print("OK:3 UP:1 UP:2");
keypressed = Mykeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
hour =hour+1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
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
{
hour =hour-1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
}
void minute_setting()
{
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
lcd.setCursor(0,0);
lcd.print("Set minute:");
lcd.setCursor(1,1);
lcd.print("OK:3 UP:1 UP:2");
keypressed = Mykeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
minute =minute+1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
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
{
minute =minute-1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
}
void sec_settting()
{
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
lcd.setCursor(0,0);
lcd.print("Set sec:");
lcd.setCursor(1,1);
lcd.print("OK:3 UP:1 UP:2");
keypressed = Mykeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
sec =sec+1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
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
{
sec =sec-1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
}
köszi,megnézem A hozzászólás módosítva: 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
Í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!
Én értelek,hogy nehéz és sajnálom ![](/pic/smile/sad.gif) Csak nem értem milyen bekötési rajzot akartál az RTC-ről
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!!!??? ![](/pic/smile/banghead.gif)
És elküldtem az én RTC libemet,amit használok nem?
/* @file CustomKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/
#include <Keypad.h>
#include <Wire.h>
#include "RTClib.h"
//#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
// LiquidCrystal_I2C lcd(0x27, 20, 4);
int hour;
int minute;
int second;
const int REL1 = 7;
const int REL2 = 8;
const int REL3 = 9;
const byte ROWS = 4; //four rows
const byte COLS = 1; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS] = {'0','1','2','3'};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[1] = {8}; //connect to the column pinouts of the keypad
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup(){
Serial.begin(9600);
Wire.begin();
RTC.begin();
//lcd.init();
//lcd.begin(20, 4);
//lcd.backlight();
digitalWrite(REL1, HIGH);
digitalWrite(REL2, HIGH);
digitalWrite(REL3, HIGH);
digitalWrite (REL4, HIGH );
pinMode(REL1, OUTPUT);
pinMode(REL2, OUTPUT);
pinMode(REL3, OUTPUT);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
if (customKey == '0'){
hour_setting();
} else if (customKey == '1'){
minute_setting();
} else if (customKey == '2'){
sec_settting();
}else{}
}
void hour_setting(){
char keypressed;
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
//lcd.setCursor(0,0);
//lcd.print("Set hour:");
//lcd.setCursor(1,1);
//lcd.print("OK:3 UP:1 UP:2");
keypressed =customKeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
hour =hour+1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
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
{
hour =hour-1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
}
void minute_setting()
{
char keypressed;
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
//lcd.setCursor(0,0);
//lcd.print("Set minute:");
//lcd.setCursor(1,1);
//lcd.print("OK:3 UP:1 UP:2");
keypressed = customKeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
minute =minute+1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
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
{
minute =minute-1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
}
void sec_settting()
{
char keypressed;
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
//lcd.setCursor(0,0);
//lcd.print("Set second:");
//lcd.setCursor(1,1);
//lcd.print("OK:3 UP:1 UP:2");
keypressed = customKeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
second =second+1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
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
{
second =second-1; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
}
Most jól működik,értem A hozzászólás módosítva: 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?
Szia! Próbáltam folytatni,de nem jutottam semmire eddig ![](/pic/smile/sad.gif) Ú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
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!
REndben,felrakom. Köszönöm A hozzászólás módosítva: Aug 12, 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 |
![](/pic/post_ranknd.png) |
/ |
![](/pic/post_rankyd.png) |
|
É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 |
![](/pic/post_ranknd.png) |
/ |
![](/pic/post_rankyd.png) |
|
Elvileg igen. Nálam így nem ment egy másik projektben, de azért írtam itt így, mert tényleg így kellene mennie.
Sziasztok. Felrakom az RTC lib-et is,hátha kell
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
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);
Lehet tesztelni!
/* @file Idokapcsolo.ino
|| @version 1.0
|| @author kapu48
|| @contact
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/
#include <Keypad.h>
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
int _year, year_;
int _month, month_;
int _day=32, day_;
int _hour, hour_;
int _minute, minute_;
int _second=60, second_;
const int REL1 = 7;
const int REL2 = 8;
const int REL3 = 9;
const byte ROWS = 4; //four rows
const byte COLS = 1; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS] = {'0','1','2','3'};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[1] = {8}; //connect to the column pinouts of the keypad
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
DateTime now_;
//..............................................................setup()..............................................
void setup(){
Serial.begin(9600);
Wire.begin();
RTC.begin();
lcd.init();
lcd.begin(20, 4);
lcd.backlight();
digitalWrite(REL1, HIGH);
digitalWrite(REL2, HIGH);
digitalWrite(REL3, HIGH);
digitalWrite (REL4, HIGH );
pinMode(REL1, OUTPUT);
pinMode(REL2, OUTPUT);
pinMode(REL3, OUTPUT);
// Ezt csak 1* futatjukle, utánna megjegyzésbe rakjuk és ujra programozzuk
RTC.adjust(DateTime(2016, 8, 14, 10, 0, 0));
}
//..............................................................loop()..............................................
void loop(){
now_ = RTC.now();
lcd.setCursor(0,0);
lcd.print(now_.year());
lcd.print(". ");
if(now_.month() < 10) lcd.print(" ");
lcd.print(now_.month());
lcd.print(". ");
if(now_.day() < 10) lcd.print(" ");
lcd.print(now_.day());
lcd.print(". ");
lcd.setCursor(0,1);
if(now_.hour() < 10) lcd.print(" ");
lcd.print(now_.hour());
lcd.print(": ");
if(now_.minute() < 10) lcd.print(" ");
lcd.print(now_.minute());
lcd.print(": ");
if(now_.second() < 10) lcd.print(" ");
lcd.print(now_.second());
lcd.print(" ");
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
if (customKey == '0'){
hour_setting();
} else if (customKey == '1'){
minute_setting();
} else if (customKey == '2'){
sec_settting();
}else{date_setting();}
}
//.....................................................hour_setting().......................................................
void hour_setting(){
char keypressed;
hour_ = now_.hour();
lcd.setCursor(0,0);
lcd.print("Set hour: ");
lcd.setCursor(1,0);
lcd.print("Ora = ");
if(hour_ < 10) lcd.print(" ");
lcd.print(hour_);
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
delay(100);
lcd.setCursor(6,1);
if(hour_ < 10) lcd.print(" ");
lcd.print(hour_);
keypressed =customKeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
if(hour_ < 24){
hour_++; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}else{
hour_ = 0;
}
}
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
{
if(hour_ > 0){
hour_--; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}else{
hour_ = 23;
} //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
//delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
now_ = RTC.now();
year_ = now_.year();
month_ = now_.month();
day_ = now_.day();
//hour_ = now_.hour();
minute_ = now_.minute();
second_ = now_.second();
RTC.adjust(DateTime(year_, month_, day_, hour_, minute_, second_));
_day=32; // LCD frissítés kényszerítése
_second=60;
}
//...........................................................minute_setting().................................................
void minute_setting()
{
char keypressed;
minute_ = now_.minute();
lcd.setCursor(0,0);
lcd.print("Set perc: ");
lcd.setCursor(0,1);
lcd.print("Perc = ");
if(minute_ < 10) lcd.print(" ");
lcd.print(minute_);
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
delay(100);
lcd.setCursor(7,1);
if(minute_ < 10) lcd.print(" ");
lcd.print(minute_);
keypressed =customKeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
if(minute_ < 60){
minute_++; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}else{
minute_ = 0;
}
}
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
{
if(minute_ > 0){
minute_--; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}else{
minute_ = 59;
} //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
//delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
now_ = RTC.now();
year_ = now_.year();
month_ = now_.month();
day_ = now_.day();
hour_ = now_.hour();
//minute_ = now_.minute();
second_ = now_.second();
RTC.adjust(DateTime(year_, month_, day_, hour_, minute_, second_));
_day=32; // LCD frissítés kényszerítése
_second=60;
}
//............................................................sec_settting()................................................
void sec_settting()
{
char keypressed;
second_ = now_.second();
lcd.setCursor(0,0);
lcd.print("Set second: ");
lcd.setCursor(0,1);
lcd.print("mPerc = ");
if(second_ < 10) lcd.print(" ");
lcd.print(second_);
do { // ez az�rt kell, hogy addig nyomkodjon, mig jo v�laszt nem ad
delay(100);
lcd.setCursor(8,1);
if(second_ < 10) lcd.print(" ");
lcd.print(second_);
keypressed =customKeypad.getKey(); //keypressed v�ltoz� szint�n a setupban kell defini�lni
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
{
if(second_ < 60){
second_++; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}else{
second_ = 0;
}
}
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
{
if(second_ > 0){
second_--; //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}else{
second_ = 59;
} //A sec v�ltoz�t a setupban int k�nt kell defini�lni
}
//delay(100);
} while(keypressed != '3'); // Azaz m�g nem a h�rmas gombot nyomja
now_ = RTC.now();
year_ = now_.year();
month_ = now_.month();
day_ = now_.day();
hour_ = now_.hour();
minute_ = now_.minute();
//second_ = now_.second();
RTC.adjust(DateTime(year_, month_, day_, hour_, minute_, second_));
_day=32; // LCD frissítés kényszerítése
_second=60;
}
//............................................................date_settting()................................................
void date_setting(){
// TODO!
char keypressed;
lcd.setCursor(0,0);
lcd.print("Set date: ");
lcd.setCursor(0,1);
delay(100);
//year_ =
//month_ =
//day_ =
now_ = RTC.now();
//year_ = now_.year();
//month_ = now_.month();
//day_ = now_.day();
hour_ = now_.hour();
minute_ = now_.minute();
second_ = now_.second();
RTC.adjust(DateTime(year_, month_, day_, hour_, minute_, second_));
_day=32; // LCD frissítés kényszerítése
_second=60;
}
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
Nagyon Köszönöm! Tesztelem
loop() Kód kibővítve az LCD írásának szürésével:
void loop(){
now_ = RTC.now();
if(_day != now_.day()){ // LCD frissítés szükséges?
_day != now_.day();
lcd.setCursor(0,0);
lcd.print(now_.year());
lcd.print(". ");
if(now_.month() < 10) lcd.print(" ");
lcd.print(now_.month());
lcd.print(". ");
if(now_.day() < 10) lcd.print(" ");
lcd.print(now_.day());
lcd.print(". ");
}
if(_second != now_.second()){ // LCD frissítés szükséges?
_second = now_.second();
lcd.setCursor(0,1);
if(now_.hour() < 10) lcd.print(" ");
lcd.print(now_.hour());
lcd.print(": ");
if(now_.minute() < 10) lcd.print(" ");
lcd.print(now_.minute());
lcd.print(": ");
if(now_.second() < 10) lcd.print(" ");
lcd.print(now_.second());
lcd.print(" ");
}
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
if (customKey == '0'){
hour_setting();
} else if (customKey == '1'){
minute_setting();
} else if (customKey == '2'){
sec_settting();
}else{date_setting();}
}
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
|
|