Domanda:
Timer a tempo casuale
Chris
2012-05-16 09:31:27 UTC
view on stackexchange narkive permalink

Sto costruendo un semplice circuito che emette un segnale acustico in un dato intervallo di tempo, utilizzando un timer 555. C'è un modo semplice per randomizzare il tempo sul timer 555 tra due intervalli dati, diciamo, in qualsiasi momento tra 30 secondi e due minuti? Non sto nemmeno cercando una vera randomizzazione, solo qualcosa di semplice per rendere l'intervallo diverso tra ogni impulso. Idealmente, questo sarebbe semplice / abbastanza piccolo da poterne mettere due in un circuito con un timer 556 - il secondo sarebbe un tempo inferiore al secondo per creare un "bip" diverso ogni volta. Qualche idea?

Grazie.

P.S. - bonus se gli intervalli possono essere regolati con un potenziometro?

Accettare una risposta così rapidamente è scoraggiante per gli altri che altrimenti avrebbero anche pubblicato una risposta. Ora probabilmente riceverai meno risposte / idee.
@FedericoRusso davvero? Haha non l'avevo mai considerato prima, grazie per il suggerimento!
Ricordo il mio tester preferito che avevo progettato per comporre un numero di telefono per testare una rete digitale DS1 .. Si è sganciato, ha composto 888.8888 si è connesso e poi ha riattaccato, ha aspettato e ripetuto per tutta la settimana. L'ho fatto con solo un paio di contatori e alcuni gate con la composizione a impulsi. Chris puoi non accettare. Mi piacerebbe vedere una soluzione più semplice. Puoi bit bang un PIC? Il miglior design è quello che utilizza gli strumenti che sai usare.
@TonyStewart certo, nessun problema. E tu, forse, e poi potrei anche avere un po 'più di funzionalità. Forse un PICAXE?
Cinque risposte:
Olin Lathrop
2012-05-16 17:23:36 UTC
view on stackexchange narkive permalink

Hai detto di volere semplici e piccoli, ma stai ancora utilizzando un timer 555. Quei due sono in disaccordo tra loro.

Riporta il timer 555 al museo in cui lo hai trovato e usa un microcontrollore. Il minuscolo PIC10F200 può fare questo lavoro. È disponibile in un pacchetto SOT-23 e richiede solo una singola parte aggiuntiva del cappuccio di bypass.

Il resto è firmware. Questa parte ha un oscillatore interno e 255 parole di istruzione utilizzabili. È abbastanza per un po 'di tempismo e codice numerico pseudo-casuale. Puoi anche fare in modo che esegua più uscite contemporaneamente. Questa parte ha sei pin: alimentazione, terra, un ingresso e tre I / O. Puoi quindi fare in modo che produca fino a 3 eventi separati direttamente dai suoi pin.

Aggiunto:

A quanto pare c'è qualche desiderio di controllare la lunghezza media dell'intervallo con un piatto. Se è quello che vuoi, puoi usare un PIC 10F220 invece del 10F200. Quel PIC ha un A / D a 8 bit e costa solo poco più del '200 (ancora solo $ .38 su 100 su microchipdirect). Ancora una volta, l'unica altra parte di cui hai bisogno a parte il microcontrollore è un tappo di bypass. Il potenziometro può essere di circa 20 kΩ o 47 kΩ. Le estremità sono collegate a Vdd e massa, e il tergicristallo a uno dei due pin di ingresso analogico. Il resto è firmware.

+1. Esattamente quello a cui stavo pensando, solo che ero troppo pigro per scriverlo. :-)
Quando ho visto Olin, ho capito che era un PIC :) +1
@Chris - Se lo vuoi piccolo: il 10F200 è disponibile in un pacchetto DFN da 2 mm x 3 mm.
@stevenvh Che dire della programmazione di un microcontrollore SMD? Dovresti considerare roba ICSP extra nell'impronta, giusto? Non penso che a OP importi se è piccolo, sta menzionando un piatto per regolarlo e lo considera un bonus ..
@abdullah - ICSP utilizza 3 pin I / O che probabilmente vorresti collegare comunque. Per un prodotto commerciale forniresti 3 pad nella parte inferiore (+ due per l'alimentazione), a cui connetteresti su una maschera di prova usando [pin di prova caricati a molla] (http://www.ladyada.net/make/pogojig /index.html). Non sono solo utili per la programmazione, ma sono ampiamente utilizzati nei test delle schede.
@abdullah - Comunque, avrà bisogno anche di componenti extra per il potmeter; il 10F200 non ha un ADC a bordo.
@abdullahkahraman: se la tua scheda è troppo piccola per i pin di programmazione puoi anche far programmare il controller dal tuo fornitore. Lo facciamo spesso per grandi lotti, è più economico che farlo da soli.
Ehi, non c'è nemmeno un brevetto sulla mia idea, anche se Olin l'ha duplicata, la risposta migliore è quella che si adatta al richiedente con gli strumenti che può usare. Fattoide: ogni giocatore di scacchi ha oltre 4 miliardi di possibili combinazioni di mosse nelle prime quattro voci. L'elettronica è più multidimensionale e persino più mosse degli scacchi.
Potresti implementarlo con la modalità terminale usando i comandi AT e senza bisogno di un PIC o di alcun hardware personalizzato .... e molto più veloce da realizzare, anche suonerie flessibili, scalabili e gratuite ... hmm un PIC era troppo ovvio .. .
@stevenvh ah, perché non sono utili per la programmazione? Ho appena finito un disegno di 2600qty come lo dici tu, con i tamponi. Anche se ho programmato tutti i chip in due giorni fino all'arrivo dei PCB, non ho testato i pin ICSP.
@abdullah - Ho detto * non solo * utile. Sono utili per la programmazione e il test.
@stevenvh, oops, scusa :) OK, allora, ora sarà un rompicoglioni avere quelle spille pogo in Turchia ..
Il 555 ha il vantaggio di essere significativamente più economico per unità.Se non hai bisogno di fare alcuna logica di fantasia, non spendere per il micro controller.Se hai bisogno solo di un po 'di logica fantasia, scegli un microcontrollore di formato "minuscolo" con una piccola quantità di memoria.
stevenvh
2012-05-22 14:27:11 UTC
view on stackexchange narkive permalink

Sono d'accordo con Olin: lascia il 555 e prendi un microcontrollore. Il PIC10F200 è il primo che ti viene in mente se hai bisogno solo di un paio di I / O e di un semplice programma. Grazie all'oscillatore interno non necessita di nessuno dei componenti esterni richiesti dall'LM555. Il 10F200 è solo pochi centesimi in più rispetto all'LM555 e può facilmente sostituirne due. Anche l'LM556 non è una concorrenza: costa il doppio di quanto si paga per il 10F200.

Quindi la risposta di Olin è quella giusta? No :-). Vado per il bonus! Recentemente ho trovato Atmel ATTiny5, che è paragonabile al PIC10F200: stesso pacchetto SOT23, stessa memoria di programma da 512 byte, oscillatore interno. MA! L'ATTiny5 ha un ADC , che il PIC non ha! Collegaci il potenziometro e il bonus è mio! :-)

(Puoi anche creare un ADC grezzo con il PIC, ma ha bisogno di 2 pin che puoi usare come uscite, e poiché abbiamo già due uscite e un I / O del 10F200 è solo ingresso, dovrai rinunciare all'uscita del cicalino. Modifica. Ripensandoci, puoi farlo con un I / O, ma avrai bisogno di due resistori un condensatore invece di un resistore e un condensatore . )

Il software sarà più o meno lo stesso del PIC: programma un LFSR (Linear Feedback Shift Register):

enter image description here

Un LFSR a 8 bit può scorrere fino a 255 combinazioni prima che si ripeta, un LFSR a 16 bit fino a 65535. Utilizza la lettura del potenziometro per definire i valori di clipping per il timer.

Nota che piccoli PIC sono disponibili anche con A / D. La serie PIC 10F22x è praticamente la serie 10F20x con A / D e alcune altre piccole cose aggiunte.
Una volta che hai un MCU, puoi utilizzare anche altre fonti per la casualità, ad esempio, usa un pin analogico non collegato e campiona l'LSB su di esso. Oppure, imposta una corsa di transistor mediata da un pin MCU.
@Olin - Bah, stai rovinando la mia risposta! :-)
Freddo! Grazie per la risposta dettagliata e divertente e goditi il ​​tuo bonus!
Tony Stewart Sunnyskyguy EE75
2012-05-16 09:42:12 UTC
view on stackexchange narkive permalink

Certo che è banale. Basta avere un registro a scorrimento, un gate quad XOR e una pentola sul 555 o utilizzare un inverter Schmitt per fare lo stesso (Relaxation Osc) e pilotare un contatore binario per ottenere il periodo minimo di 1 minuto. Usa un altro inverter per creare un tono diverso. Usa un ritardo RC uno di un gate XOR e hai un colpo per ogni transizione. Collegalo con il tuo tono o usa un altro inverter Schmitt per creare un altro tono f fisso, oppure usa lo stesso tono in modo che quando cambi gli intervalli con il potenziometro anche il tono cambia altezza.

Cerca PRSG, PRNG, LFSR o RNG o ... .... tutto ciò di cui hai bisogno è un generatore di sequenze casuali a 8 stadi. Ci sono polinomi più lunghi che puoi usare anche semplicemente. Se si utilizza un inverter nel feedback, tutti zeri o un reset possono essere utilizzati come seme di partenza. Oppure puoi caricare un seme casuale in un altro modo ... Ma tutti gli 1 sono illegali. Avrà senso dopo aver visto il design classico. (L'ho usato nel 1976)

Al secondo pensiero, vuoi solo un rapporto 4: 1 da 0,5 a 2 minuti e questo creerebbe un rapporto 8: 1. Non è troppo difficile da risolvere ... utilizzando un ritardo di tempo fisso di 30 secondi e un PRNG polinomiale più alto per una migliore risoluzione, quindi utilizzare un flip flop o 2 gate per impostare dopo 30 secondi e ripristinare dopo 2 minuti. Ora vai a eseguirlo in VHDL e inseriscilo in un semplice chip CPLD. Avanti?

Fantastico, grazie per l'ottima risposta! Stavo cercando un progetto di base per tenermi impegnato per la prossima settimana o due, sembra perfetto, grazie!
settimana? dovresti riuscire a metterlo insieme in un'ora .. con la pratica ...
haha vero, sono bravo con un saldatore ma non tanto con la creazione dei miei schemi. In quella nota - ho ragione nel dire che ho bisogno di 3 circuiti integrati: un registro a scorrimento 4015, un XOR 4070 e una sorgente timer 555? Inoltre, ho trovato questo schema: http://www.doctronics.co.uk/4015.htm#applications, potresti dirmi se quell'attività con il 4093 è sostituibile con un 555? Grazie mille per l'aiuto, mi hai davvero fatto pensare !!
"Cerca PRSG, [...]". Non è così. Le risposte dovrebbero stare accanto a loro stessi. Se ritieni che PRSG sia interessante, spiegalo qui, anche se solo brevemente.
Everyone
2012-09-18 23:57:57 UTC
view on stackexchange narkive permalink

Presumo che il 555 venga utilizzato in configurazione monostabile.

L'intervallo è determinato da RC e C è fisso. R può essere variato; ad esempio utilizzando un LDR o un termistore. Quindi probabilmente anche la costante RC cambierebbe.

C'è, ovviamente, l'avvertenza che un resistore / driver così variabile dovrebbe essere esposto all'ambiente giusto affinché la sua resistenza possa variare.

Spero che questo aiuti.

LDR e termistori sono resistori variabili, ma non variano da soli. Se il livello di luce e la temperatura sono costanti non vedrai molti cambiamenti negli intervalli.
@stevenvh: Hai ragione. Ho aggiornato la risposta per accogliere l'avvertenza.
Tony Stewart Sunnyskyguy EE75
2012-05-16 11:32:14 UTC
view on stackexchange narkive permalink

I 555 sono così vecchia scuola ... Puoi creare 6 oscillatori con un inverter HEx Schmitter o usare Schmitt NAND.

Quindi usa entrambi gli ingressi di XOR con ritardo RC in uno per creare una frequenza one shot duplicatore.

In realtà è tutto vecchio stile e usa un registro a scorrimento non D FF. e contatore binario dell'ondulazione per ridurre il clock.

Usa semplicemente una breadboard.

enter image description here

Questo è interessante come poesia flusso di coscienza, ma è un po 'risparmiatore di spiegazioni per aiutare OP con la sua domanda.
Feynman ha detto che è meglio non conoscere e chiedersi la risposta completa piuttosto che conoscere la risposta completa e non sapere che è sbagliata. Se voti per le risposte dei libri di cucina piuttosto che per indicazioni suggestive, non insegni a pensare, piuttosto rigurgiti i dati. Se capisci le sue prime risposte, capisci la mia idea.
@TonyStewart in realtà questo è un sito di domande e risposte, dove la "A" sta per "Risposta", non "Discuti" :) Non si tratta solo dell'OP, dovresti lasciare contenuti di valore per tutti i lettori


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...