sx3me Inserita: 30 maggio 2016 Segnala Share Inserita: 30 maggio 2016 Quote Cortocircuitando il piedino 9 con 1’11 e inserendo anche sul piedino 8 un trimmer di 1MΏ e una resistenza di 1KΏ, è possibile ottenere un’uscita quadra con duty cycle variabile. Agendo sul piedino 7 si modifica la durata del livello alto; agendo sul piedino 8 si modifica la durata di quello basso. In uscita si ottiene una forma d’onda impulsiva. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 30 maggio 2016 Segnala Share Inserita: 30 maggio 2016 Un circuito simile lo puoi ottenere con il 555. Come ho scritto prima il duty Cycle si varia entro quasi tutta la gamma 0-100%, Poi per variare la frequenza devi agire sul gruppo RC. Avevo già fatto qualche cosa di simile se ritrovo la simulazione metto il circuito a disposizione. Con arduino puoi, partendo da qualche decina di Hz, con passi discreti che raddoppiano di volta in volta la freqeunza, avere un PWM completo tra 1/255 e 254/255 di duty cycle. per provare i Leds è più che sufficiente e lo realizzi in pochi minuti . Ad esempio se usci le uscite 3 o 11 Parti da una frequenza di 31250Hz che puoi dividere per 1, 8, 32, 64, 128, 256, 1024 ottenendo un frequenza minima di 30,51 Hz, poi 122 Hz, 244 Hz, etc, Link al commento Condividi su altri siti More sharing options...
kym Inserita: 30 maggio 2016 Autore Segnala Share Inserita: 30 maggio 2016 Quote Cortocircuitando il piedino 9 con 1’11 e inserendo anche sul piedino 8 un trimmer di 1MΏ e una resistenza di 1KΏ, è possibile ottenere un’uscita quadra con duty cycle variabile. Agendo sul piedino 7 si modifica la durata del livello alto; agendo sul piedino 8 si modifica la durata di quello basso. In uscita si ottiene una forma d’onda impulsiva. http://www.electronics-diy.com/function-generator-kit-xr2206.php Sarebbe da modificare questo in pratica, dici che ottengo un onda quadra con la modifica indipendente tra DC e FREQ ? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 30 maggio 2016 Segnala Share Inserita: 30 maggio 2016 Come è indicato dallo schema, quel circuito è previsto per variare la sola frequenza, mantenendo il rapporto al 50%. Non so se apportando le modifiche suggerite le cose funzionano ancora decentemente. Link al commento Condividi su altri siti More sharing options...
sx3me Inserita: 30 maggio 2016 Segnala Share Inserita: 30 maggio 2016 in tutta sincerità non lo so nemmeno io, però quello che ho riportato è il contenuto di un pdf sull'integrato... sarebbe da provare Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 30 maggio 2016 Segnala Share Inserita: 30 maggio 2016 l' XR2206 è un completo generatore di funzioni...Può essere considerato il fratello minore del MAX038. Con l'opportuna componentistica esterna è possibile fare tutto. Modificare il duty cycle, l'offset, la simmetria.... Servono però un po' di componenti esterni. Con un attiny85 o un pic, oltre al circuito di alimentazione, servono solo 2 potenziometri...per ottenere quanto richiesto inizialmente. Link al commento Condividi su altri siti More sharing options...
kym Inserita: 30 maggio 2016 Autore Segnala Share Inserita: 30 maggio 2016 2 potenziometri, un alimentatore e ....... saper programmare :-( ......... da zero una cosa che pare essere un pò complicata. Vorrei provare a fare quello con il display lcd a colori ma non ho nessuno dei componenti richiesti a parte l'arduino.... se poi li prendo e per qualche motivo non funziona come si dice ho perso tempo e denaro (2 mesi circa e 20 euro). Prenderli nelle vicinanze costa tanto quanto quello già fatto da amazon. Link al commento Condividi su altri siti More sharing options...
skele Inserita: 30 maggio 2016 Segnala Share Inserita: 30 maggio 2016 Se hai intenzione di comprare il generatore di funzione fatto con l'avr per variare il duty cycle dell onda quadra portesti mandare in uscita un onda tiangolare e poi compararla con una costante tramite un semplice circuito comparatore e potenziometro. Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 30 maggio 2016 Segnala Share Inserita: 30 maggio 2016 Quote saper programmare Dalle prove che ho fatto or ora....non servono grandissime conoscenze. Tanto per capire quanto in basso potevo arrivare 2 potenziometri e un 12F1572 modificando 5 o 6 registri..... Qui siama 50sa/s, talmente in basso che il dso non riesce ad esegire la quick measure Salgo un po' e modifico D Salgo di 3 ordini di grandezza Più in alto Solo il pic e 2 potenziometri E rimangono ancora risorse libere Link al commento Condividi su altri siti More sharing options...
kym Inserita: 31 maggio 2016 Autore Segnala Share Inserita: 31 maggio 2016 Quote Se hai intenzione di comprare il generatore di funzione fatto con l'avr per variare il duty cycle dell onda quadra portesti mandare in uscita un onda tiangolare e poi compararla con una costante tramite un semplice circuito comparatore e potenziometro. Avevo già provato una soluzione simile dente di sega/quadra avevo trovato uno schema ma alla fine aveva dei buchi. Dott. Cicala non si vede nemmeno una delle immagini. Ma i comandi che hai usato nel 12F1572 sarebbero gli stessi per un altro PIC? cioè sai che il mio picstart plus non fa il pic che stai usando tu, ma magari con lo stesso programma che hai fatto tu funzionerebbe con qualche pic che posso programmare...... 12F508 ? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 31 maggio 2016 Segnala Share Inserita: 31 maggio 2016 Per fare il lavoro con i PIC, ma con sommo dispiacere di Stefano () si può fare egualmente con Arduino, è necessario agire sul clock del contatore che fa il PWM. Invece di usare il clock interno derivato dal clock di macchina si genera un clock variabile usando un secondo timer/counter, l'uscita la si usa come clock del contatore di PWM. I 2 potenziometri letti da 2 A/D_C stabiliscono il duty cycle ed il valore di clock o frequenza di base per il PWM. Quasi tutti i PIC ammettono questo tipo di configurazione, puoi usare anche il vecchio 12F876; ovviamente ci potrà essere qualche piccola variante sui registri. Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 31 maggio 2016 Segnala Share Inserita: 31 maggio 2016 Onestamente....l'avevo detto all'inizio.....Con un arduino da 3€.....il cui punto di forza è il basso costo e la facilità d'uso gli unici vantaggi che può dare un micro, sono le dimensioni. Il principio di funzionamento è identico, la sola differenza usando il 1572 è che ha 3 generatori pwm integrati a 16bit quindi il codice si limita a settare il prescaler, scegliere la sorgente del clock, modificare i registri relativi a duty cycle e periodo...e volendo anche la fase, oltre alla lettura delle due analogiche...in ogni caso il 1572 costa 0,7€ Il 12F508 non integra i PWM ma comunque sarebbe possibile usarlo scrivendo tutto quello che serve...più o meno come per arduino Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 31 maggio 2016 Segnala Share Inserita: 31 maggio 2016 Quote scrivendo tutto quello che serve...più o meno come per arduino Arduino 1 integra 6 canali PWM a 8 bits, che per variare la luminosità di un LED sono anche sovrabbondanti. L'unica casa che non trovi in biblioteca è il generatore di clock esterno per il contatore di PWM, bastan 2-3 righe di programma per farlo. (bisogna saperlo fare però). poi quei 3€ sono almeno 10... Link al commento Condividi su altri siti More sharing options...
kym Inserita: 31 maggio 2016 Autore Segnala Share Inserita: 31 maggio 2016 visto ora le immagini Dott. Cicala, che bella schedona .......... eheh.... Io ho fatto due prove con un arduino ed un programma, questo: https://www.youtube.com/watch?v=HJpaUEPtrd0 Il codice è qui: http://7imix.github.io/one-phase-rectangle.ino pin 9 uscita e A0 & A1 i due trimmer........ con il prescaler 1 funziona benissimo..... ma a 7khz ..... ho provato a modificare mettendo il 2 o 1 e 2 .... sono arrivato a 10 hertz ma la linearità fa schifo!!! a 8 hertz si ferma ogni tanto (c'è un led collegato) salendo sembra di no, ma devo ogni volta modificare i prescaler. Comunque non so se il problema è il listato (io sono tremendamente ignorante di arduino) o sono limiti di dell'atmega328 usato per fare questa "cosa" ma variando con continuità la freq esampio con il prescaler 1 che parte da 7khz in su, si sposta pure il duty cycle ed in alcuni casi non è più usabile tra 1 e 100% ma solo i maniera molto più ristretta, in più modificando molto la frequenza con il trimmer si blocca tutto per qualche istante e riparte, ma lo fa in continuazione, resettando a livello hardware per un pò va bene poi lo fa di nuovo, lo vedo con l'oscilloscopio mi tira dei picchi a 10mhz e poi si ferma tutto a ciclo continuo fa così. Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 31 maggio 2016 Segnala Share Inserita: 31 maggio 2016 Duty cycle periodo e prescaler sono legati da una relazione. Quindi uno influenza l'altro, ma da firmware si corregge. Ovviamente quello che ho ottenuto io, cioè da circa 0,5Hz a 124KHz, non lo si può ottenere in una unica portata, sarebbe scomodo. Per un range così ampio è necessario agire anche sul clock, non solo sul prescaler. Succede anche che si blocchi il generatore pwm se non parametrizzato correttamente, proprio perchè il risultato delle due relazioni che legano periodo a duty cycle e che a grandi linee sono così Periodo= (Periodo_Richiesto * prescaler)/ clock D=D_richiesto/Periodo_Richiesto non danno un risultato coerente Il sorgente di arduino me lo sega l'antivirus..... Link al commento Condividi su altri siti More sharing options...
kym Inserita: 31 maggio 2016 Autore Segnala Share Inserita: 31 maggio 2016 Mi sa che alla fine mi compro il pickit3 ed un paio di 12F1572 Ma dimmi, due potenziometri e basta ci si riesce a fare 1Hz ----> 10 kHz in un unica portata? Come le cambi le portate? un dipswitch o ....? Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 31 maggio 2016 Segnala Share Inserita: 31 maggio 2016 1..10KHz ? Sì si potrebbe fare, ma sarebbe una mezza porcata Avresti un incremento di 10Hz per ogni count dell' AD. Basterebbe uno starnuto per far variare la frequenza di +/- 100Hz e come t'ho detto, se varia il periodo...varia anche il duty cycle. Sarebbe meglio aggiungere un altro pot o meglio, un commutatore con n resistenze, come si fa con arduino...(che costa poco ed è semplice )* e usarlo come moltiplicatore. Prova a dare un'occhiata al datasheet...son solo 308 pagine....ma non serve leggerle tutte alla fine sono 2 equazioni da soddisfare, la 22-1 e la 22-2 Ripeto, io non ce l'ho e non posso quindi fare prove ma al 99,99% lo puoi fare anche con l' ATtiny85 e ovviamnete anche con.. (*) Link al commento Condividi su altri siti More sharing options...
kym Inserita: 31 maggio 2016 Autore Segnala Share Inserita: 31 maggio 2016 Quindi come lo faresti? un commutatore con X resistenze per avere diverse portate e poi due potenziometri uno per la frequenza ed uno per il duty? clcxcon e clcxpol ? ho visto a pagina 163 capitolo 21.1 ma non fa per me, complicato, tanto ......... per uno che inizia da zero e non ha mai programmato se non ritoccando qualche listato per cambiare qualche stupidata..... sicuramente si potrà fare con l'attiny85 ..... o con arduino, ma temo sia più complicato, gli esempi che ho trovato non ne funziona bene uno.... voglio provare quello con il display a colori ma ho letto che qualcuno ha già avuto problemi con l'encoder.... Poi c'è una cosa che non mi convince: usare uno step-up per pilotare l'amp di un generatore è una buona idea? non crea disturbi? Io lo voglio provare, curiosità ed è tutta scuola, ma lo vorrei fare con un trasformatore classico da cui poi prelevare 5V per l'atmel (non metterei un arduino ma un autonomo atmel o al limite un mini) e i 24V per l'amp.... tutto in uno scatolotto e via. Ma temo che per oltre 1,5kHz ci sia da rimodificare un pò.... Link al commento Condividi su altri siti More sharing options...
kym Inserita: 1 giugno 2016 Autore Segnala Share Inserita: 1 giugno 2016 //Pgm Timing vars long previousMillis = ; // will store last time valuse measured long interval = 100; // interval at which to Measure values (milliseconds) unsigned long currentMillis = ; //pwm vars unsigned pwm1; // Value read from A1 to give PWM duty cycle output in terms of 0-5V unsigned pwm2; // Value read from A2 to give PWM duty cycle output in terms of 0-5V unsigned pwmSpan; void setup(){ //Set up PWM pinMode(9, OUTPUT); pinMode(10, OUTPUT); // phase and frequency correct mode. NON-inverted mode TCCR1A = _BV(COM1A1) | _BV(COM1B1) ; //phase/frequency correct mode. SELECT THIS FOR INVERTED OUTPUTS. // TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(COM1A0) | _BV(COM1B0) ; // Select mode 8 and select divide by 8 on main clock. TCCR1B = _BV(WGM13) | _BV(CS11); Serial.begin(9600); } void loop(){ currentMillis = millis(); if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; //Use for fixed frequency //ICR1 = pwmSpan = 10; // 62 for 16.16 KHz // for ICR1 = 1000, frequency = 1kHz. // Program that lets different values on A3 choose different values of frequency, // e.g. 100,200,400,500,1k,2k,3k,4k,10k,etc in relation with a free input // Pot at A3 Use to vary the frequency. ICR1 = pwmSpan = map(analogRead(A0),,1023,1000,100); //Set last two valuse in the above map command to set frequency range of Pot A3 //10000 = 100 Hz (10,000 PWM steps), 1000 = 1 kHz (1000 PWM Stemps), //100 = 10 khz (100 PWM steps), 10 = 100khz (10 pwm steps) pwm1 = analogRead(A1); // read duty from A1 for PWM 1 pwm2 = analogRead(A2); // read duty from A2 for PWM 2 pwm1 = map(pwm1,,1023,,pwmSpan); // map the duty cycle to the available steps pwm2 = map(pwm2,,1023,,pwmSpan); //map the duty cycle to the available steps OCR1A = pwm1; // set PWM pin 9 OCR1B = pwm2; // set PWM Pin 10 Serial.println("pwm1 = "+String(pwm1)+" pwm2 = "+String(pwm2)+" pwmSpan = "+String(pwmSpan)); //The following lines can be used in place of the four lines above the Serial.print line //if Serial print not used: (or if you want to view the A0 and A2 pot outputs) //OCR1A = map(pwm1,0,1023,0,pwmSpan); //set PWM pin 9 //OCR1B = map(pwm2,0,1023,0,pwmSpan); //set PWM Pin 10 } } Finalmente si inizia a concludere qualcosa. Questo listato funziona, son diventato scemo a farlo andare perchè da dove l'ho copiato gli apici ed un paio di trattini - erano di un formato differente (2 ore per capire l'errore che dava in fase di compilazione, nemmeno in visual con atmelstudio l'avevo trovato). L'ho provato e l'ho anche modificato, funziona, si settano i due estremi es. 1000-100 per 1kHz-10kHz e via dicendo.... La cosa strana è che pur avendo due uscite e pur avendo due DC settabili il DC settato con A1 modifica l'uscita sul pin 9 e 10 come se fosse comandata, sarà mica che non ci ho messo nessun potenziometro? non credo.... domani provo meglio. Quello che mi piacerebbe fare sono due cose: 1) andare sotto i 100Hz cioè avere una soglia in più..... non ho provato se basta mettere più di 10000; TIpo mettere 100000 (1Hz?) ? 2) avere la possibilità di selezionare 3 range di frequenza con un selettore 1-100 / 100-1000 / 1000-10000 Hertz magari usando un ingresso a cui dare 3 valori resistivi che corrispondono ai 3 valori dei 3 fondo scala, si possono sostituire quei due valori con una variabile richiamabile tipo se analogread XX è minore di X usa variabile uno se maggiore di X ma minore di Y variabile due e se maggiore di X variabile tre .... o qualcosa del genere. Non sarebbe male anche avere, visto che ci sono due settaggi per due DC .... due frequenze differenti indipendenti ognuna con il proprio DC .... Ora vado a sognare nel letto, buonanotte visto che a me servono due range di frequenza Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 1 giugno 2016 Segnala Share Inserita: 1 giugno 2016 Quote Quindi uno influenza l'altro, ma da firmware si corregge. Dipende da come lo fai. Il PWM i mcro lo ottengono facendo contare in continuo un contatore a 8 o 16 bits. Un registro di comparazione commuta un'uscita quando ilv alore del contatore è => di quello del registro. Per esempio. Se ho un contatore a 8 bits e carico il registo con valore di 150, per tutto il conteggio con valore <150, l'uscita è alta, da 151 a 255 l'uscita è bassa. Al 256 clock il contatore si azzera e riparte, l'uscita torna alta. Variando il valore di comparazione cambia il duty cycle, da qui la modulazione di PWM. La frequenza di base è stabilita dal clok del contatore. Se voglio una frequenza di 1 kHz dovrò dare un clock di 256 kHz perchè il contatore conta da 0 a 255. Normalemente si usa il clock interno del micro diviso da un prescaler fisso seguito da uno impostabile, che è la tecnica seguita da Kym. Arduino prevede altre modalità particolari: fast PWM, PWM in fase in modo da avere sempre i segali di PWM che partono in fase. Poi c'è una modalità poco nota, valida solo per il timer2 in cui si può modificare anche la frequenza di base con continuità. Io non ho mai avuto necessità di usarla quidi non lo mai provata. Con il 12F876, per risolvere un determinato problema ho usato il modo PWM dando un clock esterno al contatore. Nel mio caso era derivato proprio da un oscillatore esterno perchè così era necessario. Però è possibile derivarlo dall'interno usando un altro timer come generatore di frequenza variabile dividenndo per n la frequenza del quarzo. Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 1 giugno 2016 Segnala Share Inserita: 1 giugno 2016 Sì, dipende da come lo si fa. Nel caso che ho citato mi riferivo all'uso dei generatori pwm hardware dove periodo, fase, prescaler, duty cycle e clock di sistema sono legati da due relazioni specifiche. Può essere una limitazione per alcuni versi, ma per altri, semplifica di molto il lavoro, specialmente ad un novizio, perché per ottenete il segnale che ci serve, basta scrivere il valore opportuno in alcuni registri. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 1 giugno 2016 Segnala Share Inserita: 1 giugno 2016 Quote 1) andare sotto i 100Hz cioè avere una soglia in più..... non ho provato se basta mettere più di 10000; TIpo mettere 100000 (1Hz?) ? mettere cosa e dove? Bisogna usare soggetto, predicato e complemento se si vuol essere compresi. In un precedente messaggio avevo scritto: " Ad esempio se usi le uscite 3 o 11 Parti da una frequenza di 31250Hz che puoi dividere per 1, 8, 32, 64, 128, 256, 1024 ottenendo un frequenza minima di 30,51 Hz, poi 122 Hz, 244 Hz, etc, " Questi sono i limiti con tier2, timer 1, quello che usi tu, è più veloce, perchè parte da 16MHz, invece che da 8MHz, ed ha 2 rapporti di divisione in meno (sto citando a memoria perchè dovrei andare a rivedermi la documentazione). Se parti con prescalere a 1024 dovresti avere una prequenza di PWM pari a 61,035 HZ Link al commento Condividi su altri siti More sharing options...
kym Inserita: 1 giugno 2016 Autore Segnala Share Inserita: 1 giugno 2016 Livio, mi riferivo al listato che ho postato ieri notte. Nel campo ICR1 regoli il range. ICR1 = pwmSpan = map(analogRead(A0),0,1023,1000,100); //Set last two valuse in the above map command to set frequency range of Pot A3 //10000 = 100 Hz (10,000 PWM steps), 1000 = 1 kHz (1000 PWM Stemps), //100 = 10 khz (100 PWM steps), 10 = 100khz (10 pwm steps) Se metto 1000,100 negli ultimi due valori ho un range tra 1kHz e 10kHz etc. Occhio che il listato non funziona così come incollato, mancano gli zeri.... non so perchè ho fatto copia incolla ed è venuto tutto sballato. Livio per favore edita il messaggio e cancella il listato lo riporto qui nuovamente in formato testo classico: //Pgm Timing vars long previousMillis = 0; // will store last time valuse measured long interval = 100; // interval at which to Measure values (milliseconds) unsigned long currentMillis = 0; //pwm vars unsigned pwm1; // Value read from A1 to give PWM duty cycle output in terms of 0-5V unsigned pwm2; // Value read from A2 to give PWM duty cycle output in terms of 0-5V unsigned pwmSpan; void setup(){ //Set up PWM pinMode(9, OUTPUT); pinMode(10, OUTPUT); // phase and frequency correct mode. NON-inverted mode TCCR1A = _BV(COM1A1) | _BV(COM1B1) ; //phase/frequency correct mode. SELECT THIS FOR INVERTED OUTPUTS. // TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(COM1A0) | _BV(COM1B0) ; // Select mode 8 and select divide by 8 on main clock. TCCR1B = _BV(WGM13) | _BV(CS11); Serial.begin(9600); } void loop(){ currentMillis = millis(); if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; //Use for fixed frequency //ICR1 = pwmSpan = 10; // 62 for 16.16 KHz // for ICR1 = 1000, frequency = 1kHz. // Program that lets different values on A3 choose different values of frequency, // e.g. 100,200,400,500,1k,2k,3k,4k,10k,etc in relation with a free input // Pot at A3 Use to vary the frequency. ICR1 = pwmSpan = map(analogRead(A0),0,1023,1000,100); //Set last two valuse in the above map command to set frequency range of Pot A3 //10000 = 100 Hz (10,000 PWM steps), 1000 = 1 kHz (1000 PWM Stemps), //100 = 10 khz (100 PWM steps), 10 = 100khz (10 pwm steps) pwm1 = analogRead(A1); // read duty from A1 for PWM 1 pwm2 = analogRead(A2); // read duty from A2 for PWM 2 pwm1 = map(pwm1,0,1023,0,pwmSpan); // map the duty cycle to the available steps pwm2 = map(pwm2,0,1023,0,pwmSpan); //map the duty cycle to the available steps OCR1A = pwm1; // set PWM pin 9 OCR1B = pwm2; // set PWM Pin 10 Serial.println("pwm1 = "+String(pwm1)+" pwm2 = "+String(pwm2)+" pwmSpan = "+String(pwmSpan)); //The following lines can be used in place of the four lines above the Serial.print line //if Serial print not used: (or if you want to view the A0 and A2 pot outputs) //OCR1A = map(pwm1,0,1023,0,pwmSpan); //set PWM pin 9 //OCR1B = map(pwm2,0,1023,0,pwmSpan); //set PWM Pin 10 } } Incollato come codice mi piaceva che manteneva l'impostazione come la vedo nell'ide ma ha tolto un sacco di zeri nelle linee. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 1 giugno 2016 Segnala Share Inserita: 1 giugno 2016 con quello però vari solo il duty cycle. Quella è la scalatura perchè tu leggi un valore compreso tra 0 e 1023, mentre il duty lo regoli con un valore compreso tra 0 e 255. In pratica è come se dividessi la lettura dell'analogico per 4 (1024/256 = 4), che il rapporto che esiste tra 10 bits e 8 bits. Puoi anche fare 2 shift a dx della lettura analogica ed ottieni la stessa cosa. La fequenza la cambi agendo sul prescaler. Link al commento Condividi su altri siti More sharing options...
kym Inserita: 1 giugno 2016 Autore Segnala Share Inserita: 1 giugno 2016 Allora, recapitoliamo che mi sa che stiamo facendo confusione. Il programma che ho postato per ultimo fa: con un potenziometro regola la frequenza con altri due regola il DC su due canali diversi che hanno la stessa frequenza. E' esattamente come volevo io, solo che devi scegliere un range tramite il ricaricamento del programma. Ho provato che mettendo 65000,10000 (ho tra i 15Hz e i 100Hz) sotto i 15 non ci va, magari è solo un fatto di minima resistenza tra le connessioni, in fondo ci sono ben 6 contatti precari a chiudere la catena tra massa e A0 dell'atmel. Inserendo un range più elevato diventa ingestibile con un trimmer multigiro, figuriamoci con un potenziometro. Ora avendo ben due scelte di duty cycle su due canali differenti..... mi chiedo la logica: a questo punto perchè non fare due canali con due frequenze differenti? Il bello sarebbe rendere il tutto autonomo, poter cambiare i 4 range 0-100Hz / 100-1000Hz / 1kHz-10kHz / 10kHz-100kHz con un commutatore (per farla semplice) mettendo delle variabili che cambino in funzione di alto/basso su qualche ingresso tipo interruttori e via dicendo. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati