Show Posts
Pages: [1]
1  International / Hardware / DIgiPOT a 5v per tensioni da 12v a 24v on: July 10, 2013, 06:50:11 am
Salve ho necessità di poter usare un pot digitale da 100k con tensioni che possono variare tra i 12v e i 24v.

Il pot che utilizzo attualmente è un MCP4261, ma non posso usarlo per tensioni maggiori di 5v, io invece dovrei controllare una resistenza che non si trova sui 5v, ma che può essere di 12 o di 24. Ho pensato di collegare l'uscita del pot alla base di un transistor per poterlo pilotare, ma in base alla tensione tra collettore ed emettitore mi varierebbe il suo modo di funzionare.

Che soluzioni potrei adottare?
grazie
2  International / Megatopic / Re: MENWIZ: una libreria per creare menu su LCD on: May 20, 2013, 12:15:44 pm
Grazie per la risposta, però come vedi ho provato limitandomi a s1,s2,s3, ma non sono riuscito a fare la stessa cosa e quindi ho ripiegato in questo modo, perchè quello che succedeva e che mi si mischiavano le voci dei menù, quando uscivo da un menu mi ritrovavo dentro un'altro e così via.

Sapresti darmi una base di codice pulita per fare cio che vorrei fare io?(intendiamoci non voglio scritto il codice ma un aiutino)

Perchè effettivamante, per come ne sono venuto a capo, penso che mangi davvero tanta ram dal chip, al momento sto testando su un'arduino uno, a breve faro le prove su un mega2560, ma mi preoccupa molto il problema ram, inquanto nella parte di programma qui non esposta è presente un'intera emulazione di protocolle ethernet di un macchinario più diverse altre funzioni di controllo e uso intensivo di ingressi e uscite, e senza l'implementazione del menù ho avuto diversi problemi per colpa della ram, che sudando non poco sono riuscito a risolvere. Mi chiedo quando avrò tra le mani il mega e unirò questa prova di menu al codice gia scritto cosa succederà.

Ti faccio poi un'altra domanda, come vedi mi trovo a dover gestire 4 byte di un'IP, ancora la libreria non gestisce array di byte vero? Ritieni che il mio approccio sia giusto nella gestione dei 4 byte?

grazie ancora
3  International / Megatopic / Re: MENWIZ: una libreria per creare menu su LCD on: May 20, 2013, 11:38:21 am
Vi aggiorno, ho risolto così..

Code:
_menu *r,*s1,*s2,*s3,*s4,*s5,*s6,*s7,*s8,*s9,*s10,*s11;

r=tree.addMenu(MW_ROOT,NULL,F("Main Menu"));
 
    s1=tree.addMenu(MW_SUBMENU,r, F("Operatore"));
      s2=tree.addMenu(MW_VAR,s1, F("Opt"));
        s2->addVar(MW_LIST,&LcRm);
          s2->addItem(MW_LIST, F("Auto"));
          s2->addItem(MW_LIST, F("Manual"));

      s2=tree.addMenu(MW_VAR,s1, F("Luminosita'")); s2->addVar(MW_AUTO_INT,&DispLum,5,100,5); 

    s3=tree.addMenu(MW_SUBMENU,r, F("Tecnico"));

      s6=tree.addMenu(MW_VAR,s3, F("MODE"));
        s6->addVar(MW_LIST,&EmuMode);
          s6->addItem(MW_LIST, F("A"));
          s6->addItem(MW_LIST, F("B"));
          s6->addItem(MW_LIST, F("C"));
          s6->addItem(MW_LIST, F("D"));
          s6->addItem(MW_LIST, F("E"));
          s6->addItem(MW_LIST, F("F"));
          s6->addItem(MW_LIST, F("G"));     

    s4=tree.addMenu(MW_SUBMENU,s3, F("Ethernet"));
      s7=tree.addMenu(MW_SUBMENU,s4, F("IP"));
        s8=tree.addMenu(MW_VAR,s7, F("Blocco A")); s8->addVar(MW_AUTO_BYTE,&IP_a,0,254,1);
        s8=tree.addMenu(MW_VAR,s7, F("Blocco B")); s8->addVar(MW_AUTO_BYTE,&IP_b,0,254,1);
        s8=tree.addMenu(MW_VAR,s7, F("Blocco C")); s8->addVar(MW_AUTO_BYTE,&IP_c,0,254,1);
        s8=tree.addMenu(MW_VAR,s7, F("Blocco D")); s8->addVar(MW_AUTO_BYTE,&IP_d,0,254,1);
     
      s9=tree.addMenu(MW_SUBMENU,s4, F("Gateway"));
        s10=tree.addMenu(MW_VAR,s9, F("Blocco A")); s10->addVar(MW_AUTO_BYTE,&GW_a,0,254,1);
        s10=tree.addMenu(MW_VAR,s9, F("Blocco B")); s10->addVar(MW_AUTO_BYTE,&GW_b,0,254,1);
        s10=tree.addMenu(MW_VAR,s9, F("Blocco C")); s10->addVar(MW_AUTO_BYTE,&GW_c,0,254,1);
        s10=tree.addMenu(MW_VAR,s9, F("Blocco D")); s10->addVar(MW_AUTO_BYTE,&GW_d,0,254,1);

      s11=tree.addMenu(MW_VAR,s4, F("Mask"));
        s11->addVar(MW_LIST,&maskselection);
          s11->addItem(MW_LIST, F("255.255.255.240"));
          s11->addItem(MW_LIST, F("255.255.255.224"));
          s11->addItem(MW_LIST, F("255.255.255.192"));
          s11->addItem(MW_LIST, F("255.255.255.128"));
          s11->addItem(MW_LIST, F("255.255.255.0"));
          s11->addItem(MW_LIST, F("255.255.0.0"));

    s5=tree.addMenu(MW_SUBMENU,s3, F("POT"));
// al momento vuoto andrà un MW_LIST come sopra

       tree.navButtons(UP_BOTTON_PIN,DOWN_BOTTON_PIN,LEFT_BOTTON_PIN,RIGHT_BOTTON_PIN,ESCAPE_BOTTON_PIN,CONFIRM_BOTTON_PIN);


Spero che sia cosa gradita il codice da me scritto e qui postato, visto che ora questo è un chiaro esempio di nodi gerarchici con varie cose implementate, mi chiedevo comunque se questo fosse o meno il giusto approccio, e davvero necessario dover dichiarare tutti questi menù per realizzare la medesima struttura di menù? grazie e a buon rendere smiley-grin
4  International / Megatopic / Re: MENWIZ: una libreria per creare menu su LCD on: May 20, 2013, 09:39:43 am
Salve, inanzi tutto complimenti per questa libreria, però volevo fare un menù un popiù complesso degli esempi base e non riesco, non so se sbaglio io oppure e la libreria che ha questo limite, cerco di spiegarmi al meglio.

Ho la necesità di avere vari sub menu all'interno di altri menu, allego la porzione di codice che ho realizzato fin ora cercando di risolvere l'enigma, quello che mi succede e che non sempre tutte le voci vengono visualizzate, oppure le voci dei menu anche se appartenenti a sub menu diversi mi vengono unite e non riesco a capire per quale motivo.

Code:
r=tree.addMenu(MW_ROOT,NULL,F("Main Menu"));               
    s1=tree.addMenu(MW_SUBMENU,r, F("Operatore"));           
      s2=tree.addMenu(MW_VAR,s1, F("Sense"));         
        s2->addVar(MW_LIST,&list);
        s2->addItem(MW_LIST, F("Automatico"));
        s2->addItem(MW_LIST, F("Manuale"));
      s2=tree.addMenu(MW_VAR,s1, F("Luminosita' schermo"));   
        s2->addVar(MW_AUTO_BYTE,&sp,0,100,1);
    s1=tree.addMenu(MW_SUBMENU,r, F("Tecnico"));             
      s2=tree.addMenu(MW_VAR,s1, F("Emu Mode"));               
        s2->addVar(MW_LIST,&cpmode);
        s2->addItem(MW_LIST, F("A"));
        s2->addItem(MW_LIST, F("B"));
        s2->addItem(MW_LIST, F("C"));
        s2->addItem(MW_LIST, F("D"));
        s2->addItem(MW_LIST, F("E"));
        s2->addItem(MW_LIST, F("F"));   
    s2=tree.addMenu(MW_SUBMENU,s1, F("Ethernet"));
        s3=tree.addMenu(MW_SUBMENU,s2, F("IP"));
          s3=tree.addMenu(MW_VAR,s2, F("Blocco A"));
          s3->addVar(MW_AUTO_BYTE,&sp,0,100,1);
          s3=tree.addMenu(MW_VAR,s2, F("Blocco B"));
          s3->addVar(MW_AUTO_BYTE,&sp,0,100,1);
          s3=tree.addMenu(MW_VAR,s2, F("Blocco C"));
          s3->addVar(MW_AUTO_BYTE,&sp,0,100,1);
          s3=tree.addMenu(MW_VAR,s2, F("Blocco D"));
          s3->addVar(MW_AUTO_BYTE,&sp,0,100,1);
        s3=tree.addMenu(MW_VAR,s2, F("Mask"));
          s3->addVar(MW_LIST,&mask);
          s3->addItem(MW_LIST, F("255.255.255.240"));
          s3->addItem(MW_LIST, F("255.255.255.224"));
          s3->addItem(MW_LIST, F("255.255.255.192"));
          s3->addItem(MW_LIST, F("255.255.255.128"));
          s3->addItem(MW_LIST, F("255.255.255.0"));
          s3->addItem(MW_LIST, F("255.255.0.0"));         
    s2=tree.addMenu(MW_VAR,s1, F("Salva e riavvia"));
      s2->addVar(MW_ACTION,SaveRestart);
       tree.navButtons(UP_BOTTON_PIN,DOWN_BOTTON_PIN,LEFT_BOTTON_PIN,RIGHT_BOTTON_PIN,ESCAPE_BOTTON_PIN,CONFIRM_BOTTON_PIN);

Spero si capisca la logica del menu che voglio realizzare. Preciso che ho anche aumentato i valori massimi di menu nel file .h della libreria, grazie
5  International / Software / Re: arduino due - Ethernet library e LiquidCrystal on: May 04, 2013, 11:19:25 am
Be si, ma non esiste comunque una soluzione? Se ci pensi non poter usare un display lcd e l'ethernet insieme sul due è un po limitante non trovi? sono sicuro che qualcuno avrà riscontrato il mio stesso problema ed avrà trovato un workaround, o almeno lo spero, ora la differenza tra 16 e 86 mhz non mi interessa molto, ma in futuro per progetti più complessi non sarà male!
6  International / Software / Re: arduino due - Ethernet library e LiquidCrystal on: May 04, 2013, 08:22:48 am
Allora, uso la ethernet shield ed un display 4x20, li uso gia in uno sketch senza alcun problema su un'arduino uno r3, uso le porte spi più pin 10 e porta 4 per controllare ethernet ed sdcard e metto sulle restanti digitali tra 2 ed 8 il display. E tutto funziona perfettamente. Se invece sostituisco l'arduino uno con l'arduino due, singolarmente funzionano, cioè creo uno sketch e carico ad esempio solo ethernet library, oppure solo la liquidcrystal, tutto ok, ma se uso le due librerie insieme non vanno.

Il motivo di dover usare l'arduino due e solo una questione di spazio per lo sketch, altrimenti mi sa che ripiegherò sul mega ma visto che si tratta di entrambi in smd avrei preferito il due.

grazie
7  International / Software / arduino due - Ethernet library e LiquidCrystal on: May 04, 2013, 07:59:46 am
Salve, ho notato che singolarmente le due librerie funzionano, invece caricandole entrambe in uno sketch non funzionano!
Qualcuno ha riscontrato lo stesso problema?
8  International / Software / Re: Collegamento in USB e reset LED su pin 13 on: September 27, 2012, 10:39:46 am
Grazie siete stati gentilissimi e molto esaustivi, userò il condensatore per impedirne il reset.
Anche se questo non è troppo comodo, ipotizziamo che io monti un'arduino in una locazione remota collegato a un pc su cui gira vnc, sul pc faccio girare un soft che mi controlla arduino e la connessione con il soft non è perenne, uso il condensatore e risolvo e qua ci siamo, ma se per esempio volessi cambiare sketch da remoto? Potrei usare un relè passo-passo collegato a un pin per aprire o chiudere il circuito del condensatore? Qualcuno ha gia attuato soluzioni simili? Oppure esistono sistemi migliori?
9  International / Software / Collegamento in USB e reset LED su pin 13 on: September 26, 2012, 06:36:34 pm
Salve, è la prima volta che scrivo sul forum visto che è circa 2 giorni che ho un arduino 1 r3.

In pratica dovrei usare l'arduino per comandare dei led sulle uscite digitali, e fin qui nessun problema, li comando tramite porta usb/seriale e fanno quello che devono fare, il problema nasce quando mi scollego da HyperTerminal e mi ricollego, in pratica se accendo per esempio il led sull'uscita 13(quello onboard per intenderci) quando mi scollego rimane acceso e questo ovviamente mi fa pensare che il programma continua a girare, ma non appeno mi ricollego viene resettato, io vorrei che rimanesse nello stato in cui l'ho lasciato e non che mi si spenga. Ma lui interpreta un collegamento in seriale/usb come una pressione del tasto di reset?
grazie

ps: lo sto alimentando dalla porta usb, mi viene il dubbio che con una fonte esterna questo possa non succedere, illuminatemi vi prego.

edit: penso di aver scoperto il problema, sull'arduino c'è un RESET-EN che dovrebbe essere ponticellato e questo in pratica scatena un reset ad ogni nuovo collegamento in seriale/usb, se lo elimino in che rischi corro? posso comunque riprogrammare arduino oppure è necessario per la sua programmazione?
Pages: [1]