Show Posts
Pages: [1] 2 3
1  International / Software / Re: Ritardo nella lettura del sensore on: April 10, 2014, 10:00:40 am
Quello script utilizza la funzione portc che non è disponibile su tutte le porte, io ho il dht11 collegato sul pin a8
2  International / Software / Re: Ritardo nella lettura del sensore on: April 09, 2014, 01:04:12 am
Posso immaginare che la libreria DHT comunichi con il sensore tramite stringhe seriali, secondo voi mi conviene cercare di modificare la libreria? E' la strada migliore?
3  International / Software / Ritardo nella lettura del sensore on: April 07, 2014, 03:26:47 pm
Salve, stasera vi porto un altro mio problema, grazie della pazienza  smiley-red
Nel mio progetto utilizzo un sensore DHT11 (temperatura e umidità) leggo i dati tramite l'apposita libreria "DHT" il problema è che il tempo impiegato per la lettura varia tra 1 e 3 secondi ritardando il resto dei processi.
Un esempio pratico è l'orario che visualizzo su un display, nella funzione loop aggiorno questo orario prendendolo da un modulo RTC esterno una volta al secondo, quando leggo il sensore l'orario salta direttamente 2 o 3 secondi per il tempo impiegato nella lettura.
Se mi trovassi su altre piattaforme la prima cosa che farei è inserire la funzione di lettura del sensore su un thread secondario  che andrebbe ad aggiornarmi la variabile che poi stampo sull'lcd, però ho visto che i processi simultanei sono abbastanza macchinosi con arduino, ci sono alternative?
Grazie a tutti, buona serata.
4  International / Hardware / Re: Delucidazioni sull'alimentazione di arduino e componenti esterni. on: April 07, 2014, 03:18:31 pm
Innanzitutto grazie per la risposta, ho capito che non conviene alimentare troppe "periferiche" con arduino.
Nel caso utilizzassi un alimentatore esterno, sempre da 5v dovrei collegarci direttamente i componenti e mettere in comune la massa con arduino?
Facciamo l'esempio di un sensore a 3 pin:
-VCC
-GND
-DATA
collego VCC ai +5v dell'alimentatore, DATA ad un pin di arduino e GND lo collego alla massa sia dell'alimentatore che di arduino, corretto?
Grazie ancora.
5  International / Hardware / Delucidazioni sull'alimentazione di arduino e componenti esterni. on: April 05, 2014, 09:08:29 pm
Salve il progetto su cui mi sto applicando in questi giorni consiste in un arduino mega a cui sono collegati:
- una scheda da 8 relè
- una real time clock che mantine salvata l'ora
- un display 128x64
- una serie di sensori di umidità, temperatura e umidità del terreno.
Il problema che mi si è verificato durante i vari test (con alimentazione usb) è una drastica diminuzione della luminosità del display, tale da renderlo illeggibile, alla chiusura dei relè.
Alimentando arduino con un trasformatore a 12volt 3A questo non accade ma ancora il progetto non è finito quindi collegherò altri componenti.

Questi fatti mi hanno fatto sorgere alcune domande a cui spero qualcuno abbia delle risposte:
-Se la richiesta di corrente dei vari componenti collegati supera quella che può fornire arduino cosa succede? si spegne? viene limitata? rischio di danneggiare arduino?
-Nel caso volessi fornire maggiore corrente dovrei collegare un alimentatore a 5 volt in parallelo ai pin +5 e GND di arduino? ci sono alternative?

Grazie e buona serata.
6  International / Software / Re: problema con array di int on: January 18, 2014, 06:16:26 pm
Alleggerendo il codice e trasformando l'array in in char sono riuscito a far partire il codice anche senza l'utilizzo di PROGMEM, anche se credo diventerà necessario con l'avanzare del progetto.
Vi ringrazio molto e colgo l'occasione per chiedervi ancora un paio di cose:
C'è la possibilità di vedere quanta RAM si utilizza? o almeno essere avvertiti quando è piena?
Sempre in questo programma converto i caratteri in int per confrontarli con l'array semplicemente facendo:
Code:
Serial.print((int)'c');
però arrivo solo fino al 127 carattere, cioè all'ascii non esteso, è normale o sono ancora problemi di memoria? c'è modo di comprenderlo tutto fino al 256esimo?
Se inserisco un carattere tipo "°" che è il 167esimo mi esce il numero "-15696" e succede una cosa simile con gli altri.
grazie ancora.
7  International / Software / Re: problema con array di int on: January 18, 2014, 09:53:53 am
Scusa non avevo capito. Pensandoci potresti avere ragione.
Tornando al progetto che per ora è molto semplice
Code:
#include "LCD12864RSPI.h"
#include "font.h"

#define FONT_HEIGHT 9

void setup()
{
   Serial.begin(9600);
   LCDA.initDriverPin(2,7,10);
   LCDA.Initialise();
   delay(100);
   LCDA.CLEAR();
   delay(100);
   
   Serial.println(fontLookup[65]);
}
void loop()
{
}
gli array sono in font.h
Code:
unsigned char fontPixel[69][9] = {
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //   (0x20)
    { 0x00, 0x04, 0x0a, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x00 }, // A (0x41)
    { 0x00, 0x1e, 0x11, 0x11, 0x1e, 0x11, 0x11, 0x1e, 0x00 }, // B (0x42)
    { 0x00, 0x0e, 0x11, 0x10, 0x10, 0x10, 0x11, 0x0e, 0x00 }, // C (0x43)
    { 0x00, 0x1c, 0x12, 0x11, 0x11, 0x11, 0x12, 0x1c, 0x00 }, // D (0x44)
    { 0x00, 0x1f, 0x10, 0x10, 0x1e, 0x10, 0x10, 0x1f, 0x00 }, // E (0x45)
    { 0x00, 0x1f, 0x10, 0x10, 0x1e, 0x10, 0x10, 0x10, 0x00 }, // F (0x46)
    { 0x00, 0x0e, 0x11, 0x10, 0x17, 0x11, 0x11, 0x0f, 0x00 }, // G (0x47)
    { 0x00, 0x11, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x11, 0x00 }, // H (0x48)
    { 0x00, 0x0e, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x00 }, // I (0x49)
    { 0x00, 0x07, 0x02, 0x02, 0x02, 0x02, 0x12, 0x0c, 0x00 }, // J (0x4a)
    { 0x00, 0x11, 0x12, 0x14, 0x18, 0x14, 0x12, 0x11, 0x00 }, // K (0x4b)
    { 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x00 }, // L (0x4c)
    { 0x00, 0x11, 0x1b, 0x15, 0x15, 0x11, 0x11, 0x11, 0x00 }, // M (0x4d)
    { 0x00, 0x11, 0x11, 0x19, 0x15, 0x13, 0x11, 0x11, 0x00 }, // N (0x4e)
    { 0x00, 0x0e, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00 }, // O (0x4f)
    { 0x00, 0x1e, 0x11, 0x11, 0x1e, 0x10, 0x10, 0x10, 0x00 }, // P (0x50)
    { 0x00, 0x0e, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0e, 0x00 }, // 0 (0x30)
    { 0x00, 0x04, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x00 }, // 1 (0x31)
    { 0x00, 0x0e, 0x11, 0x01, 0x02, 0x04, 0x08, 0x1f, 0x00 }, // 2 (0x32)
    { 0x00, 0x1f, 0x02, 0x04, 0x02, 0x01, 0x11, 0x0e, 0x00 }, // 3 (0x33)
    { 0x00, 0x02, 0x06, 0x0a, 0x12, 0x1f, 0x02, 0x02, 0x00 }, // 4 (0x34)
    { 0x00, 0x1f, 0x10, 0x1e, 0x01, 0x01, 0x11, 0x0e, 0x00 }, // 5 (0x35)
    { 0x00, 0x06, 0x08, 0x10, 0x1e, 0x11, 0x11, 0x0e, 0x00 }, // 6 (0x36)
    { 0x00, 0x1f, 0x11, 0x01, 0x02, 0x04, 0x04, 0x04, 0x00 }, // 7 (0x37)
    { 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x11, 0x11, 0x0e, 0x00 }, // 8 (0x38)
    { 0x00, 0x0e, 0x11, 0x11, 0x0f, 0x01, 0x02, 0x0c, 0x00 }, // 9 (0x39)
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00 }, // . (0x2e)
    { 0x00, 0x00, 0x06, 0x06, 0x00, 0x06, 0x06, 0x00, 0x00 }, // : (0x3a)
    { 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00 }, // - (0x2d)
    { 0x00, 0x0e, 0x11, 0x11, 0x11, 0x15, 0x12, 0x0d, 0x00 }, // Q (0x51)
    { 0x00, 0x1e, 0x11, 0x11, 0x1e, 0x14, 0x12, 0x11, 0x00 }, // R (0x52)
    { 0x00, 0x0e, 0x11, 0x10, 0x0e, 0x01, 0x11, 0x0e, 0x00 }, // S (0x53)
    { 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00 }, // T (0x54)
    { 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00 }, // U (0x55)
    { 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0a, 0x04, 0x00 }, // V (0x56)
    { 0x00, 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0a, 0x00 }, // W (0x57)
    { 0x00, 0x11, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x11, 0x00 }, // X (0x58)
    { 0x00, 0x11, 0x11, 0x0a, 0x04, 0x04, 0x04, 0x00, 0x00 }, // Y (0x59)
    { 0x00, 0x1f, 0x01, 0x02, 0x04, 0x08, 0x10, 0x1f, 0x00 }, // Z (0x5a)
    { 0x00, 0x00, 0x00, 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x00 }, // a (0x61)
    { 0x00, 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x1e, 0x00 }, // b (0x62)
    { 0x00, 0x00, 0x00, 0x0e, 0x10, 0x10, 0x11, 0x0e, 0x00 }, // c (0x63)
    { 0x00, 0x01, 0x01, 0x0d, 0x13, 0x11, 0x11, 0x0f, 0x00 }, // d (0x64)
    { 0x00, 0x00, 0x00, 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x00 }, // e (0x65)
    { 0x00, 0x06, 0x09, 0x08, 0x1c, 0x08, 0x08, 0x08, 0x00 }, // f (0x66)
    { 0x00, 0x00, 0x00, 0x0f, 0x11, 0x0f, 0x01, 0x0e, 0x00 }, // g (0x67)
    { 0x00, 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00 }, // h (0x68)
    { 0x00, 0x04, 0x00, 0x04, 0x0c, 0x04, 0x04, 0x0e, 0x00 }, // i (0x69)
    { 0x00, 0x02, 0x00, 0x06, 0x02, 0x02, 0x12, 0x0c, 0x00 }, // j (0x6a)
    { 0x00, 0x10, 0x10, 0x12, 0x14, 0x18, 0x14, 0x12, 0x00 }, // k (0x6b)
    { 0x00, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x00 }, // l (0x6c)
    { 0x00, 0x00, 0x00, 0x1a, 0x15, 0x15, 0x15, 0x15, 0x00 }, // m (0x6d)
    { 0x00, 0x00, 0x00, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00 }, // n (0x6e)
    { 0x00, 0x00, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00 }, // o (0x6f)
    { 0x00, 0x00, 0x00, 0x1e, 0x11, 0x1e, 0x10, 0x10, 0x00 }, // p (0x70)
    { 0x00, 0x00, 0x00, 0x0d, 0x13, 0x0f, 0x01, 0x01, 0x00 }, // q (0x71)
    { 0x00, 0x00, 0x00, 0x16, 0x19, 0x10, 0x10, 0x10, 0x00 }, // r (0x72)
    { 0x00, 0x00, 0x00, 0x0e, 0x10, 0x0e, 0x01, 0x1e, 0x00 }, // s (0x73)
    { 0x00, 0x08, 0x08, 0x1c, 0x08, 0x08, 0x09, 0x06, 0x00 }, // t (0x74)
    { 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x13, 0x0d, 0x00 }, // u (0x75)
    { 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x0a, 0x04, 0x00 }, // v (0x76)
    { 0x00, 0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0a, 0x00 }, // w (0x77)
    { 0x00, 0x00, 0x00, 0x11, 0x0a, 0x04, 0x0a, 0x11, 0x00 }, // x (0x78)
    { 0x00, 0x00, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x0e, 0x00 }, // y (0x79)
    { 0x00, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f, 0x00, 0x00 }, // z (0x7a)
    { 0x0c, 0x12, 0x12, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00 }, // @ (0x40)
    { 0x00, 0x0c, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00 }, // ' (0x27)
    { 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00 }  // " (0x22)
};

unsigned int fontLookup[256] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 29, 27, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 0, 0, 0, 0, 0, 66, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

La libreria LCD12864RSPI serve per gestire l'LCD.
Ho notato che array più corti o persino fontLookup se tagliato non hanno problemi, quindi vorrei chiederti se c'è il modo di verificare se è la RAM e nel caso come posso ottimizzare il tutto.

Grazie.
8  International / Software / Re: problema con array di int on: January 18, 2014, 09:34:16 am
Innanzituto grazie per l'interessamente, sono su un arduino uno e durante la compilazione il progetto pesa 6192bytes e mi viene detto che quelli disponibili sono 32k.
9  International / Software / problema con array di int on: January 18, 2014, 09:26:19 am
Nel tentativo di  modificare una libreria per uno schermo lcd mi sono trovato davanti ad un problema al quale non riesco a venire a capo:
Ho questo array:
Code:
unsigned int fontLookup[256] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 29, 27, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 0, 0, 0, 0, 0, 66, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
che in base al valore int di un determinato carattere mi restituisce la posizione di quest'ultimo all'interno di un secondo array.
il problema è che non mi restituisce i valori corretti, ad esempio con questo codice:
Code:
Serial.println(fontLookup[65]);
mi viene stampato "59141" (naturalmente senza virgolette) quando invece dovrebbe essere "1" cioè che corrisponderebbe ad "A".
Ho l'impressione che mi sfugga qualcosa di basilare, ma ci sto prendendo la testa.
Grazie a tutti e buona giornata.
10  International / Hardware / Re: Comando remoto fotocamera lumix on: January 02, 2014, 08:28:41 am
Potrebbe essere, ma partendo io dallo schema di un comando manuale, la cui unica prova della messa a fuoco arriva da un suono emesso dalla fotocamera, non lo posso verificare.
Inoltre nella maggior parte delle applicazioni che può avere il mio circuito, il cui obbiettivo finale è la creazione di filmati time-lapse, si usa una messa a fuoco fissa in modo che non vi siano variazioni.
11  International / Hardware / Re: Comando remoto fotocamera lumix on: December 28, 2013, 11:04:22 am
Nel circuito che ho assemblato, così come nello scatto remoto manuale da cui ho preso spunto, non sono collegati a niente, poi non so se la macchina li utilizza per altre funzioni.
12  International / Hardware / Re: Comando remoto fotocamera lumix on: December 27, 2013, 11:05:12 pm
Grazie a tutti per l'aiuto, sono riuscito a realizzare quello che volevo, purtroppo non ho trovato i H11F1M dal mio rivenditore, ma con il tester ho trovato la polarità e risolto con dei normali optoisolatori polarizzati.
Il voltaggio con cui la fotocamera alimenta lo scatto remoto è di 3.1v.
Nel caso qualcuno fosse interessato carico lo schema (perdonatemi è solo uno schizzo a mano) e una foto del circuito assemblato su basetta millefori.





Grazie ancora e buona giornata.
13  International / Hardware / Re: Comando remoto fotocamera lumix on: December 11, 2013, 04:19:00 pm
Grande idea, come immaginavi la macchina è alimentata a 8.4V, domani provo con 2 fotoaccoppiatori e vi faccio sapere.
Grazie 1000.
14  International / Hardware / Re: Comando remoto fotocamera lumix on: December 11, 2013, 03:39:52 pm
E' proprio questo il problema, il controllo remoto è semplicemente quello riportato nello schema, è del tutto passivo.
Per questo l'unico sistema a cui ho pensato per creare un circuito galvanicamente isolato che potesse sostituire il controllo remoto è stato tramite 2 relè.
15  International / Hardware / Comando remoto fotocamera lumix on: December 11, 2013, 03:03:05 pm
Sera a tutti, volevo controllare lo scatto della mia fotocamera tramite arduino, questa macchina fotografica dispone di un ingresso apposito per un comando remoto manuale, dopo aver smontato quest'ultimo ho ricavato il suo schema di funzionamento, che è questo:



Come si può notare è molto semplice, i pulsanti variano la resistenza ai capi di un jack da 2.5mm, la mia idea era di realizzare un circuito analogo al comando manuale sostituendo i 2 pulsanti con dei relè controllati da uscite digitali di arduino, arrivando al punto la mia domanda è:
E' la soluzione migliore? c'è la possibilità di farlo senza i relè in modo più efficiente?

P.S.
Può sembrare una domanda stupida ma colgo queste occasioni per amplicare la mia basica conoscenza di elettronica.
Buona serata a tutto il forum.
Pages: [1] 2 3