gohan 18 September 2011

Documenti analoghi
Applicazioni dei microcontrollori PIC

Contatore asincrono esadecimale

Pilotare un motore passo-passo, in questo caso il modello della Sanyo le cui caratteristiche principali sono quelle di figura1.

MULTIVIBRATORI. BISTABILE Entrambi gli stati sono stabili; l uscita commuta solo con un opportuno comando. Esempio i Flip-Flop

Introduzione I contatori sono dispositivi fondamentali nell elettronica digitale e sono utilizzati per:

TIMER 555. tensioni ci servono come tensionii di riferimento per i due comparatori interni.

Un semplice multivibratore astabile si può realizzare con le porte logiche, come nel seguente circuito:

Capitolo IX. Convertitori di dati

MULTIVIBRATORI NE 555

1) Si descriva brevemente il processo di conversione analogico-digitale di un segnale.

Circuiti sequenziali. Circuiti sequenziali e applicazioni

Multivibratore bistabile, monostabile e astabile con TIMER 555

Esercitazione 6: Convertitori A/D Delta e Sigma-Delta

; Registro abilitazione interrupt TR_A EQU 85H ; Tris A TR_B EQU 86H ; Tris B

CIRCUITI LOGICI SEQUENZIALI e COMBINATORI : COUNTER DECODER/DRIVER DISPLAY a 7 seg. LED

Lab. T.P.S.E.E. - ITT Cerulli

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

MANUALE D USO 2AMDI511VPVRDS

LSS Reti Logiche: circuiti sequenziali

POLITECNICO DI BARI! DIPARTIMENTO DI INGEGNERIA ELETTRICA E DELL INFORMAZIONE!

Classe III specializzazione elettronica. Elettrotecnica e elettronica

Il timer 555 è un circuito integrato progettato allo scopo di fornire impulsi di durata prestabilita. In pratica il timer 555 è un temporizzatore.

GARA NAZIONALE DI ELETTRONICA

Il funzionamento interno del timer 555 è determinato dalle tensioni in uscita dei due comparatori che in modo asincrono pilotano il FF S-R.

Metronomo. Progettare l hardware del metronomo, utilizzando come base dei tempi un modulo generatore di clock a 10 MHz. Fig. 1. Fig. 2.

Un contatore è un registro che evolve secondo una sequenza predefinita di stati ordinati all applicazione di un impulso di ingresso

G&G ESEMPIO1 PROGRAMMAZIONE Progetto FACILEPLC Pag. 1 di 6

ELETTRONICA APPLICATA E MISURE

Misure su linee di trasmissione

M320 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

ELETTRONICA APPLICATA E MISURE

ELETTRONICA APPLICATA E MISURE

Anno scolastico Supervisore Prof. Giancarlo Fionda Insegnante di Elettronica

Elettronica Digitale. 1. Sistema binario 2. Rappresentazione di numeri 3. Algebra Booleana 4. Assiomi A. Booleana 5. Porte Logiche OR AND NOT

5 INSOLITI IMPIEGHI DEL 555

Ing. Emiliano Capuzzo Remote Contro NEC 11/11/2003. Remote Control NEC

GARA NAZIONALE DI ELETTRONICA E TELECOMUNICAZIONI PROVA SCRITTA. 7 maggio 2013

L400MA04T1A01/L400MB04C1A01 MANUALE UTENTE V. 1.5

Fagor Automation S. Coop. MANV-I/O. Manuale di installazione e funzionamento. Manual code: Manual version: 0404

Discharge. Timer 555. Threshold. Trigger

GESTIONE DEI TEMPI CON IL TIMER1 DEL PIC16F876

LSS Reti Logiche: multivibratori e T555

Calcolatori Elettronici

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 18/1/2016

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 6. Prof. Rosario Cerbone

CIRCUITO DI TEST E SOFTWARE UTILIZZATI

Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D

Il timer 555. Laboratorio di Segnali e Sistemi II - Il timer 555

A Laurea in Fisica - Anno Accademico

Generatore di onda quadra e contatore asincrono

Relè di alimentazione SPST,10 Pezzi,DC 5V Bobina 7A 240VAC 10A 125VAC/28VDC 5 pin JQC-3F

ESAMI DI QUALIFICA PROFESSIONALE 2000/2001 IPSIA "F. FOSSATI" Sondrio OPERATORE - ELETTRONICO

SHIFT LIGHT / INDICATORE DI CAMBIATA 1

L integrato NE555 come monostabile

Elementi di Elettronica Digitale con il DADO ELETTRONICO

6. GENERATORI DI SEGNALI DIGITALI

MCM k x 8. Parallel load enable. Inputs for parallel load LOAD UP IA IB IC ID CARRY 74LS193. Clock inputs. Clock outputs BORROW

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

I.P.S.I.A. Di BOCCHIGLIERO Multivibratori astabili ---- Materia: Elettronica. prof. Ing. Zumpano Luigi. Catalano, Iacoi e Serafini

TCP - TIMER CICLICO PROGRAMMABILE

Introduzione. Progetto di Contatori sincroni. Contatori definizioni caratteristiche. Contatori

CIRCUITO DI ALLARME ISA-1

Lo schema a blocchi del circuito integrato Timer 555 è il seguente:

ELETTRONICA GENERALE, FONDAMENTI DI ELETTRONICA DIGITALE Appello d esame del 17/6/2015

"Centrale per risparmio energetico Mod. R01"

La comunicazione con l esterno

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno

Contatori Elettronici frequenzimetri

MPDS-1CV/1CC HV PUSH

Generatore di onda quadra e contatore asincrono

Tecnologia CMOS. Ing. Ivan Blunno 21 aprile 2005

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Circuito logico AND / AND Gate

Microcontrollori 12/03/2014. Progettazione Sistemi Elettronici 2013/2014 1

Acquisizione dati a LABORATORIO - 4 (by Faso Diego)

RETI LOGICHE T Ingegneria Informatica. Esercitazione 3 Reti Sequenziali Sincrone

Collaudo statico di un ADC

Elettronica. Appunti per le classi quinte I.T.I.S. Cartesio. Andrea Mola

Topward electronics TPS ALTERA Max EPM7128SLC84-15

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino. Gruppo B: Famiglie logiche Lezione n. 9 - B - 5:

I.P.S.I.A. Di BOCCHIGLIERO. ----Misure sui converitori A/D---- Materia: Elettronica, Telecomunicazioni ed applicazioni. prof. Ing.

Giovanni Schgör (g.schgor) 19 March 2009

SCHEDA SPERIMENTALE ARDUINO UNO

GENERATORE DI RAMPA A GRADINI

EVENT COUNTER Contatore di Eventi in formato H MM:SS

FAT VCO Rev 0 - Thermidor Technologies - Pagina 1. Il VCO del sintetizzatore FATMAN PAiA

I.T.I.S. Max Planck Verifica di Elettronica Oscillatori classe 5 A/Tel a.s. 2013/14 COGNOME E NOME Data: 27/11/2013

II.3.1 Inverter a componenti discreti

Reti logiche (2) Circuiti sequenziali

Moduli logici. Interfacciamento di dispositivi logici. Parametri statici e dinamici. Circuiti logici combinatori Circuiti logici sequenziali

Davide Gennaretti, Matteo Nicolini

5. Esercitazioni di laboratorio

CHI HA BISOGNO DEL 555? (PARTE I) 1

ANNO SCOLASTICO: 2018/2019 PROGRAMMA

A.S. 2018/19 PIANO DI LAVORO SVOLTO CLASSE 3Ai

CONTROLLARE UN SERVOCOMANDO A DISTANZA. 1

Generatore di onda quadra e contatore asincrono

D.A.M. Bros Robotics -

INTRODUZIONE ALLE LOGICHE PROGRAMMABILI

LSS 2018/19 Canale A-De Esonero 2, testo A

Transcript:

gohan DADO DIGITALE 18 September 2011 Introduzione Quello a presentare è stato il mio primo progetto elettronico che, come appunto si può leggere dal titolo, consiste in un semplice dado digitale a logica cablata, che pur essendo un circuito semplice, come prima esperienza mi dato qualche soddisfazione ed ovviamente mi ha permesso di imparare. Avendo ricevuto consigli sul forum, avevo promesso di presentarlo, ed anche se sono in ritardo di qualche mese, ho voluto mantenere la promessa. Infine, ho avuto modo di osservare molti progetti simili al mio in rete. Su questo portale non ne ho incontrato nessuno fino ad ora, così che ho pensato bene di fare concorrenza e mi è sembrata una buona idea rendere mostrarne il risultato. Requisiti e schema a blocchi I requisiti di funzionamento richiedevano che all'accensione del circuito venisse visualizzato un 1 tramite un display a 7 segmenti, ed il numero casuale venisse generato tenendo premuto un pulsante (lo switch di comando) durante un tempo indeterminato, perchè un push-button può rimanere premuto teoricamente durante un tempo che non è prestabilito a priori. Al rilascio di questo switch, il numero doveva essere visualizzato sempre sul display. Il range di numeri disponibili era dall'1 al 6, come qualsiasi singolo dado da tavolo che si rispetti. Il problema doveva essere risolto usando componenti commerciali. Ragionando sullo scopo del circuito, la prima funzione che ci viene in mente è quella di un contatore e la soluzione più versatile è quella di scegliere appunto un integrato contatore disponibile in commercio. Lo stesso contatore deve essere preceduto da una fonte di clock, un circuito oscillatore che controlla la velocità di funzionamento di un dispositivo digitale quale può anche essere anche un microprocessore o microcontrollore. Una volta scelta la fonte di clock, non rimarrebbe che ultimare il tutto con la logica digitale con cui, a seconda degli output del contatore si determinerebbe la visualizzazione dei numeri tramite il display a 7 segmenti. Si necessita quindi di un decoder a partire dal BCD per la visualizzazione sul display. DADO DIGITALE 1

Avendo determinato la sequenza di funzionamento del circuito, come si fa in qualsiasi progetto, possiamo quindi cominciare a determinare la connesione delle singole funzioni rappresentando uno schema a blocchi dove: Power Supply: rappresenta l'alimentazione del circuito, dato che ogni componente ad utilizzare ne avrà bisogno. La sua implementazione fisica è indiscutibile, ma a seconda della famiglia di componenti scelti dovremo alimentare il tutto ad una certa tensione che si è voluto mantenere il più precisa possibile. Secondo questo scopo è stata inclusa nello schema ed il motivo verrà spiegato ulteriormente più avanti. CLK Source: rappresenta la fonte di clock e indirettamente include il pulsante di controllo tramite il quale viene comandato il contatore tramite l'entrata CLK. Counter: rappresenta l'integrato contatore che appunto conta ad una determinata frequenza e riporta in uscita il valore binario del numero generato durante il conteggio (in questo caso crescente) in un range dall' 1 a 6. Decoder: rappresenta l'integrato in grado di descodificare la cifra corrispondente al valore BCD di input per la visualizzazione sul display in output. Display: rappresenta appunto il componente elettronico che dispone di una determinata piedinatura. Ciascun pin corrisponde ad un proprio segmento, e ciascuno di questi è formato al suo interno da un diodo LED. La scelta di questo componente si relaziona direttamente all'integrato che lo precede nel funzionamento del circuito. DADO DIGITALE 2

Analisi dei singoli blocchi funzionali e schema completo del circuito Power Supply D1 è un 1N4007 e serve come protezione nel caso in cui accidentalmente venga invertita la polarità di alimentazione. Il regolatore di tensione 7805 serve per mantere la tensione di alimentazione della famiglia 74HC a, ed accetta una tensione di input, quindi, considerando la e la V Drop dell'integrato, una tensione di alimentazione minima di è sufficiente. Il circuito non consumerà una quantità di corrente notevole tale da dover necessitare di un dissipatore, quindi in questo caso non è necessario. I valori di C1 & C2 sono riportati nel datasheet del componente (link sopra); e. Io li ho messi tutti e due da, non si sono verificati problemi, ma seguire il datasheet è sempre meglio. CLK Source Come fonte di clock è stata scelta una semplice configurazione astabile con l'integrato 555. Per il pin 5:Control Voltage, è stato messo un condensatore con valore di default per quando il pin non viene utilizzato. Come al solito, per questa configurazione la frequenza di clock si calcola secondo la formula DADO DIGITALE 3

ed io avevo scelto una frequenza di clock di. Per ricavare i valori dei componenti passivi ho prefissato un valore per il condensatore di, in maniera da risolvere l'equazione calcolando i valori per le resistenze. Detto questo si stabilisce che R1 + 2R2 = x, quindi sostituendo si ha che Notiamo subito che tra 6557.7 è un numero di poco più piccolo di 6600, che diviso per tre risulta 2200. Quindi, se vuol dire che possiamo scegliere due resistenze uguali da 2k2 per avvicinarci il più possibile al valore di frequenza desiderato, infatti risolvedo l'equazione per R1 = R2 = 2k2 e la frequenza teorica (senza tener conto delle tolleranze dei componenti) risulta di, il quale è un risultato soddisfacente. A seguire possiamo osservare invece l'onda quadrata e la frequenza misurata tramite l'oscilloscopio Clock Come avevamo preannunciato, necessitavamo di un pulsante di comando per far si che venisse generato il numero casuale. Bene, in questo caso la soluzione migliore e più sicura è quella di lasciare l'output del oscillatore direttamente collegato all'entrata di clock del contatore, e collegare una resistenza di pull-down (nello schema è R3 = 1k) all'entrata di Reset del 555, la quale rimane attiva a stato logico basso. Quindi è facile immaginare che per tutto il tempo che il push-button PB non DADO DIGITALE 4

verrà premuto, il 555 si troverà inattivo e non avremo nessuna onda quadrata in output, lasciando così il contatore in riposo. Nello schema ho aggiunto il simbolo di un buffer Schmitt Trigger (non nel circuito reale) perchè è bene alimentare qualsiasi entrata di clock con un segnale ad isteresi, in quanto questo tipo di entrate necessitano dei fronti rapidi per funzionare correttamente. Il 555 ha comunque un output digitale come si può vedere dall'immagine sopra. Counter Il contatore è il cuore del circuito. La scelta di un componente adatto caratterizzato dalle sue caratteristiche è ovviamente un dettaglio decisivo per il corretto funzionamento del piccolo circuito. Ricordo che all'accensione, il display avrebbe dovuto visualizzare un 1, quindi l'ouput del contatore avrebbe dovuto essere l'equivalente binario 0001, sempre. Ho così deciso di scegliere un contatore sincrono programmabile ma con LOAD e MR asincrono, precisamente un 74HC193. In questo modo possiamo programmarne gli input, agire sul LOAD all'accensione, e quando il contatore raggiunga la sequenza di output 0111 riattivare il LOAD riportando le uscite a 0001 immediatamente. Dal datasheet possiamo vedere che questa entrata è attiva a stato logico basso quindi all'accensione bisogna ottenere una transazione positiva (da 0 a 1) in meno di un secondo. Questo è risolvibile a partire da una rete RC. Gli output del contatore che ci interessano sono i primi tre, e pensando al fatto di rimandare a zero l'output di LOAD (ricordando che è asincrono) quando le prime tre uscite saranno a 1 si è pensato subito ad una NAND a tre input, e l'integrato che ci interessa è il 74HC10. Il LOAD però necessita al suo ingresso una porta AND con gli ingressi di questa collegati alla rete RC ed alla NAND. Possiamo usare le porte rimanenti del 74HC10, dato che una AND la possiamo implementare a partire da due NAND in serie. Perfetto, la implementazione del contatore risulta quindi la seguente Al collegare l'alimentazione, non si sà mai quale possa essere l'output di un contatore, quindi di solito è sempre bene dare un reset iniziale oppure caricare il DADO DIGITALE 5

LOAD come nel nostro caso. Nel circuito la NAND 1 & 2 formano una AND (che chiamiamo AND12) che riceve in ingresso l'output della NAND 3 ed il segnale di output dal buffer Schmitt Trigger (due NOT in serie da un 74HC14). Grazie alla rete RC (R4 = 1k e C5 = 1μF) otteniamo la transazione positiva caricando il condensatore al 63.2% in τ = R 4 C 5 = 1ms, anche se il valore di tensione necessario per far si che cambi lo stato logico dipende dalla soglia dell'invertitore NOT Schmitt Trigger. Secondo la logica quindi il LOAD verrà comunque caricato essendo che la AND in qualsiasi caso ha inizialmente in ingresso un segnale logico basso. Tuttavia il segnale in arrivo dalla rete RC non è ad isteresi, per tanto è bene anteporre il buffer Schmitt Trigger per rispettare i tempi e la logica del segnale per gli integrati con cui si lavora. La entrata parallela di preselezione viene settata lasciando solo D0 collegato a V DD mentre i restanti 3 pin D1 D3 al potenziale di riferimento. Pure CD (Count Down Clock Input) deve essere collegato assieme a D0 altrimenti il contatore non potrebbe contare (basta osservare la tabella di funzionamento dal datasheet). CU (Count Up Clock Input) invece va collegato direttamente all'output del 555. Essendo che il LOAD è asincrono, quando la NAND avrà tutte le entrate a 1, tramite la AND12 si carica il LOAD. BCD to 7 Seg & Display Questi ultimi due blocchi funzionali li descrivo assieme dato che non si tratta solo di collegare le uscite del contatore alle entrate del decodificatore ed i pin del display alle corrispondenti uscite dell'integrato che si usa. Nel circuito ho usato un 74HC4511 ed un display a 7 segmenti a catodo comune (link datasheet) dato che le uscite del descodificatore BCD sono a stato logico alto. Diversamente (nel caso in cui fossero negate), avremmo dovuto scegliere un display ad anodo comune. Dato che il display è internamente composto da 7 LED (più il punto decimale che non è stato usato), la resistenza per ogni pin (nel circuito da R5 a R11) si calcola sempre con formula di alimentazione di corrente del LED. Io ho deciso di alimentarli con, quindi, sapendo che e DADO DIGITALE 6

valore commerciale. Schema completo Ricapitolando, ecco la rappresentazione completa dello schema. Valori componenti passivi R1 = R2 = 2k2 R3 = R4 = 1k Avrei potuto implementare l'oscillatore che le porte NOT, qui vi è presente qualche esempio. È un dettaglio che mi è sfuggito al progettare il circuito, pero volevo renderlo noto e segnalare il link dato che può essere utile come riferimento. DADO DIGITALE 7

Ecco quindi il circuito in azione. Flash La visualizzazione del numero 8 è dovuta alla frequenza troppo alta perchè l'occhio umano possa percepire il cambio dei numeri. Il dado con PIC Dopo aver effettuato il progetto con integrati commerciali e porte logiche, posto il codice di un dado fatto con un PIC16F877A. Era un esercizio svolto in laboratorio, con il push-button collegato al PORTE:0, mentre il display era collegato al PORTC in maniera che PORTC:0 = a, PORTC:1 = b, PORTC:2 = c e così fino a PORTC:6 = g. ; Name:Dice ; Pic:PIC16F877A ; Author:gohan LIST p=16f877a INCLUDE p16f877a.inc CONFIG _CP_OFF&_DEBUG_OFF&_WRT_OFF&_CPD_OFF&_LVP_OFF &_BODEN_ON&_PWRTE_ON&_WDT_OFF&_HS_OSC CBLOCK 0x20 i DADO DIGITALE 8

ENDC ORG 0x00 bsf STATUS, RP0 bcf STATUS, RP1 ;step to bank 1 ;set RP0 ;clear RP1 movlw 0x06 movwf ADCON1 ;set PORTE as digital movlw 0xff movwf TRISE ;set PORTC as input movlw 0x00 movwf TRISC bcf STATUS, RP0 bcf STATUS, RP1 ;set PORTD as output ;return to bank 0 ;clear RP0 ;clear RP1 start: movlw 0x06 ;load 7Seg value for nº 1 btfss PORTE, 0 goto continue ;if push button is not pressed ;generate random number continue: movlw 0x5b ;load 7Seg value for nº 2 btfss PORTE, 0 ;if push button is not pressed movlw 0x4f ;load 7Seg value for nº 3 btfss PORTE, 0 ;if push button is not pressed movlw 0x66 ;load 7Seg value for nº 4 btfss PORTE, 0 ;if push button is not pressed DADO DIGITALE 9

movlw 0x6d ;load 7Seg value for nº 5 btfss PORTE, 0 ;if push button is not pressed movlw 0x7d ;load 7Seg value for nº 6 btfss PORTE, 0 ;if push button is not pressed goto start ;restart from 1 end Conclusioni e ringraziamenti Siccome questo fu il primo progetto in assoluto, ebbi anche io i miei dubbi che mi sono stati risolti grazie a utenti (spero si ricordino) nel forum. Spero di non essere stato troppo stressante in quei giorni, visto che a tutti i costi volevo complicarmi la vita con "porcherie" fatte a transistori. Volevo quindi ringraziare g.schgor per l'assistenza ed i consigli che mi ha dato a suo tempo. Altrettanto IsidoroKZ, che aveva anche fatto uno schema con la serie 4000 che poi non ho montato (ma gli integrati sono nel cassetto), però si ringrazia tanto per questo come per i suggerimenti importanti riguardo all'utilità delle porte Schmitt Trigger ed alle "porcherie" assolutamente da evitare. Come è giusto che sia, ho imparato anche da questo. Anche carloc per le sue precisazioni sulla logica CMOS e sul fatto di non lasciare gli ingressi a vuoto. Se ne ho dimenticato qualcuno scusate, ma sappiate che non dimentico :) Grazie a tutti loro, ma anche a tutti gli utenti che leggeranno l'articolo. Spero vi sia piaciuto. Estratto da "http://www.electroyou.it/mediawiki/ index.php?title=userspages:gohan:dado-digitale" DADO DIGITALE 10