Ciao,
mi trovo ad affrontare il seguente problema e vorrei un paio di dritte su come iniziare...
vorrei generare su due canali separati di out in arduino (duemilanove) i seguenti segnali:
un seglale rettangolare con f=1Hz, che stia per 2ms a 4V, per i successici 2ms a -4V e per 1s a 0V.
un segnale rettangolare che stia ad 8V per 2ms, a -200mV per 500us,e 1s a 0V.
Senza l'utilizzo di conversioni D/A (digtale/analogico), direi che per l'aspetto software per ottenere le forme d'onda devi giocoforza usare almeno un timer sotto interrupt, altrimenti l'uscita è soggetta a variazioni di frequenza dovute alle funzioni base di Arduino che sono sempre attive.
Per la generazione dei corrispondenti livelli dovremo aspettare un esperto in hardware che indichi lo schema corretto.
Per quel che posso immaginare, direi che ad ogni livello di tensione diverso da Vcc e Vss dovrà comunque corrispondere una uscita logica che dovrà essere controllata dal software attivato sotto interrupt del timer.
Una cosa magari intanto dovresti già aggiungerla:
I segnali generati devono controllare qualcosa o sono solo di riferimento (nel senso: hanno collegato qualcosa che consuma?)
lo puoi fare benissimo però con solo arduino puoi fare il segnale tra 0 e 4, per avere un segnale di -4V dei usare un amplificatore operazionale o qualcosa del genere
2.hai il valore massimo sopra il valore di alimentazione della scheda al massimo puoi arrivare a 5V e anche qui devi usare altri componenti ora ci studio un attimo e vedo di dare una risposta definitiva
p.s. presumo ti serva un alimentazione duale http://it.emcelettronica.com/da-singola-duale
Sto cercando qualche spunto di qua e di la in rete...
provo come dici tu a buttar giù qualche riga pensando alla conversione D|A e all'interrupt...vediamo che salta fuori.
Per il discorso corrente, ho un consumo massimo di 800uA, pertanto volevo progettare il tutto con soglia a 1mA.
grazie per ora.
Io userei un multiplexer 4052 che alimentato con +12V e -5V (VDD e VEE riferite a VSS) puó fungere anche come multiplexer analogico e poi con dei partitori ( stabilizzatori) mi generei le tensioni neccesarie ( +8V, +4V, -0,2V, -4V, la massa ce l'hai giá.
L' unica cosa che devi pilotare gli indirizzi con 12V percui ti servono 3 transistori e 3 resistenze pullup.
Grazie dei consigli, ora provo un pò a lavorare all'ultima proposta di uwefed e di kokiua in parallelo...
mi sono perso l'ultimo link di milionario....
cmq vediamo che salta fuori.
@ milionario
Questi integrati come per esempio il MAX232 producono con dei condensatori che vengono caricati in una maniera e scaricati in un altra delle tensioni, prima + 10V e poi da quelli ancora -10V. Solo che i 10V non sono 10V ma di mento. Queste perdite sono date dalle perdite di tensione sopra i transistori che comutano i condensatori.
Non so di che precisione ha bisogno Andrea_Lab.
Ciao Uwe
però calcola se dovesse avere un errore di +/-2V gli può andare bene al max lui usa 8V quindi, però si potrebbe provare, mal che vada si ha un batolino
ciao milionario
per avere un errore piccolo io non prenderei la tensione prodotta direttamente ma userei 2 stabilizzatori. Quelli hanno necessario di una differenza di tensione tra entrata e uscita almeno di 0,5V fino a quasi 2V.
Ciao Ragazzi, ormai collaboratori al progetto ... (e vi ringrazio molto per l'aiuto).
stavo leggendo in merito a precisione e alimentazione via usb...
per quanto riguarda l'alimentazione pensavo una volta programmato di dare una propria alimentazione al sistema e di svingolarlo da pc pertanto senza alimentazione da usb.
per quanto riguarda la precisione, ho bisogno che i valori dichiarati nel primo post siano proprio quelli e con quelle tempistiche , con la rampa più ripida possibile. questo perchè ciò che ho a valle funziona solo con quel tipo di segnale.
Ciao uwe,
sto mettendo in piedi il circuitino con il mux (mi sembra un ottima proposta).
un paio di domande in merito:
non mi è chiaro perchè dovrei pilotare i due ingressi digitali con 12V (A e B)?
poi pensavo di fare: per gli ingressi Y ( +4, -4 e 0) con il pin 3 in out e per X (+8, 0, -0.2) con pin 13 di out; concordi?
una volta fatto questo mi diletto con 2 righe di codice per pilotare gli ingressi digitali...
@uwefed si è molto piu comodo e affidabile quel'integrato chiamiamolo cosi, ma quanto costano indicativamente?
allora fai con due mux uno per Y e uno per X metti i segnali che ti interessano negli ingressi e poi con arduino selezioni quelli che ti servono in logica binaria.
Es.
+4---- S0 S1 OUT
-4-----Mux---out selezione 0 0 +4
0----- 0 1 -4
1 0 0
p.s ricordati che se fai cosi il mux non deve essere TTL non lavora con le tensioni inverse, se sbaglio coreggetemi
è che mi risulta complicato trovare un componente gia precotto e stabilizzato per il riferimento a -0.2V (o a 0.2 e poi invertirlo), credo che dovrò optare per un classico partitore a resistenze.
per il multiplexer: il 4052 é un multiplexer che ha un entrata/ uscita che vene collegato a una delle 4 uscite/entrate (funziona in tutte due le direzioni). L'uscita viene selezionata da 2 pin di indirizo A e B. Quelle devono essere pilotate alla tensione di alimentazione del multiplexer.
Non so se ti servono 2 integrati perché seno non puoi rispettare le tempistiche necessarie.
x viene collegato a 0x,1x,2x, o 3x a secondo dei livelli delle entrate A e B.
La stessa cosa con i pin y, 0y,1y, 2y, o 3y. Purtroppo x e y non sono indipendenti. Intelligent Power and Sensing Technologies | onsemi
Il partitore di resistenze va bennissimo quando hai una tensione di alimentazione stabile.
non sò che corrente ti serva o che stabilità/precisione ma ci sono dei modi semplici è "lowcost" per generarsi tensioni negative: http://sound.westhost.com/project95.htm