Show Posts
Pages: [1] 2 3 ... 27
1  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 30, 2013, 12:05:06 pm
Mandami una scansione 3D di te stesso, ti faccio un mezzo busto con la 3Drag!  smiley-grin   Grazie!

Sono a lavoro anche io, proverò stasera!

Tentando di interpretare.... :
-disabiliti gli interrupt
-Abiliti il MODE 1, pertanto il timer và in overflow raggiunto 255? o quando una volta arrivato a 255 riscende a 0?
-il COM1A0 ancora non mi è chiarissimo come usarlo!
-Setti il prescaler, questo è facile
-Carichi OCR1A con il valore al quale il timer cambia di stato l'uscita. Giusto?
-Attivi l'interrupt
-riabiliti il loro utilizzo
-nella funzione interrupt carichi un valore sul registro del timer, ma....è per caso il valore dal quale il timer inizierà a contare?

Grazie!
2  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 30, 2013, 04:01:29 am
che bello!

Ieri ho chiuso tutto in un cassetto....ho tirato qualche parolaccia....e mi sono guardato i cartoni animati!

C'è qualche anima pia, che gentilmente, cortesemente, chiedendo con il massimo garbo, vi mando un vassoio di cannoli siciliani......
......mi farebbe un esempio (che non trovo da nessuna parte o non lo interpreto bene io) di un Timer1 configurato così?

-Uscita 9
-Prescaler 64
-PWM a correzzione
-duty a x% (che non sia 50!)
-Freq. yhz (che non sia quella di base del timer "prescalata" a 64)

Mille umili ringraziamenti!

Joe!
3  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 29, 2013, 12:03:33 pm
Giocando ulteriormente ho capito bene e fissato in mente come cambiare il prescaler, questo l'ho afferrato!!

i Bit CSx2 CSx1 e CSx0 svolgono questo compito secondo tabella nel datasheet a pagina 137 (per timer1)!

poi, COM1A0 significa che aggancio il pin 9 al Timer1! Giusto? e COM1B0 il pin 10?



4  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 29, 2013, 07:51:26 am
bhe già con il bilinearmap devo dire che non è male!

però, adesso il prossimo passo è comprendere i registi!

Ho caricato le righe che ho scritto in precedenza, ma vi era il vuoto totale, nessuna uscita da nessun pin!
Mi sono subito accorto che davo come Output il pin 11, quando il timer1 si riversa nei pin 9 e 10.

Abilitando il 9, ancora nulla accadeva! Ho così ri-messo mano al datasheet. alla pagina 136 c'è la tabella per settare il WGM.

Io scrivevo 0111 (mode 7) ....non sò esattamente perche in realtà! cose lette da qualche parte e utilizzate senza comprenderle a fondo!
leggendo bene ho notato che l'ultima riga, Mode 16 perciò 1111 attivava Fast PWM e come TOP ha OCR1A. non ho ben chiarissimo il concetto, ma mi sembra quello che cerco!

Ho così modificato il setting del WGM e in seguito aggiunto OCR1B come da consiglio di Leo! qualcosa ho ottenuto adesso, cioè genera PMW, ma sapete spiegarmi cosa specificatamente ho detto di fare al Timer1?

Code:
pinMode(9, OUTPUT);
  TCCR1A = _BV(COM1A0) | _BV(WGM11) | _BV(WGM10);
  TCCR1B = _BV(WGM12) | _BV(WGM13) | _BV(CS11) | _BV(CS10);
  OCR1A = 180;
  OCR1B = 60;
5  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 29, 2013, 02:59:17 am
Bene allora appena ho un attimo lo carico e vedo cosa ne esce fuori!

Grazie Leo!

Ovvio...la mia prima manipolazione di registri! se ne intuisco la logica, poi sarà più "semplice"

Comunque, suppongo che debba usare il Fast PWM perche 50% di duty distruggerebbe il mio ponte ad H in un attimo! Non devo eccedere il 5-10% MAX!

6  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 28, 2013, 12:55:03 pm
-Astrobeed dimostra il Kung-Fu
-PaoloP non adora le verdi pianure
-Etemenanki pensa trasversale
-Leo annuisce


Perche mi sento sempre più a casa qui? chissà!
7  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 28, 2013, 12:50:27 pm
ahahahahahaha

ma no dai! Leo! io mi "Tocco" per scaramanzia!!  smiley-eek-blue

ne realizzo da quando avevo 14 anni! non è mai esloso nulla! (tranne una volta....ora che ci penso....ma non è stata colpa mia....dicono!)

perciò.....ho provato a dare un'occhiata al datasheet e alle varie guide in rete...ma ne sono uscito più confuso che persuaso!

maledetti registri! non ne capisco la logica sequenziale!

provo a fare un esempio, ma sarà sbagliato....correggimi per favore!

pinMode(11, OUTPUT); // chiaramente setto il pin in modo che si agganci al timer
TCCR1A = _BV(COM1A0) | _BV(WGM11) | _BV(WGM10); //dico al simpatico timer1 di riferirsi al valore di OCR1A , poi setto i primi 2 bit della tabella WGM per impostare Fast PWM con OCR limite superiore.
TCCR1B = _BV(WGM12) | _BV(CS11) | _BV(CS10); // Imposto il prescaler a 64 e completo il setting di WGM
OCR1A = xx // dò il valore alto a cui il timer si deve riferire!

ci può stare? o non ho capito una mazza?
TCCR1B = _BV(WGM12)
8  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 28, 2013, 08:13:49 am
Hai fatto centro Astro!

Trattasi appunto del così detto DRSSTC! Tradotto: Double Resonant Solid State Tesla Coil!

Non mi dilungo altrimenti vado OT, ma trattasi di un Tesla a Stato solido, pertanto "transistor" al posto dei classici metodi di Switch! Con lo svantaggio di non essere più un Tesla Coil come papà Nikola l'aveva pensato, ma con numerosi vantaggi. Alimentabile direttamente da 220V invece di usare scomodi e pesante trasformatori per alta tensione, Leggero, poco ingombrante, svariate volte più potente a causa delle ridottissime perdite dei "transistor", e....non meno importante, modulabile in freq. e ampiezza proprio perché funziona a silicio!!!  smiley-twist

C'è chi usa normali NE555 per creare il segnale che sto tentando di ottenere, ma la soluzione si rivela avvolte poco precisa e sicura. In più, potendo riprogrammare a piacimento l'Arduino, posso un domani processare un semplice segnale mono in MIDI e darlo in pasto al ponte ad H senza grossi sbattimenti!

9  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 28, 2013, 07:34:22 am
Caspita, spettacolare!

Ho provato al volo prima di pranzare la funzione di PaoloP!

Immettendo dei lavori al volo, con "0, 511, 1023, 1000, 5000, 10000" si ottiene una linearità niente male!! proprio quello che intendevo!

Il riscontro con l'oscilloscopio e con il buzzer è positivo! Bhe...perché questo maledetto buzzer? in sostanza si tratta di un segnale che dovrà "Regoalre" in PWM un gigantesco ponte ad H di circa 1KA picco, il quale appunto per l'enorme potenza che dovrà sopportare, non può avere un duty superiore al 10%, pena la distruzione degli IGBT!

Questo ponte alimenterà una grossa bobina di Tesla che quando sarà pronta e collaudata potrà ricevere che un segnale audio in ingresso, che ovviamente dovrò avere gli stessi limiti di freq e duty! Si otterrà così un simpatico trasformatore di svariati KV "canterino"!

Adesso il prossimo step è provare a fare tutto ciò senza la libreria TimerOne! Ho scoperto (WOW) come manipolare i registi e voglio provarci! A quanto pare il Prescaler 64 del Timer1 dovrebbe fare al caso mio, potendo (a quanto ho intuito) contare da un minimo di 4uS a un massimo di 524mS! Correggetemi se sbaglio!

10  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 28, 2013, 04:28:37 am
Leo

Grazie della dritta, è proprio quello che mi serve, darò subito un'occhiata!

(Ah, mi chiamo Joe, giusto per togliere un po di formalità!  smiley-cool )

Astrobeed!

Mitico! Grazie!

Come mi succede spesso, mi rendo conto che il mio Kung-Fu matematico non è molto forte! Dannazione!

Pertanto occorre settare il timer in modo inversamente esponenziale?

cosa suggerisce il tuo Kung-fu?  smiley-mr-green

Ciao!
Joe!
11  International / Software / Re: PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 28, 2013, 03:21:08 am
Ciao Leo

eh....non sò perche ma quasi aspettavo che rispondessi tu!  smiley-mr-green

con i timer non sono mai stato una cima purtroppo! Ma non perche sono complicati.....credo più che altro per noia nell'impararne il corretto uso! Ma adesso dovrò!

Ora sai che faccio? mi leggo le guide e provo a scegliere da me un prescaler idoneo e provo a manipolare i registi per avere meno "Salti" possibili.

Riguardo la lineraità, avevo che io il dubbio sui potenziometri, perche tempo fà ne comprai alcuni "Per audio" pertanto logaritmici, ma una rapida verifica e controprova sostituendolo con un'altro da 4,7K  (anche per accertarmi se potevano essere i valori analogici forniti a creare il problema!) non ha portato giovamento!

Con l'oscillo vedo chiaramente che i valori passano da 99hz a circa 600hz  mooolto lentamente, per poi balzare da appunto 600 a 999hz in mooolto meno di 1/4 di corsa del potenz.!

Credi che possa forse dipendere dal map()?
12  International / Software / PWM. Variarne Duty e Frequenza tramite potenziometri. on: October 27, 2013, 04:33:24 pm
Salve!

Ho bisogno di ottenere un segnale a frequenza variabile, in un range compreso tra 100mS e 1mS con duty cycle da 0 a 10%. Non oltre!

Effettuando alcune ricerche e leggendo qualche post analogo sono riuscito a generare il suddetto segnale usufruendo della libreria "TimerOne.h".

L'ho trovata semplice da utilizzare e anche se non magari flessibilissima come potrebbe invece essere manipolare direttamente i registri dei timer, esegue il suo lavoro egregiamente!

il simpatico non c'è banale codice è questo:

Code:
#include "TimerOne.h"


#define out 9
#define freq A5
#define duty A4


long FreqVal;
int DutyVal;
 
void setup()
{
  pinMode(out, OUTPUT);
  Timer1.initialize();         
  Timer1.pwm(out,0,100000);       

}
 
 
void loop(){
 
  DutyVal = analogRead(duty);
  FreqVal = analogRead(freq);
 
  DutyVal = map(DutyVal, 0, 1023, 0, 102);
  FreqVal = map(FreqVal, 0, 1023, 1000, 10000);
 
  Timer1.setPwmDuty(out, DutyVal);
  Timer1.setPeriod(FreqVal);
 
}

Dopo aver inizializzato il timer, imposto i valori di base, i minimi di frequenza e duty.

Successivamente, tramite la lettura analogia di due potenz. vado a variare i due parametri!

All'oscilloscopio il segnale risulta molto pulito, sopra le mie aspettative!

Però, mi sorge un piccolo problema, e per questo vengo a chiedere a voi! Sto utilizzando due potenz. da 100k, per quanto riguarda il duty, la variazione viene eseguita in maniera lineare, semplice e pulita, ma riguardo alla frequenza non è lo stesso. Ho notato sia visivamente che acusticamente (collegando un piccolo piezo) che occorre più di metà corsa del potenz. per apprezzare piccole variazioni, e invece lievissimi e difficoltosi movimenti per arrivare ai valori finali, prossimi al Khz!

Al momento sto utilizzando il "map()" per convertire i valori letti, ma probabilmente è li il problema che riscontro!

Qualcuno saprebbe darmi qualche dritta per come rendere la variazione della frequenza più lineare?

Grazie!
13  International / Software / Suggerimento per manipolazione MIDI on: May 29, 2013, 05:04:49 am
Salute e voi

Non spunto da un po, ma pur non scrivendo passo spesso a leggere e qualcosina l'ho pure tirata su! Ho fatto una fantastica luce da comodino RGB che fa molto figo!

ma comunque, ho aperto il topic per chiedere altro! Mi occorrerebbe un suggerimento per vedere la fattibilità e la complessità di un progetto che ho in mente!

Allora vi spiego le linee base di cosa dovrei realizzare.

Mi occorre un segnale di base con freq variabile massima di 5khz, con duty Cycle di Max 5%.

Premesso questo....vorrei audio-modulare proprio quel 5% partendo da un MIDI....possibilmente proveninete da una sorgente come una tastiera o un qualsiasi strumento che viaggi su standard midi!

Sono a conoscenza che esiste una libreria MIDI per generare note, ma non so se ne esiste una per riceverli ed interpretarli!
in più non ho idea di come creare un tale segnale di base! insomma, appare complicato per le mie potenzilaità, per quest chied a voi!

Grazie per le possibili risposte o critiche!

Grazie!
Joe
14  International / Hardware / Re: Equilibratore dinamico con arduino! on: January 14, 2013, 12:23:44 pm
Grazie astro!

Come da mia premessa non ho idea di come funzioni la vera e propria macchina. Ho solo immagnato una possibile soluzione, ma a quanto pare frivola! smiley-grin
15  International / Hardware / Equilibratore dinamico con arduino! on: January 14, 2013, 11:13:00 am
Mi è capitato di dover bilanciare dei rotori di accenzioni da scooter. Operazione complicatissima, quasi impossibile senza delle macchine appropriate. Si và spesso a occhio cercando di capire dove possa esserci più peso e dove meno! Insomma, una porcata!

Partendo dal presupposto che non ho idea di come funzioni una macchina per l'equilibratura dinamica, mi è ugualmente passata per la testa un'eventuale soluzione. Volevo pertanto sottoporla a voi, per pareri sulla fattibilità o magari l'impossibilità fisica. Sapere, spesso qualcosa di fisico sfugge alla mente!

Immaginate di avere un disco di uno spessore e un diametro x posto su un asse. Questo asse viene vincolato da due cuscinetti ai due lati. di cui il più lontano dal disco fissato (forse meglio non solidarmente) ad un piano, invece il cuscinetto più vicino al disco verrà vincolato solo lateralmente e poi posto su una cella di carico.

un ulteriore cella di carico verrà posta parallelamente all'asse, magari con una molla di precarico che la spnge leggermente sull'asse! Questo per poter esaminare anche eventuali spostamenti orizzontali dell'asse. Gli spostamenti (vibrazioni) verticali invece (del disco) verrebbero percepiti dalla cella sotto al cuscinetto.

spero di aver spiegato bene, magari dopo faccio un disegnino con solid.

Sull'asse monterei pure un encoder per usarne le informazioni nei calcoli!

ora, tralasciando dettagliatamente il firmware che avrei in mente, dopo aver messo in rotazione il disco, se vi è peso sbilanciato verticalmente o orizzontalmente, nella lettura delle celle di carico dovrei riscontrare delle fluttuazioni! almeno credo!

servendomi della lettura dell'encoder suppongo di poter poi risalire al punto esatto dove mi è il problema per poi così correggerlo!

che ne pensate? assurdo? improponibile?

Grazie!
Pages: [1] 2 3 ... 27