Show Posts
Pages: 1 ... 499 500 [501] 502 503 ... 740
7501  International / Generale / Re: Arduino ethernet problemi on: November 28, 2011, 03:31:36 pm
l'UPnP serve per aprire le porte... credo che il discovery di un nuovo nodo avvenga sul livello IP o quelli più bassi, mentre l'uPnP o è allo stesso livello di TCP e UDP o il livello sopra
7502  International / Generale / Re: puntatori a funzioni on: November 28, 2011, 03:30:00 pm
in che senso implementazione?

hai in mano tutti i costrutti C e alcuni costrutti C++
7503  International / Generale / Re: puntatori a funzioni on: November 28, 2011, 03:15:27 pm
beh aspetta non è "solo"...
per esempio, per quello che vuoi fare, tu crei la classe base e poi l'utente la estende, con le funzioni da implementare chiamate "astatte", in modo da obbligare l'implementazione. Di solito si fornisce una anche classe che implementa la classe vituale non facendo niente, sopratutto se le funzioni astratte sono molte ma se ne usano poche.

Però probabilmente i puntatori a funzioni sono più intuitivi per i novellini, che non sono costretti a estendere la tua classe smiley
7504  International / Generale / Re: puntatori a funzioni on: November 28, 2011, 02:14:40 pm
?? le classi in pratica sono delle struct che contengono, oltre che variabili, puntatori a funzioni... oltre che molte altre chicche.

se spieghi bene quello che vuoi fare... credo ti serva l'overloading dei metodi
7505  International / Generale / Re: Problema alimentazione arduino stazione meteorologica on: November 28, 2011, 01:10:00 pm
la via più facile è staccare la corrente: se usi un transistor NPN (ma quà qualcuno mi corregga se dico baggianate), metti l'entrata a 5v o 3v (dipende a quanto va alimentato il sensore), il comando su un pin arduino, e l'uscita al sensore.

Il transistor si comporta da interruttore: quindi passa corrente SOLO quando il pin di arduino è HIGH (il contrario con un transistor PNP, che però vuol dire che per spegnere il sensore devi consumare corrente per tenere il pin di arduino su HIGH)

l'arduino invece è un poco più complicato, io non l'ho mai fatto, ma so che può essere messo a dormire fichè non arriva un segnale su di un suo PIN: e questo segnale è l'allarme dell'RTC, che puio impostare da arduino ogni tot.

in pratica:
SETUP:
1. avvio arduino
2. setti la sveglia
3. spegni i sensori
4. sleep di arduino

LOOP:
5. passa il tempo
6. suona la sveglia
7. accendi i sensori
8. fai le letture e le salvi
9. risetti la sveglia (se necessario, ovvero non è in auto-ripetizione ogni tot)
10. torni a dormire e ricominci dal punto 5

Questo funziona solo se il tuo RTC supporta la modalità "sveglia"

in oltre arduino consuma di meno se lo fai funzionare più lentamente: puoi togliere il clock esterno, e usare quello interno da 8MHz, o addirittura abbassarlo se non erro fino ad 1MHz.
Ovviamente questa operazione funziona solo se non usi un arduino, ma se ti stai facendo il circuito da solo.
7506  International / Generale / Re: Problema alimentazione arduino stazione meteorologica on: November 28, 2011, 12:27:32 pm
a parte il sensore metano, che abiamo detto consuma un sacco, grazie all'RTC e con un poco di pratica puoi mettere in sleep tutti i sensori + arduino, finhè non scatta l'allarme dell'RTC (la sveglia!), arduino se ne accorge, si sveglia, sveglia i sensori, logga tutto, e torna a dormire.

se immaginiamo che fai una sola lettura del carbonio all'ora, anzichè usare il sensore 24H su 24H, riduci di molto il suo consumo! (usa un transistor per dealimentare correttamente i sensori, meglio un NPN, in modo che per spegnerli spegni il pin in uscita di arduino, risparmiando pure su quello!)

x l'ethernet shield mi pare una spesa inutile... se porti in giro l'arduino, tanto vale scaricare i dati via USB...

su internet ci sono molti negozi, RS-online è anche in italia ed è un grosso distributore di componenti, però tipo gli arduino non li ha, ha gli atmega da cui puoi fare uno stand-alone.
2 negozi al 100% italiani sono robot-italy e gioblu
7507  International / Generale / Re: puntatori a funzioni on: November 28, 2011, 11:48:36 am
Ciao ragazzi, stò cercando una piccola info, su arduino esistono i puntatori a funzione ? perchè sto creando una piccola libreria per arduino e mi servirebbe sapere se l'utente ha implementato o meno alcune funzioni.
Grazie!

scusa, ma non risparmieresti un sacco di grattacapi usando le classi?
7508  International / Megatopic / Re: swRTC on: November 27, 2011, 07:43:24 pm
@aventrax: giusto per farti felice (e insegnarti qualcosa di nuovo):
Code:
if (rtc.getMonth() < 10) { Serial.print((String("0") + String(rtc.getMonth(), DEC))); }
  else { Serial.print(rtc.getMonth(),DEC) ;}

diventa:

Code:
rtc.getMonth() < 10 ? Serial.print("0");
Serial.print(rtc.getMonth(),DEC) ;

come ci sono arrivato(ovvero il trucco del mestiere)?
passaggio N1: ottimizziamo... String(rtc.getMonth(), DEC) la devi eseguire sia che l'if sia vero che sia falso... quindi va fuori dall'IF così lo scrivi una volta sola... quindi diventa:
(notare che rimanendo String("0") da sola, quindi senza il bisogno di essere concatenata con un altra stringa, si può evitare... In oltre è buona cosa identare il codice.
Code:
if (rtc.getMonth() < 10) {
    Serial.print("0");
}
Serial.print(rtc.getMonth()) ;

Passaggio N2:
un if che deve eseguire una sola istruzione, e quindi non necessita di {}, per esempio:
Code:
if (a==b)
  faiC();
else
  faiD();

più essere scritto:
Code:
a==b?faiC():faiD();

ovviamente non avevamo bisogno dell'else (i due punti) e quindi l'ho omesso nel codice, esattamente come un if normale. CREDO che si possano usare le parentesi graffe lo stesso con questa tipologia di if, ma l'uso lo sconsinglio per una questione di leggibilità: un else è facile da trovare, un : no.
7509  International / Generale / Re: Arduino ethernet problemi on: November 26, 2011, 08:52:15 am
anche il fatto che la eth prenda vita se collegata al pc mi sembra strano.... alchune schede di rete moderne possono switchare internamente i 2 piedini dei cavi ethernet, in modo che di fatto non gli servano i cavi incrociati... e non credo che questo l'arduino lo passa fare. Controlla bene i cavi, il fatto che funzionino bene col PC non esclude che siano cross, e che su arduino non funzionino.

anche l'alimentazione va fatta seriamente, come dicevano prima usa un alimentatore da almeno 1A, così andiamo sul sicuro.

Infine prova le porte del router col PC, soprattutto se sono router marchiati dalle compagnie telefoniche, alcune funzionalità vengono escluse, altra fonte di problemi.

Infine devi considerare che se hai fastweb, è un poco più difficile impostare la rete, perchè hai un IP per ogni porta fisica... meglio andare di DHCP per evitare casini.
7510  Community / Bar Sport / Re: [OT EX TREME :D] Lo spamm bar on: November 26, 2011, 08:44:20 am
Ho un problema...

Allora... vediamo se riesco a spiegarlo... antani come se fosse la supercazzola dell'ISP ha ruotato a destra il microchip che ha perso i contatti con la sbiriguda del piedino anfetaminico di messa a massa del telaio anafilattico senza profilassi dentale su Vcc.
soluzione:
siringona di adrenalina diretta nel cuore...
7511  International / Generale / Re: info sulla teoria di funzionamento del ricv IR on: November 26, 2011, 08:02:10 am
scrivere

Code:
#define B 1
#define D 1
#define F 1

vuol dire che da ora in poi nel codice ogni D, F e B saranno sostituite con un 1.... Non è assolutamente quello che ti serve!

il codice
Code:
if((results.value, HEX) == B)
    if((results.value, HEX) == F)
    if((results.value, HEX) == D){
    digitalWrite(13,HIGH);
    }

per essere corretto deve essere:
Code:
if((results.value, HEX) == 'B')
    if((results.value, HEX) == 'F')
    if((results.value, HEX) == 'D'){
    digitalWrite(13,HIGH);
    }

notare l'apice singolo: vuol dire che quei B F e D vanno considerati come lettera (UNA sola lettera) e non come variabile. ovviamente i #define dovrai toglierli, oppure rischi che quando compili tutte le lettere B D e F vengano sostituite da 1 e poi è ovvio che il tuo codice non funzioni....
però questo funziona solo le results.value() restituisce un carattere alla volta, se inveece te li da tutti insieme la cosa si complica un poco.
7512  International / Generale / Re: info sulla teoria di funzionamento del ricv IR on: November 25, 2011, 01:52:05 pm
la prima domanda: questi dati stampati sono frutto della codifica operata dalla libreria e si possono già usare come elementi di comparazione in uno sketch con l'operatore if per esempio?
sì, come qualsiasi dato del C

se si, come si usano nell'operatore if per dirgli di comparare non un numero ma una stringa alfanumerica?
semplice, metti l'if in un ciclo e testi ogni singola lettera... poi ovvio che esiste una funziona già fatta in C nella libreria string.h ed è la strcmp, oppure l'OGGETTO String.h di arduino possiede il metodo compare()....





[/quote]
7513  International / Generale / Re: Forum lento on: November 25, 2011, 12:00:45 pm
riquito, complimenti per l'analisi
7514  International / Generale / Re: Arduino ethernet problemi on: November 25, 2011, 11:51:26 am
ok, allora un'altra prova: alcune USB non erogano abbastanza miliampere per reggere lo shield, prova ad alimetare arsuino con un alimentatore esterno!
7515  International / Generale / Re: Si possono usare i pin 0 1 (rx e tx)? on: November 25, 2011, 11:48:46 am
o anche creando due RX TX virtuali con newSoftSerial, così puoi usare 2 pin a piacimento. con i2c devi usare i 2 pin SCL e SDA, ma la comunicazione è molto più veloce
Pages: 1 ... 499 500 [501] 502 503 ... 740