Pages: [1] 2 3   Go Down
Author Topic: RTC come aggiustare la data da un telecomando  (Read 1315 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
volevo variare la data del mio RTC ma con il telecomando.
ho una funzione che legge i valori del telecomando:
tipo:
 
Code:

switch (results.value) {
 
    case 0xFF6897: 
            numero = 0;
              break;
             case 0xFF30CF: 
            numero = 1;
              break;
...
}
return numero;

ma vorrei un consiglio su come modificare:
 
Code:
RTC.adjust(DateTime(__DATE__, __TIME__));

questa la considero una stringa?
non penso che basti fare l' append dei dati che ricevo via IR?

cosa ne pensate?

Grazie
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

guarda nella libreria che tipo di dati riceve in ingresso, che libreria stai usando? ci sarà una pagina di spiegazione dei metodi in internet...
« Last Edit: July 05, 2013, 06:49:58 am by ƎR » Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Offline Offline
Full Member
***
Karma: 1
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

libreria stai usando?
#include "RTClib.h"

grazie per la risposta.
 Purtroppo non ho trovato nulla a riguardo circa RTC.adjust
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

prova questo:
Code:
RTC.adjust(DateTime (year, month, day, hour, min, sec));
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Offline Offline
Full Member
***
Karma: 1
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie!
se questa è una stringa?
Prima parte risolta...
ma come la compongo dal telecomando?
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie!
se questa è una stringa?
non è una stringa, sono 6 variabili tu imposti il valore di ciascuna di esse per settare la data e l'ora.. prova se funziona
Prima parte risolta...
ma come la compongo dal telecomando?
beh prova prima di dire che è risolto, dando uno sguardo veloce alla libreria mi pareva che così potesse andare

per la composizione dal telecomando hai già provato la barte di capire che tasti sono premuti?
-se si devi strutturare il codice in modo che l'arduino interpreti una sequenza di comandi
-se no dai un'occhiata a questi progetti che usano la libreria IR Remote:
http://www.instructables.com/id/Arduino-IR-Remote-receiver/
http://www.instructables.com/id/The-Easiest-Way-to-Use-Any-IR-Remote-with-Ardiuno/
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Offline Offline
Full Member
***
Karma: 1
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

per il telecomando non ci sono problemi,
con  una funzione leggo i codici e restituisco il numero  corrispondente stampato sul telecomando ad es:
Quote
switch (results.value) {
 case 0xFF6897: 
            numero = 0;
              break;
funzione restituisce return numero;

il difficile è come unire i numeri per comporre
Code:
(year, month, day, hour, min, sec))
;
ecc.
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 57
Posts: 3501
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Da telecomando puoi dare dei numeri ma il difficile è capire a cosa servono.

Come fai a variare l'ora con una sveglia? Schiacci una sequenza di tasti per andare in variazione minuti e poi aumenti/diminuisci i minuti.
Poi schiacci una sequenza di tasti e vai in modifica ore. Anche li poi aumenti/diminuisci.
Il tutto con un feedback all'utente.
Non proprio una cosa semplice.
Oppure hai un telecomando con non solo le cifre ma anche dei tasti con scritto delle funzioni specifiche? ore, minuti, giorno,mese,anno?

Come dai il feedback all'utente? Ha collegato un LCD?
Logged

my name is IGOR, not AIGOR

Offline Offline
Full Member
***
Karma: 1
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non proprio una cosa semplice.
effettivamente....??????
Si uso un lcd.
Stavo anche pensando di inserire una specie di menu per variare  ore, minuti, giorno,mese,anno
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

per il telecomando non ci sono problemi,
con  una funzione leggo i codici e restituisco il numero  corrispondente stampato sul telecomando ad es:
Quote
switch (results.value) {
 case 0xFF6897:  
            numero = 0;
              break;
funzione restituisce return numero;

il difficile è come unire i numeri per comporre
Code:
(year, month, day, hour, min, sec))
;
ecc.

ma quello non è poi così difficile, alla fine sono delle variabili numeriche che tu imposti, il difficile è quello che dice @nid69ita
se non hai un feedback dovresti crearti un codice del tipo premi il tasto menu e poi premi due numeri e così imposti il valore di sec
poi con un altro tasto selezioni i min e gli dici altre due cifre, e così via...
se invece hai un lcd puoi navigare in un menu usando i tasti volume + o - e programmi +/-... con un po' di fantasia fai tutto smiley
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Offline Offline
Full Member
***
Karma: 1
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ma quello non è poi così difficile, alla fine sono delle variabili numeriche che tu imposti, il difficile è quello che dice @nid69ita
Suggeriscimi cortesemente  come unire la sequenza di numeri per fare 16.05
io ho una funzione :

Code:
int numero = telecomando();
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

premesso che tu devi arrivare ad una cosa così:
Code:
unsigned int year=2013;
byte month=7;
byte day=5;
byte hour=16;
byte min=5;
byte sec=0;
RTC.adjust(DateTime (year, month, day, hour, min, sec));

in che modo vuoi procedere con il menu sul lcd o con la sequenza con il telecomando?
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Offline Offline
Full Member
***
Karma: 1
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

in che modo vuoi procedere con il menu sul lcd o con la sequenza con il telecomando?
Il massimo sarebbe entrambe le cose,
Un menu ma da telecomando :-)

Ideona  smiley-small .concat andrebbe bene ma se non sbaglio serve non per numeri ma per stinghe e successimvamente lo ritrasformo con atoi?
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 57
Posts: 3501
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dovresti guardare la libreria MENUWIZ. C'e' un thread nel forum che ne parla. Potresti pilotarla da telecomando, non credo sia difficile.
Di base lavora con dei pulsanti, ma puoi usare una tua funzione che si sostituisce ai tasti. Dovresti avere dei tasti su telecomando che intendi come su, giu, destra, sinistra, okay, annulla  (che non siano i numeri!!!)
Logged

my name is IGOR, not AIGOR

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21619
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
RTC.adjust(DateTime(__DATE__, __TIME__));
__DATE__ e __TIME__ sono costanti predefinite che in fase di compilazione il compilatore sostituisce con l'attuale data e l'attuale orario del computer su cui stai facendo la compilazione.
Logged


Pages: [1] 2 3   Go Up
Jump to: