CONTROLLO NUMERICO DI UN TORNIO DI TIPO DIDATTICO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "CONTROLLO NUMERICO DI UN TORNIO DI TIPO DIDATTICO"

Transcript

1 CONTROLLO NUMERICO DI UN TORNIO DI TIPO DIDATTICO ELETTRONICA E TELECOMUNICAZIONI AREA DI PROGETTO TESINA PLURIDISCIPLINARE ISTITUTO TECNICO INDUSTRIALE STATALE MAX PLANCK o LANCENIGO VILLORBA (TV) CLASSE V A/Z anno scolastico 2001/2002 o CORSO SERALE Alla realizzazione della tesina hanno partecipato De Luca Domenico, Palù Riccardo, Crepaldi Stefano, Tosatto Mauro 1

2 INDICE Breve storia del tornio utilizzato pag. 3 Struttura e caratteristiche della macchina pag. 4 L idea di progetto pag. 5 Schemi elettrici pag. 7 Il display a cristalli liquidi pag. 11 Il tastierino esadecimale pag. 16 Interfaccia di potenza motori passo-passo pag. 19 Interfaccia di potenza controllo motore mandrino pag. 22 Alimentatore pag. 24 Analisi del software pag. 29 Manuale d uso pag. 73 2

3 IL TORNIETTO UTILIZZATO Tutto ebbe inizio tempo fa quando l insegnante di TDP,Prof. Zaniol Italo, scoprì di essere fortemente attratto da un rudimentale apparecchio di sembianze meccaniche, in grado, grazie ad un semplice moto rotatorio, di formare oggetti circolari. Il tornietto di dimensioni contenute, all incirca mezzo metro di lunghezza per trenta centimetri di larghezza, giaceva indisturbato nei sotterranei della scuola. Di difficile funzionamento a causa del tipo di controllo utilizzato,, andava pian piano arrugginendo per la mancata manutenzione. Infatti per poter funzionare aveva bisogno di un laborioso procedimento di avvio basato sulla lettura di un nastro magnetico che conteneva il programma di lavoro. La scheda di controllo, di dimensioni ingombranti, era basata su un microprocessore della INTEL (l 8088) che necessitava di numerosi integrati di supporto come memoria ROM, memoria RAM, interfacce di ingresso-uscita ( l 8255), timer (l 8253) e altri componenti. Bene, ora grazie ad un remaking, la scheda di controllo è di dimensioni compatte ( poco più di un decimetro quadrato). Il cuore del sistema di controllo è un microcontrollore, il PIC16F877, nato nel secondo semestre del 2000; da solo compie quasi tutte le funzioni necessarie per far funzionare il tornietto. Rimesso a nuovo, è ora in grado di compiere, con gli utensili opportuni, piccole torniture cilindriche e coniche. Nato a fini scolastici, il tornietto ha una risoluzione di due centesimi di millimetro. Non molto se si volessero eseguire lavori di altissima precisione. E dotato di motori passo-passo che limitano la potenza disponibile; si devono perciò eseguire asportazioni di pochi centesimi di mm per passata su materiali teneri. L ELETTRONICA PRIMA ( panello 1200 X 900 mm ) L ELETTRONICA DOPO ( circa 130 X 150 mm ) 3

4 STRUTTURA E CARATTERISTICHE DELLA MACCHINA Gli elementi essenziali che compongono il nostro tornio possono essere indicati in: Un motore elettrico monofase per l azionamento del mandrino porta pezzo; Due motori passo-passo per l azionamento degli assi x-y; Quattro fine corsa che delimitano gli spostamenti degli assi Per quanto riguarda l azionamento degli assi x-y, si tratta di realizzare un controllo di posizione di un asse che rappresenta una delle parti fondamentali di un controllo numerico; di norma tali controlli sono ad anello chiuso, cioè si usa la retroazione negativa effettuata per mezzo di trasduttori di posizione come encoder incrementale, encoder assoluto, oppure una cremagliera collegata ad un trasformatore differenziale o ad un potenziometro di precisione, tutti indispensabili per misurare la posizione. Nel nostro caso non si usa tale tecnica in quanto i motori sono di tipo passo-passo e la loro posizione viene controllata tramite impulsi di comando. Ad ogni impulso il motore compie un passo ( ad esempio una rotazione dell asse motore di 7.5 gradi), senza alcun bisogno di collegare un trasduttore in retroazione. A prima vista, sembrerebbe che l'utilizzo di motori passo-passo fosse vantaggioso per la semplicità del controllo, ma nella realtà essi vengono usati solo dove le potenze meccaniche richieste sono modeste. Nelle macchine a controllo numerico sono invece utilizzati motori in corrente continua, motori in corrente alternata pilotati da inverter e motori brushless. Generalmente nelle macchine utensili viene controllata anche la velocità del mandrino per avere una velocità di taglio costante. I motori passo-passo che equipaggiano il nostro tornietto hanno un passo di 7 e 30. Considerando che i carrelli degli assi si spostano tramite la rotazione di una vite senza con passo di un millimetro, si ottiene uno spostamento del carrello di 1/48 = mm./passo. La scheda che abbiamo realizzato, tenuto conto della meccanica a disposizione, comprende: un tastierino esadecimale e un display LCD per consentire all operatore di dialogare con il sistema operativo memorizzato nel microcontrollore una interfaccia di potenza per controllare i motori passo-passo una interfaccia di potenza per controllare il motore che aziona il mandrino una interfaccia di ingresso per ricevere informazioni dai fine corsa un led di segnalazione un pulsante per l arresto di emergenza della macchina 4

5 L idea di progetto La realizzazione Il tornio didattico visto frontalmente Elettronica di controllo 5

6 Il tornio didattico visto nella parte posteriore PARTICOLARI COSTRUTTIVI DELLA SCHEDA DI CONTROLLO IL MICROPROCESSORE PIC16F877 L INTERFACCIA DI POTENZA IL QUARZO PER IL CLOCK DEL MICROCONTROLLORE LA RETE RESISTIVA Rb 6

7 Schemi elettrici schema elettrico 220 V~ FINE CORA ASSI TASTIERINO NUMERICO INTERRUTORE GENERALE C6 ASSE Z- ALIMENTATORE STABILIZZATO +5 V 10 K Ω ASSE Z+ +5 V +5 V +5 V +12 V GND +5 V 10 KΩ ASSE X- 100 Ω 10 K Ω GND +5 V ASSE X+ +5 V V +5 V 10 K Ω 8 V SS V DD RD0/RD7-RC5/RC7 OUT interfaccia motore RE2 OSC1 OSC2 XTAL RC0 RC1 RC2 RC3 4 MHz C1 330 Ω RA0 RA1 RA2 RA3 RESET 330 Ω +12 V TIP 29 C3 LED 330 Ω +12 V 10 K Ω D1 C2 330 Ω TIP K Ω RA4 RA5 RE0 RE1 MCLR RC4 RB0/RB7 330 Ω +12 V TIP Ω +12 V TIP Ω +12 V TIP 29 MOTORE ASSE X 330 Ω +12 V TIP Ω +12 V TIP V TIP 29 MOTORE ASSE Z 7

8 CIRCUITO STAMPATO LATO RAME I.T.I.S. "MAX PLANCK" Classe 5 A/Z ASO 2001/2002 8

9 circuito stampato lato componenti I.T.I.S. "MAX PLANCK" Classe 5 A/Z ASO 2001/2002 9

10 SCHEDA PRINCIPALE componenti e morsetti Out display zoccolo collegamento flat display PIC 16F877 XTAL rete resistiva singola 330Ω zoccolo collegamento flat tastierino adesivo Out tastiera TIP 29 TIP 29 TIP 29 TIP 29 TIP 29 TIP 29 TIP 29 TIP 29 LED di funzionamento + 12 V -in- alimentatore ( Nero ) + 12 V Out motore asse Z ( nero ) Out motore asse Z ( Bianco ) Out motore asse Z ( Rosso ) Out motore asse Z ( Grigio ) Out motore asse Z ( Nero ) Out motore asse X ( Grigio ) Out motore asse X ( Rosso ) Out motore asse X ( Nero ) Out motore asse X ( Nero ) + 12 V -out- Motore asse X ( Nero ) + 5 V out interfaccia motore 220 V~ ( Verde ) + 5 V -in- alimentatore ( Blu ) Tasto STOP Fine corsa asse Z+ Fine corsa asse Z- Fine corsa asse X- Fine corsa asse X+ 10

11 O Il DISPLAY A CRISTALLI LIQUIDI o Il display a cristalli liquidi permette la percezione di simboli alfanumerici in ambienti illuminati, ma la sua visibilità è nulla al buio. I più comuni display sfruttano il fenomeno della diffusione della luce e sono formati da un vetrino, a contatto con l esterno, con elettrodi trasparenti ed elettricamente con-duttori che formano il carattere al-fanumerico (ad esempio l otto ha sette segmenti) e da un secondo ve-trino simile al primo ma collegato al circuito di comando; fra i due vetrini viene posto un sottile distanziatore (10 micron ) in modo che si formi una sottile camera (qualche centesimo di millimetro) nella quale è posto il cristallo liquido; infine vi è uno schermo scuro assorbente la luce. Se fra i due vetrini non vi è tensione il cristallo liquido rimane trasparente; se invece vi è qualche elettrodo del segno alfanumerico sot-to tensione, allora sotto di esso si sviluppa una turbolenza del cristallo liquido con relativa diffusione di luce e si ha, ad esempio, una immagine bianca dell elettrodo sotto tensione su sfondo scuro. Il tempo di risposta di questi display è dell ordine della decina di millisecondi e varia con la temperatura; la vita media è di molti anni e dipende dalla decomposizione delle molecole organiche dei cristalli dovuta sia all effetto elettrico che alla luce ultravioletta. 11

12 O Descrizione software gestione display (LCD ) II display LCD utilizzato in questo progetto e' di tipo alfanumerico cioè in grado di visualizzare simboli numerici e alfabetici. Inoltre esso presenta il grande vantaggio di implementare una logica di controllo delle funzioni e una logica di decodifica dei simboli da visualizzare che vengono forniti in codice ASCII.I simboli da visualizzare vengono caricati in un' area di memoria interna a 32 byte. Il pin outdel componente è a 16 terminali: -8 linee per bus dati ( DBO -DB7) -3 linee di controllo -3 linee alimentazione 12

13 -2 linee per la retroilluminazione Analisi linee di controllo: linea RS visualizzare -RS = 1 il display riconosce il dato presente sul bus come simbolo da -RS = O il display riconosce il dato presente sul bus come una istruzione Linea E -Un impulso L-H-L forza la lettura del dato presente sul, bus Linea R/W -R/W = O consente operazioni di scrittura di dati e istruzioni sull' LCD -R/W = I consente operazioni di lettura di dati dall' LCD Le istruzioni sono dei comandi che vengono dati al display come, ad esempio, pulisci display, porta il cursore ad inizio riga ecc. o o La tabella allegata riassume il set di istruzioni del display CDL4162 a 2 righe per 16 caratteri. o Si riportano alcuni esempi di routine utilizzate nel programma per il controllo del display. ;**********sottoprogramma configurazione LCD configura_lcd bcf portc,rw bcf portc,rs call ms1 movlw 0x38 ;dati a 8 bits - 2 righe movlw 0x0c ;display on - cursore off - blinking off movlw 6 ;avanzamento cursore movlw 1 ;pulisci display movlw 2 ;cursore home movlw 0x40 ;indirizza cgram movlw 0x80 ;indirizza prima riga bsf portc,rs ;scrivi prima riga "ITIS M. PLANCK" call home1 ;cursore inizio prima riga movlw 'I' movlw 'T' movlw 'I' movlw 'S' movlw 'M' movlw 'A' movlw 'X' 13

14 movlw 'P' movlw 'L' movlw 'A' movlw 'N' movlw 'C' movlw 'K' ;**********sottoprogramma invio dati a display display movwf portd ;invia dato bsf portc,e ;impulso di abilitazione bcf portc,e call ms1 ;ritardo 1ms ;**********sottoprogramma comando cursore inizio seconda riga home2 bcf portc,rs movlw 0xc0 ;display inizio seconda riga bsf portc,rs ;**********sottoprogramma comando cursore inizio prima riga home1 bcf portc,rs movlw 0x80 ;display inizio prima riga bsf portc,rs ;**********sottoprogramma blink on blink_on bcf portc,rs ;blink on call ms1 movlw 0d bsf portc,rs call ms1 ;**********sottoprogramma blink off blink_off bcf portc,rs call ms1 movlw 0c ;blink off bsf portc,rs call ms1 14

15 15

16 o IL TASTIERINO o E stato utilizzato un economico tastierino esadecimale. Esso è costituito da una matrice di interruttori, organizzati in righe e colonne come si vede in figura. La pressione di un tasto equivale alla connessione fra una riga e una colonna. La rilevazione del tasto premuto può avvenire secondo la seguente logica. Si collegano le colonne e le righe a delle resistenze di pull up ( il portob del PIC dispone internamente di queste resistenze per cui non è necessario prevederle esternamente ) si configurano i pin a cui sono collegate le colonne come ingressi si configurano i pin a cui sono collegate le righe come uscite Si pone a livello basso una riga mentre tutte le altre sono alte Si interrogano gli stati delle colonne. Se viene azionato un tasto che si trova all incrocio tra una qualsiasi colonna e la riga che si trova a livello basso, una colonna viene letta come livello basso e quindi identifica immediatamente il tasto azionato. La scansione viene ripetuta per tutte le righe La rilevazione può soffrire dei rimbalzi dei contatti; per ovviare all inconveniente si possono introdurre dei ritardi via software che consentono di rileggere lo stato del pulsante dopo che i rimbalzi si sono esauriti. Il tempo da noi fissato è di 20 ms. Il problema dei rimbalzi si ha anche al rilascio del pulsante. 16

17 Primo piano di tastierino e display Disegno di progetto 17

18 Si riporta di seguito una parte del software che consente di leggere la tastiera. Si noti che in fase di lettura viene attivata la funzione blinking del display che mostra i dati inseriti in modo lampeggiante. ;*************************TASTIERA************************************ tastiera bsf portc,rs call blink_on movlw b' ' ;riga rb3 bassa movwf portb btfss portb,4 ;premuto 0? goto tasto0 btfss portb,5 ;premuto 4? goto tasto4 btfss portb,6 ;premuto 8? goto tasto8 movlw b' ' ;riga rb2 bassa movwf portb btfss portb,4 ;premuto 1? goto tasto1 btfss portb,5 ;premuto 5? goto tasto5 btfss portb,6 ;premuto 9? goto tasto9 movlw b' ' ;riga rb1 bassa movwf portb btfss portb,4 ;premuto 2? goto tasto2 btfss portb,5 ;premuto 6? goto tasto6 movlw b' ' ;riga rb0 bassa movwf portb btfss portb,4 ;premuto 3? goto tasto3 btfss portb,5 ;premuto 7? goto tasto7 movlw b' ' movwf portb btfss portb,7 ;premuto ESC? goto tasto10 goto tastiera ;se nessun tasto premuto ripeti ;*****************************************TASTI********************** tasto0 call delay20ms ;elimina rimbalzi lpt1 btfss portb,4 ;pulsante rilasciato? goto lpt1 call delay20ms ;elimina rimbalzi movlw 0 ;memorizza lettura movwf memoria movlw '0' ;memorizza dato per display movwf mem_dis goto blink 18

19 O INTERFACCIA DI POTENZA MOTORI PASSO-PASSO L interfaccia è costituita da 8 transistor npn TIP29; questi transistor di potenza non sono altro che amplificatori binari in grado di fornire la corrente richiesta ai motori passo-passo che si aggira intorno ad un ampere. Dato che essi lavorano come interruttori, la dissipazione di potenza è assai limitata per cui non necessitano dissipatori di calore. Per evitare di distruggere la giunzione collettore-base dei transistori, è necessario inserire dei diodi tosatori in parallelo alle bobine dei motori che tagliano le sovratensioni che si manifestano sulle bobine stesse quando il transistore commuta da on ad off ( legge di Lenz ). Particolari costruttivi 19

20 - MOTORI PASSO-PASSO - I motori passo-passo, spesso chiamati anche step o stepper motor, sono caratterizzati nel panorama dei motori elettrici da una serie di particolarità che ne fanno la scelta (quasi) ideale per tutte quelle applicazioni che richiedono precisione nello spostamento angolare e nella velocità di rotazione, quali la robotica ed i servomeccanismi in genere dove la potenza richiesta è bassa. O I vantaggi: o E' possibile realizzare azionamenti di precisione controllati da computer in catena aperta, cioè senza utilizzare sensori di posizione o di velocità. Sono quindi utilizzabili con relativa semplicità e senza richiedere particolare potenza di calcolo. Hanno un'elevata robustezza meccanica ed elettrica: infatti non esistono contatti elettrici striscianti e, se necessario, possono essere realizzati anche in esecuzione completamente stagna. E' facile far compiere all'albero piccole rotazioni angolari arbitrarie in ambedue i versi e bloccarlo in una determinata posizione. La velocità di rotazione può essere molto bassa anche senza l'uso di riduttori meccanici. Di seguito vengono riportate le routine che controllano la rotazione di uno dei due motori in senso orario e antiorario. L azionamento avviene ad una fase per volta. L eccitazione di una fase dura 10 millesimi di secondo per cui il motore compie 100 passi al secondo, poco più di 2 giri al secondo (125 giri al minuto ). Se si aumentano i giri il motore rischia di perdere il passo. ;**********sottoprogramma controllo spostamento asse_dx dx incf assex movlw 4 subwf assex,0 goto sax clrf assex sax movf assex goto dx1 bcf porta,3 bsf porta,0 call ms10 dx1 movlw 1 subwf assex,0 goto dx2 20

21 bcf porta,0 bsf porta,2 call ms10 dx2 movlw 2 subwf assex,0 goto dx3 bcf porta,2 bsf porta,1 call ms10 dx3 bcf porta,1 bsf porta,3 call ms10 ;**********sottoprogramma controllo spostamento asse_sx sx decf assex movlw 0xff subwf assex,0 goto sbx movlw 3 movwf assex sbx movf assex goto sx1 bcf porta,2 bsf porta,0 call ms10 sx1 movlw 1 subwf assex,0 goto sx2 bcf porta,1 bsf porta,2 call ms10 sx2 movlw 2 subwf assex,0 goto sx3 bcf porta,3 bsf porta,1 call ms10 sx3 bcf porta,0 bsf porta,3 call ms10 21

22 INTERFACCIA DI POTENZA COMANDO MOTORE MANDRINO Il motore che comanda il mandrino e un motore monofase alimentato a 220 V. In un primo momento era stato deciso di comandare il motore mediante un classico relè controllato dal PIC. In fase di collaudo abbiamo verificato che la chiusura e l apertura dei contatti di questo relè causavano gravi disturbi che interferivano sull ottimale funzionamento del sistema. In particolare questi disturbi andavano ad influenzare il display LCD collegato al PIC tramite piattina a 16 fili. Presumibilmente sul segnale di controllo enable dell LCD si avevano dei disturbi che lo mandavano in tilt non consentendo una corretta visualizzazione dei messaggi. Abbiamo allora optato per un interruttore statico realizzato con un triac. Per isolare elettricamente la parte di potenza a 220Vca con quella di comando a bassa tensione, abbiamo utilizzato un fototriac MOC3042 che dispone inoltre di un circuito interno di controllo che innesca il triac quando la tensione di rete passa per lo zero ( 0 cross detect ). In questo modo e garantito che l azionamento del motore avviene in modo morbido a partire da tensione di rete istantanea nulla garantendo così una buona immunità alle armoniche fonte di disturbi. E da sottolineare che il costruttore del MOC garantisce una tensione di isolamento tra circuito di comando in bassa tensione e quello di potenza di 7500 Vca. La sicurezza elettrica è quindi assicurata in modo adeguato. Per quanto concerne il progetto di questa sezione abbiamo tenuto conto dei dati forniti dal costruttore del MOC e dei circuiti consigliati. Circuito stampato lato rame 22

23 o MOTORE DEL MANDRINO o Il motore del mandrino dispone di due velocità selezionabili con un commutatore. I) 3000 giri/min. 65 watt di potenza; II) 5000 giri/min 95 watt di potenza; Tramite un gruppo di rinvio si possono variare i giri del mandrino sfruttando così le due potenze a disposizione. Il gruppo permette una variazione di velocità compresa tra 130 e 4000 giri/m come indicato sul pannello del tornio. selezione della velocità mandrino Particolari del motore mandrino 23

24 o ALIMENTATORE o Questo dispositivo ha lo scopo di alimentare i circuiti elettronici del controllo ed i motori passopasso sfruttando la tensione di rete a 220V e 50Hz. In pratica la tensione alternata inviata dalla rete di distribuzione, viene raddrizzata e filtrata dall alimentatore e resa in uscita continua e di valore desiderato. Gli alimentatori sono costituiti da 4 blocchi fondamentali come vediamo in (fig2.1), e rispettivamente sono: 1. -trasformatore; 2. -raddrizzatore; 3. -filtro; 4. -stabilizzatore. O 1. TRASFORMATORE o Fig 2.1 Il trasformatore è una macchina elettrica statica (priva di organi in movimento) che trasferisce energia elettrica da un circuito (primario) a un altro (secondario) modificando tensione e corrente.il trasformatore riceve energia elettrica con una tensione V 1 e una corrente I 1 e la restituisce con una tensione V 2 e con una corrente I 2, diverse e tali da soddisfare la relazione V 1 x I 1 = V 2 x I 2. = P (in pratica variano i singoli parametri, ma la potenza rimane con valore costante). Il trasformatore è costituito da un circuito magnetico chiuso, realizzato con lamierini di ferro al silicio, e da due bobine dette primario e secondario. Detto N 1 il numero di spire del primario e N 2 quello delle spire del secondario, vale la relazione V 1 /V 2 =N 1 /N 2 =I 2 /I 1.Il rapporto N 1 /N 2 si chiama rapporto spire.se N 1 è minore di N 2 il trasformatore è detto elevatore, in caso contrario è detto abbassatore. Nel caso specifico il nostro trasformatore è composto da 2 avvolgimenti secondari che forniscono ciascuno 12 V oppure 24 V efficaci. O 2. RADDRIZZATORE o Questo circuito consente di ottenere, da una tensione sinusoidale, una tensione pulsante unipolare. Nel nostro caso, utilizziamo un raddrizzatore a quattro diodi a ponte di Graetz. (componete illustrato nella fig.2.1.1) 24

25 Fig FILTRO La tensione pulsante, all uscita del raddrizzatore, è formato da una componente continua (valor medio), cui è sovrapposta una componente periodica, avente frequenza doppia di quella di rete e chiamata tensione di ripple. Il filtro di tipo passa-basso, detto anche di livellamento, ha il compito di rendere costante la tensione, tutta positiva o tutta negativa. Esso è costituito da un condensatore in parallelo al carico. Per il calcolo del filtro si deve tener conto che la frequenza delle onde raddrizzate è doppia f = 100Hz rispetto a quella di rete ( 50 Hz ). Stabilizzatore di tensione E un circuito che ha la funzione di rendere la tensione continua di uscita praticamente insensibile alle variazioni della tensione di rete e del carico. In pratica riduce il ripple a livelli accettabili mediante reiezione di almeno 30dB. L elemento fondamentale di uno stabilizzatore di tensione è rappresentato da una rete di retroazione che, misurando la tensione di uscita, modifica il proprio comportamento in modo da compensare tali variazioni. PROGETTO ALIMENTATORE STABILIZZATO Dati di progetto L alimentatore deve fornire due tensioni una di 5 volt per alimentare il circuito di controllo e il display LCD e l altra di 12 volt per l alimentazione dei motori passo-passo Per il calcolo della corrente che deve erogare l alimentatore abbiamo tenuto conto che: gli avvolgimenti dei motori passo-passo presentano una resistenza di 8 ohm per cui a regime la corrente assorbita da ogni motore vale: I = V / R = 12 / 8 = 1.5 A. La potenza dissipata sarà di conseguenza 18 W. Per i componenti alimentati a 5 volt la potenza necessaria è stata stimata secondo questo criterio: Microcontrollore: 1W Display LCD 0.5W Resistenze di base dei BJT, resistenze limitazione corrente nel LED 0.5W La potenza totale dissipata dal circuito di controllo risulta quindi di 2W a cui corrisponde una corrente di 0.4A La corrente totale che dovrà erogare l alimentatore sarà quindi di 3.4A; abbiamo leggermente sovradimensionato la corrente totale fissandola a 4A. In conclusione l alimentatore dovrà erogare 4 A massimi e dovrà fornire due tensioni di 12V e 5V. L alimentatore progettato è un alimentatore di tipo lineare con due regolatori integrati: il 7805 è utilizzato per fornire i 5 V e dovrà erogare una corrente I MAX di 0.4 A. Per fornire i 12 V abbiamo usato un LM 317. Poiché tale regolatore può fornire una corrente massima di 1 A, è stato previsto nello schema elettrico un BJT di potenza in parallelo al regolatore. 25

26 Trasformatore : Il trasformatore utilizzato nel progetto ha un rapporto di trasformazione 220/12 con potenza 50W. La corrente nominale al secondario sarà quindi di circa 4 A mentre la tensione massima sul secondario sarà di circa 17V. Ponte raddrizzatore: Il ponte è stato scelto in base alla corrente media massima che dovrà erogare l alimentatore. A disposizione c era un ponte con corrente media 10 A e quindi adatto alla nostra applicazione. Filtro di livellamento: Per dimensionare la capacità di livellamento abbiamo tenuto conto che l LM 317 ha una tensione di drop out di 1.2 volt e quindi la tensione di ingresso non dovrà essere inferiore a 13.2 V. Di conseguenza la massima tensione di ripple picco-picco non dovrà superare i : = 3.8 V. Abbiamo fissato tale tensione a 3.5 V. Il condensatore è stato dimensionato tenendo conto che nel semiperiodo della tensione di rete ( 10ms ) esso non dovrà scaricarsi di oltre 3.5 V quando erogherà la massima corrente di circa 4A necessaria ad alimentare i due motori passo-passo. Quindi, tenendo conto della legge fondamentale del condensatore e ipotizzando la scarica del condensatore a corrente costante, si ottiene: C = I * T/Vpp = 4200 µf Nel progetto sono stati utilizzati due condensatori elettrolitici ognuno da 2200µF. Dimensionamento alimentatore 12V Dimensionamento della resistenza di polarizzazione del BJT di potenza: Si è deciso di far entrare in conduzione il BJT di potenza quando la corrente di ingresso all LM317 raggiunge i 10 ma. In tali ipotesi, tenuto conto che la tensione di soglia del BJT risulta di 0.55 V, abbiamo calcolato R secondo la legge di ohm: R = Vγ /I = 0.55 / 10mA = 55 Ω. E stata utilizzata una resistenza di 68 Ω Dimensionamento del partitore per LM317: Poiché il regolatore di tensione LM317 fornisce in uscita una tensione di 1.25 V con il morsetto Adj collegato a massa, è necessario utilizzare un partitore di tensione adeguato per avere i 12 V richiesti. E stato previsto un trimmer per la regolazione precisa della tensione di uscita. Analizzando i data sheets forniti dal costruttore, è consigliato di utilizzare per R 1 un valore di 240Ω ; abbiamo utilizzato una resistenza di valore commerciale 220 Ω. In tali condizioni, utilizzando la relazione fornita dal costruttore Vout = 1.25 ( 1 + R2/R1 ), abbiamo calcolato R 2 = 1890Ω. Abbiamo suddiviso tale resistenza in una fissa di 1200 Ω e una variabile (trimmer) di 1K Ω. Dimensionamento transistore di potenza Il BJT di potenza utilizzato nel progetto è l MJ 2955, cioè il complementare del più noto 2N3055. La corrente di collettore massima che il transistore può reggere è di 15 A, quindi ben superiore alle nostre esigenze. Abbiamo scelto questo componente in quanto a disposizione della scuola. Resta quindi da dimensionare il dissipatore termico. 26

27 Il BJT, secondo i precedenti calcoli, erogherà una corrente massima di 3Ampere con una tensione media tra collettore ed emettitore di 3.25 volt. La potenza massima dissipata sarà quindi di circa 10 Watt. La resistenza termica massima del dissipatore da utilizzare sarà: Rth = ( Tjmax Ta ) /Pmax - Rthjc = ( )/ = 13.5 C/W. Dimensionamento alimentatore 5V Per quanto concerne questa sezione dell alimentatore e solo necessario il dimensionamento termico del 7805 in quanto il regolatore fornisce direttamente i 5 V richiesti senza reti esterne.tenuto conto che la tensione media in ingresso del regolatore e piuttosto alta e vale V ( vedi sopra ), la potenza dissipata sarà : P = ( Vin Vout ) * Imax = ( ) * 0.6 = 6.15 W La resistenza termica massima del dissipatore sarà : Rth = ( Tjmax Ta ) /Pmax - Rthjc= ( )/ = 12.3 C/W Abbiamo utilizzato un dissipatore per dispositivi di potenza con contenitore TO220 con resistenza termica 9 C /W. Lato componenti 27

28 28

29 ANALISI DEL SOFTWAREo La stesura del software ha seguito i principi della programmazione top-down che consiste nel suddividere il problema in tanti sottoproblemi la cui soluzione viene demandata a delle routine richiamate dal programma principale o main. In questo modo il main risulta compatto, di facile stesura e comprensione. Il suo ruolo e quello di organizzare in modo logico la soluzione del problema richiamando le subroutine piu opportune. Per la soluzione di queste ultime e necessario concentrarsi solamente sulla soluzione di un determinato problema ignorando cosi l organizzazione logica del problema. I sottoprogrammi sviluppati risolvono problemi come: - configurazione display intelligente - invio messaggi al display per il dialogo con l utente - gestione tastierino esadecimale - gestione motori passo-passo - gestione segnali di controllo provenienti dai fine corsa - posizionamento automatico utensile - calcolo tempo esecuzione lavorazione Inoltre quando certi moduli di programma venivano ad essere ripetuti piu volte all interno dei vari sottoprogrammi si e deciso di organizzarli sotto forma di routine. Alcuni esempi possono essere: - temporizzazioni - invio di un carattere al display - posizionamento cursore display su riga 1 o riga2 o in posizione home - eliminazione rimbalzi sui contatti del tastierino Per la gestione delle periferiche di ingresso si e utilizzata la tecnica del polling e dell interrupt. In particolare per il controllo del tastierino, e dei fine corsa, si e utilizzato il polling che consiste nell interrogare ciclicamente i vari contatti. L interrupt e stato utilizzato per costruire un orologio ( real time clock ) necessario a realizzare molteplici temporizzazioni quali il comando dei motori passo-passo, il lampeggio del led, il controllo del display LCD ecc. La routine di interrupt viene lanciata automaticamente ogni millisecondo cosi la risoluzione dell orologio e di un millisecondo. L interrupt e provocato da overflow del registro speciale timer che come noto e un contatore a 8 bits. Il clock per tale timer e quello di sistema; la sua frequenza viene opportunamente divisa utilizzando il prescaler interno al microcontrollore. Per quanto riguarda il calcolo del tempo necessario alla esecuzione della lavorazione impostata, si e simulato l esecuzione della lavorazione senza comandare i motori. Poiche ogni spostamento di un passo di ogni motore avviene in 10 millisecondi, e stato facile, con l uso di alcune locazioni di memoria RAM, misurare il tempo incrementando di 10 millisecondi il tempo di esecuzione della lavorazione ad ogni passo di ogni motore. Il tempo totale e poi stato convertito in minuti e secondi e infine in BCD per poter essere visualizzato sul display. Per quanto riguarda la qualità del sistema operativo si può dire che questo potrebbe essere migliorato e potenziato mediante l introduzione di ulteriori tipi di lavorazione meccaniche come: 29

30 - lavorazione conica da dx a sx - lavorazione frontale - torniture che seguano un determinato profilo in questo ultimo caso sarebbe necessario prevedere un collegamento di tipo seriale con un PC cosa del resto possibile in quanto il microcontrollore e equipaggiato con una USART. Inoltre potrebbe essere migliorata anche l interfaccia con le esigenze dell utente (operatore addetto alla esecuzione delle lavorazioni ). Del resto il software utilizza circa un terzo della memoria programmi disponibile ( si veda la mappa di memoria allegata che e stata ricavata dal file listing ottenuto nella compilazione). Anche la memoria RAM utilizzata e limitata rispetto a quanto disponibile ed in particolare circa 80 locazioni su 368. Naturalmente i tempi limitati per l esecuzione dell area di progetto non hanno consentito di sviluppare ulteriori funzioni e di potenziare il sistema operativo. Sicuramente si e dimostrato come i microcontrollori possano essere utilizzati in innumerevoli applicazioni compresi sistemi di controllo di media complessita. oy USAGE MAP ('X' = Used, '-' = Unused) O 0000 : X---XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0080 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 00C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0100 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0140 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0180 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 01C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0200 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0240 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0280 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 02C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0300 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0340 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0380 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 03C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 30

31 0400 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0440 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0480 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 04C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0500 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0540 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0580 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 05C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0600 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0640 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0680 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 06C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0700 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0740 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0780 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 07C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0800 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0840 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0880 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 08C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0900 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0940 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 0980 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX 09C0 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXX All other memory blocks unused. Program Memory Words Used: 2534 Program Memory Words Free:

32 CODICE SORGENTE COMPLETO ;******************************************************** ;********* ************** ;********* CONTROLLO NUMERICO DI UN TORNIO ************** ;********* CL. 5A/Z ************** ;********* A.S /2002 ************** ;******************************************************** list p=16f877 ;**********dichiarazione dei registri speciali banco0 tmr equ 1 pcl equ 2 status equ 3 porta equ 5 portb equ 6 portc equ 7 portd equ 8 porte equ 9 pch equ 0x0a intcon equ 0x0b ;**********dichiarazione dei registri speciali banco1 opzioni equ 1 ddra equ 5 ddrb equ 6 ddrc equ 7 ddrd equ 8 ddre equ 9 ad equ 0x1f ;**********dichiarazione dei registri RAM conta equ 0x20 stack1 equ 0x21 stack2 equ 0x22 ms equ 0x23 ds equ 0x24 sec equ 0x25 assex equ 0x26 assey equ 0x27 centx equ 0x28 decx equ 0x29 unx equ 0x2a decimix equ 0x30 memoria equ 0x2b mem_dis equ 0x2f decy equ 0x32 uny equ 0x33 decimiy equ 0x34 centin equ 0x35 decine equ 0x36 unita equ 0x37 decimi equ 0x38 xl equ 0x39 xh equ 0x3a yl equ 0x3b yh equ 0x3c x1l equ 0x3d x1h equ 0x3e COND equ 0x3f CONU equ 0x40 ylc equ 0x42 yhc equ 0x43 contat equ 0x44 pendl equ 0x45 pendh equ 0x46 32

33 flag equ 0x47 y1l equ 0x48 y1h equ 0x49 gradino equ 0x4a led equ 0x4b msl equ 0x4c dsl equ 0x4d secl equ 0x4e ms2 equ 0x4f ds2 equ 0x50 usec2 equ 0x51 dsec2 equ 0x52 umin2 equ 0x53 dmin2 equ 0x54 time equ 0x55 mux equ 0x56 mxl equ 0x57 mxh equ 0x58 myl equ 0x59 myh equ 0x5a mml equ 0x5b mmh equ 0x5c timeh equ 0x5d timel equ 0x5e mem1 equ 0x5f mem2 equ 0x60 mem3 equ 0x61 mem4 equ 0x62 em1 equ 0x63 em2 equ 0x64 em3 equ 0x65 ;**********dichiarazione segnali di controllo DISPLAY #define RW 6 #define RS 5 #define E 7 ;**********vettore di RESET e vettore di INTERRUPT org 0 goto main org 4 ;**********sottoprogramma risposta interrupt timer interrupt movwf stack1 ;salva accumulatore swapf status,0 ;salva registro di stato movwf stack2 movlw 9 ;carica timer movwf tmr incf ms ;aggiorna orologio incf msl incf ms2 movlw d'100' subwf ms,0 goto esci1 incf ds movlw 0xa subwf ds,0 goto esci1 incf sec esci1 movlw d'100' subwf msl,0 goto esci2 incf dsl clrf msl movf led 33

34 bsf portc,4 movlw 1 subwf led,0 goto int1 movlw 4 subwf dsl,0 goto int2 movlw 0x10 xorwf portc clrf dsl goto esci2 int1 movlw 2 subwf led,0 goto int2 movlw 2 subwf dsl,0 goto int2 movlw 0x10 xorwf portc clrf dsl goto esci2 int2 movlw d'5' subwf dsl,0 goto esci2 clrf dsl esci2 movf time goto esci movlw d'100' subwf ms2,0 goto displayl incf ds2 clrf ms2 movlw 0x0a subwf ds2,0 goto displayl clrf ds2 decf usec2 movlw 0xff subwf usec2,0 goto displayl movlw 9 movwf usec2 movf dmin2,0 goto agg1 movf umin2,0 goto agg2 movf dsec2,0 goto agg3 goto displayl agg1 decf dsec2 movlw 0xff subwf dsec2,0 goto displayl movlw 5 movwf dsec2 ;controlla se min=0 34

35 decf umin2 movlw 0xff subwf umin2,0 goto displayl movlw 9 movwf umin2 decf dmin2 goto displayl agg2 decf dsec2 movlw 0xff subwf dsec2,0 goto displayl decf umin2 movlw 5 movwf dsec2 goto displayl agg3 decf dsec2 displayl ;visualizza tempo lavorazione movf mux goto mux1 bcf portc,rs ;sposta cursore incf mux goto esci mux1 movlw 1 subwf mux,0 goto mux22 movlw 80 movwf portd incf mux goto esci mux22 movlw 2 subwf mux,0 goto mux2 bsf portc,e bcf portc,e incf mux goto esci mux2 movlw 3 subwf mux,0 goto mux3 bsf portc,rs incf mux goto esci mux3 movlw 4 subwf mux,0 goto mux6 movf dmin2,0 call tab movwf portd ;invia dato bsf portc,e ;impulso di abilitazione bcf portc,e incf mux goto esci mux6 movlw 5 subwf mux,0 goto mux7 movf umin2,0 call tab movwf portd ;invia dato bsf portc,e ;impulso di abilitazione bcf portc,e 35

36 incf mux goto esci mux7 movlw 6 subwf mux,0 goto mux9 movlw ':' movwf portd ;invia dato bsf portc,e ;impulso di abilitazione bcf portc,e incf mux goto esci mux9 movlw 7 subwf mux,0 goto mux12 movf dsec2,0 call tab movwf portd ;invia dato bsf portc,e ;impulso di abilitazione bcf portc,e incf mux goto esci mux12 movlw 8 subwf mux,0 goto esci movf usec2,0 call tab movwf portd ;invia dato bsf portc,e ;impulso di abilitazione bcf portc,e clrf mux esci bcf intcon,2 ;azzera flag interrupt swapf stack2,0 ;ripristina registro di stato movwf status swapf stack1 ;ripristina accumulatore swapf stack1,0 retfie ;**********tabella dati tab addwf pcl retlw '0' retlw '1' retlw '2' retlw '3' retlw '4' retlw '5' retlw '6' retlw '7' retlw '8' retlw '9' ;**********programma principale main bsf status,5 ;*****configura i porti movlw b' ' ;RA0-RA3 out motore 1 -- RA4 e RA5 input 2 fine corsa movwf ddra movlw b' ' ;PBH in - PBL out lettura tastiera movwf ddrb clrf ddrc ;RC0-RC3 out motore 2 -- RC4-RC7 out controllo display e led clrf ddrd ;out dati display bcf porte,2 ;RE0 e RE1 input 2 fine corsa -- RE2 out moc movlw b' ' ;abilita pull up portb - configura prescaler tmr0 movwf opzioni 36

37 movlw b' ' ;pin portoa e portoe come i/o movwf ad bcf status,5 bcf porte,2 ;motore mandrino fermo clrf time ;azzera flag visualizzazione tempo clrf mux ;azzera puntatore multiplexing display bsf portc,4 ;diodo on clrf led clrf porta ;motore1 off bcf portc,0 ;motore2 off bcf portc,1 bcf portc,2 bcf portc,3 bcf portc,e ;enable display OFF movlw 9 ;inizializza timer movwf tmr movlw b' ' ;abilita interrupt timer movwf intcon call configura_lcd ;configura lcd call enter ;premere # per continuare call ok ;controlla se premuto enter call okoff movlw 1 ;lampeggio led movwf led clrf assex ;azzera puntatori controllo motori clrf assey inizio call posizionare00 loop movlw b' ' movwf portb btfss portb,6 ;premuto S? goto in00 movlw b' ' movwf portb btfsc portb,6 ;premuto N? goto loop goto iniz1 in00 call zeroxy ;posizione zero per torretta iniz1 movlw 1 ;lampeggio led movwf led movlw b' ' movwf portb nnn btfss portb,6 ;rilasciato? goto nnn call posizionare ;posiziona utensile in 0,0 call zero_zero ;posizionamento manuale utensile lp777 call lavorazione ;chiedere se lavorazione conica lp7 movlw b' ' movwf portb btfss portb,6 ;premuto S? goto avanti movlw b' ' movwf portb btfsc portb,6 ;premuto N? goto lp7 lpconf call cil_conf movlw b' ' movwf portb nnn1 btfss portb,6 ;rilasciato N? goto nnn1 lpconf1 movlw b' ' movwf portb btfss portb,6 ;premuto S? goto lp9 movlw b' ' movwf portb btfsc portb,6 ;premuto N? goto lpconf1 movlw b' ' 37

38 movwf portb nnn2 btfss portb,6 ;rilasciato N? goto nnn2 goto lp777 lp9 call dati_cil_lun ;richiede dati lavorazione cilindrica lp91 movlw b' ' movwf portb btfss portb,6 ;premuto S? goto lp99 movlw b' ' movwf portb btfss portb,7 ;premuto ESC? goto lp777 movlw b' ' movwf portb btfsc portb,6 ;premuto N? goto lp91 goto lp9 lp99 call dati_cil_prof ;se confermati vai a richiedere profondita' lp101 movlw b' ' movwf portb btfss portb,6 ;premuto S? goto lav1 movlw b' ' movwf portb btfsc portb,6 ;premuto N? goto lp101 goto lp99 lav1 movlw 2 ;lampeggio led movwf led call lav_corso ;messaggio per display call lav_cilindrica ;esegui lavorazione goto in00 avanti call dati_con_lun ;richiede dati conica lunghezza lp991 movlw b' ' movwf portb btfss portb,6 ;premuto S? goto avanti1 movlw b' ' movwf portb btfsc portb,6 ;premuto N? goto lp991 goto avanti avanti1 call dati_con_prof1 ;richiedi diametro1 lp990 movlw b' ' movwf portb btfss portb,6 ;premuto S? goto lav2 movlw b' ' movwf portb btfsc portb,6 ;premuto N? goto lp990 goto avanti1 lav2 movlw 2 ;lampeggio led movwf led call lav_corso ;messaggio per display call lav_conica ;esegui lavorazione goto in00 ;************************* fine main ******************************* ;**********sottoprogramma configurazione LCD configura_lcd bcf portc,rw bcf portc,rs call ms1 movlw 0x38 ;dati a 8 bits - 2 righe 38

39 movlw 0x0c ;display on - cursore off - blinking off movlw 6 ;avanzamento cursore movlw 1 ;pulisci display movlw 2 ;cursore home movlw 0x40 ;indirizza cgram movlw 0x80 ;indirizza prima riga bsf portc,rs ;scrivi prima riga "ITIS M. PLANCK" call home1 movlw 'I' movlw 'T' movlw 'I' movlw 'S' movlw 'M' movlw 'A' movlw 'X' movlw 'P' movlw 'L' movlw 'A' movlw 'N' movlw 'C' movlw 'K' ;**********sottoprogramma posizionare posizionare call home1 movlw 'P' movlw 'O' movlw 'S' movlw 'I' movlw 'Z' movlw 'I' movlw 'O' movlw 'N' movlw 'A' 39

40 movlw 'R' movlw 'E' movlw 'U' movlw 'T' movlw 'E' movlw 'N' call home2 movlw 'S' movlw 'I' movlw 'L' movlw 'E' movlw '#' movlw 'S' movlw 'E' movlw 'V' movlw 'A' movlw 'L' movlw 'I' movlw 'D' movlw 'O' ;**********sottoprogramma che richiede tipo di lavorazione lavorazione call home1 movlw 'T' movlw 'O' movlw 'R' movlw 'N' movlw 'I' movlw 'T' movlw 'U' movlw 'R' 40

41 movlw 'A' movlw 'C' movlw 'O' movlw 'N' movlw 'I' movlw 'C' movlw 'A' call home2 movlw '(' movlw 'S' movlw '/' movlw 'N' movlw ')' call blink_on bcf portc,rs ;sposta cursore alla casella 4 movlw 0xc4 ;*********************routine conferma lavorazione cilindrica******* cil_conf call home1 movlw 'C' movlw 'O' 41

42 movlw 'N' movlw 'F' movlw 'E' movlw 'R' movlw 'M' movlw 'A' call home2 movlw 'C' movlw 'I' movlw 'L' movlw 'I' movlw 'N' movlw 'D' movlw 'R' movlw 'I' movlw 'C' movlw 'A' movlw '?' movlw 'S' movlw '/' movlw 'N' ;**********sottoprogramma che richiede dati lavorazione cilindica dati_cil_lun call home1 movlw '0' 42

43 movlw '0' movlw '0' movlw '.' movlw '0' call home2 movlw 'L' movlw 'U' movlw 'N' movlw 'G' movlw 'H' movlw 'E' movlw 'Z' movlw 'Z' movlw 'A' bcf portc,rs ;richiedi dati lunghezza call ms1 ;centx,decx,unx e decimix sono i valori della lunghezza movlw 85 bsf portc,rs call ms1 call tastiera movlw 10 subwf memoria,0 goto dati_cil_lun movf memoria,0 movwf centx movf mem_dis,0 43

44 call tastiera movlw 10 subwf memoria,0 goto dati_cil_lun movf memoria,0 movwf decx movf mem_dis,0 call tastiera movlw 10 subwf memoria,0 goto dati_cil_lun movf memoria,0 movwf unx movf mem_dis,0 bcf portc,rs ;SALTA PUNTO call ms1 movlw 89 bsf portc,rs call ms1 call tastiera movlw 10 subwf memoria,0 goto dati_cil_lun movf memoria,0 movwf decimix movf mem_dis,0 call conferma ;conferma dati? ;**********sottoprogramma che visualizza messaggio posizionare00 call home1 movlw 'P' movlw 'O' movlw 'S' movlw 'I' movlw 'Z' movlw 'I' movlw 'O' movlw 'N' movlw 'A' movlw 'R' movlw 'E' movlw 'U' movlw 'T' movlw 'E' 44

45 movlw 'N' call home2 movlw 'S' movlw 'I' movlw 'L' movlw 'E' movlw 'I' movlw 'N' movlw '0' movlw '/' movlw '0' movlw '?' movlw 'S' movlw '/' movlw 'N' ;**********sottoprogramma che richiede dati lavorazione cilindica dati_cil_prof call home1 movlw '0' movlw '0' movlw '.' movlw '0' 45

46 call home2 movlw 'P' movlw 'R' movlw 'O' movlw 'F' movlw 'O' movlw 'N' movlw 'D' movlw 'I' movlw 'T' movlw 'A' movlw '`' bcf portc,rs ;richiedi dati lunghezza call ms1 ;decy,uny e decimiy sono i valori della profondita' movlw 86 bsf portc,rs call ms1 call tastiera movlw 10 subwf memoria,0 goto dati_cil_prof movf memoria,0 movwf decy movf mem_dis,0 call tastiera movlw 10 subwf memoria,0 goto dati_cil_prof movf memoria,0 movwf uny movf mem_dis,0 bcf portc,rs ;salta punto call ms1 movlw 89 bsf portc,rs call ms1 call tastiera 46

47 movlw 10 subwf memoria,0 goto dati_cil_prof movf memoria,0 movwf decimiy movf mem_dis,0 call conferma ;conferma dati? ;**********sottoprogramma che richiede dati lavorazione conica lunghezza dati_con_lun call home1 movlw '0' movlw '0' movlw '0' movlw '.' movlw '0' call home2 movlw 'L' movlw 'U' movlw 'N' movlw 'G' movlw 'H' movlw 'E' movlw 'Z' 47

48 movlw 'Z' movlw 'A' bcf portc,rs ;richiedi dati lunghezza call ms1 ;centx,decx,unx e decimix sono i valori della lunghezza movlw 85 bsf portc,rs call ms1 call tastiera movlw 10 subwf memoria,0 goto dati_con_lun movf memoria,0 movwf centx movf mem_dis,0 call tastiera movlw 10 subwf memoria,0 goto dati_con_lun movf memoria,0 movwf decx movf mem_dis,0 call tastiera movlw 10 subwf memoria,0 goto dati_con_lun movf memoria,0 movwf unx movf mem_dis,0 bcf portc,rs ;salta punto call ms1 movlw 89 bsf portc,rs call ms1 call tastiera movlw 10 subwf memoria,0 goto dati_con_lun movf memoria,0 movwf decimix movf mem_dis,0 call conferma ;conferma dati? ;**********sottoprogramma che richiede dati lavorazione conica angolo dati_con_prof1 call home1 48

49 movlw '0' movlw '0' call home2 movlw 'C' movlw 'O' movlw 'N' movlw 'I' movlw 'C' movlw 'I' movlw 'T' movlw 'A' movlw '`' movlw 'I' movlw 'N' movlw '%' bcf portc,rs ;richiedi dati conicita' call ms1 ; movlw 87 bsf portc,rs call ms1 call tastiera 49

50 movlw 10 subwf memoria,0 goto dati_con_prof1 movf memoria,0 movwf COND movf mem_dis,0 call tastiera movlw 10 subwf memoria,0 goto dati_con_prof1 movf memoria,0 movwf CONU movf mem_dis,0 call conferma ;conferma dati? ;**********sottoprogramma lavorazione in corso lav_corso call home1 movlw ':' movlw 'T' movlw 'E' movlw 'M' movlw 'P' movlw 'O' call home2 movlw 'L' movlw 'A' 50

51 movlw 'V' movlw 'O' movlw 'R' movlw 'A' movlw 'Z' movlw 'I' movlw 'O' movlw 'N' movlw 'E' ;***********sottoprogramma lavorazione cilindrica lav_cilindrica bsf porte,2 ;motore mandrino on call binariox call binarioy movf xl,0 movwf x1l movf xh,0 movwf x1h bcf intcon,7 ;disabilita interrupt bsf pch,3 ;seleziona banco1 ROM call visual_tempo ;calcola tempo lavorazione bcf pch,3 ;seleziona banco0 ROM bsf intcon,7 ;riabilita interrupt incf time ;fa partire tempo lav_ci clrf flag ;inizio lavorazione movf xl,0 ;memorizza dati in x1 movwf x1l movf xh,0 movwf x1h lav_cil movf x1l ;controlla se zero goto lavc_x call dy decf x1l ;controlla se zero goto lav_cil lavc_x movf x1h goto lavc_1 call dy decf x1h decf x1l goto lav_cil lavc_1 movf yl ;controlla posizione asse y goto lavc_y call dx decf yl goto lavflag lavc_y movf yh goto lav_cout call dx decf yh decf yl lavflag incf flag movlw 1 subwf flag,0 51

52 goto lav_ci movf xl,0 movwf x1l movf xh,0 movwf x1h lavr1 movf x1l ;memorizza dati in x1 ;controlla se zero goto lavr2 call sy decf x1l ;controlla se zero goto lavr1 lavr2 movf x1h goto lavc_1 call sy decf x1h decf x1l goto lavr1 lav_cout bcf porte,2 ;motore off call terminata call zeroxy ;***********sottoprogramma lavorazione conica lav_conica bsf porte,2 ;motore mandrino on call binariox call binario_con bcf intcon,7 ;disabilita interrupt bsf pch,3 ;seleziona banco ROM1 call passi_m ;calcola passi assex bcf pch,3 ;seleziona banco1 ROM bsf intcon,7 ;riabilita interrupt bcf status,0 ;calcola l*2/conicita' rlf pendl ;per calcolo lunghezza scalino rlf pendh clrf gradino ;azzera risultato quoziente movlw 8 movwf conta mul bcf status,0 rlf gradino bcf status,0 rlf pendl rlf pendh movf y1l,0 subwf pendh,0 btfss status,0 goto testd movf pendh incf gradino testd decfsz conta goto mul bcf intcon,7 ;disabilita interrupt bsf pch,3 ;seleziona banco ROM1 call visual_tempo1 ;calcola tempo lavorazione bcf pch,3 ;seleziona banco1 ROM bsf intcon,7 ;riabilita interrupt incf time ;start visualizzazione tempo in_con movf gradino,0 movwf contat movf xl,0 ;memorizza dati per lavorazione movwf x1l movf xh,0 movwf x1h lavo_c movf x1l ;controlla se zero goto lavoc_x 52

53 call sy decfsz contat ;aggiorna calcolo gradino goto ccc1 goto salto_g ccc1 decf x1l ;controlla se zero goto lavo_c lavoc_x movf x1h goto fine_con call sy decf x1h decf x1l decfsz contat ;aggiorna calcolo gradino goto ccc2 goto salto_g ccc2 goto lavo_c salto_g call dx movf gradino,0 subwf xl btfsc status,0 goto ritorno movf xh goto fine_con decf xh ritorno movf x1l ;ritorno con lavorazione goto lavrc_x call sy decf x1l ;controlla se zero goto ritorno lavrc_x movf x1h goto torn call sy decf x1h decf x1l goto ritorno torn movf xl,0 ;memorizza dati in x1 movwf x1l movf xh,0 movwf x1h rito_v movf x1l ;ritorno senza lavorazione goto rito_v1 call dy decf x1l ;controlla se zero goto rito_v rito_v1 movf x1h goto in_con call dy decf x1h decf x1l goto rito_v fine_con bcf porte,2 ;stop motore call terminata call zeroxy ;**********sottoprogramma conversione dati in binario spostamento assex binariox clrf xl clrf xh lpx1 movf centx ;controlla valore centinaia ;se zero passa a controllo decine goto lpx2 53

54 movlw d'250' addwf xl btfsc status,0 incf xh movlw d'250' addwf xl btfsc status,0 incf xh movlw d'250' addwf xl btfsc status,0 incf xh movlw d'250' addwf xl btfsc status,0 incf xh decf centx goto lpx1 lpx2 movf decx goto lpx3 movlw d'100' addwf xl btfsc status,0 incf xh decf decx goto lpx2 lpx3 movf unx goto lpx4 movlw d'10' addwf xl btfsc status,0 incf xh decf unx goto lpx3 lpx4 movf decimix goto lpx5 movlw 1 addwf xl btfsc status,0 incf xh decf decimix goto lpx4 lpx5 ;c'e' riporto ;c'e' riporto ;c'e' riporto ;c'e' riporto ;controlla valore decine ;se zero passa a controllo unita' ;c'e' riporto ;controlla valore unita' ;se zero passa a controllo decimi ;c'e' riporto ;controlla valore decimi ;c'e' riporto ;**********sottoprogramma conversione dati in binario spostamento assey binarioy clrf yl clrf yh lpx2y movf decy ;controlla valore decine ;se zero passa a controllo decine goto lpx3y movlw d'100' addwf yl btfsc status,0 ;c'e' riporto incf yh decf decy goto lpx2y lpx3y movf uny ;controlla valore unita' ;se zero passa a controllo unita' goto lpx4y movlw d'10' addwf yl btfsc status,0 ;c'e' riporto incf yh decf uny 54

55 goto lpx3y lpx4y movf decimiy goto lpx5y movlw 1 addwf yl btfsc status,0 incf yh decf decimiy goto lpx4y lpx5y ;controlla valore decimi ;c'e' riporto ;**********sottoprogramma conversione dati in binario per conica binario_con clrf ylc clrf yhc lpm3y movf COND ;controlla valore unita' ;se zero passa a controllo unita' goto lpm4y movlw d'10' addwf ylc btfsc status,0 ;c'e' riporto incf yhc decf COND goto lpm3y lpm4y movf CONU goto lpm5y movlw 1 addwf ylc btfsc status,0 incf yhc decf CONU goto lpm4y lpm5y ;controlla valore decimi ;c'e' riporto ;**********sottoprogramma lavorazione terminata terminata clrf time ;blocca visualizzazione tempo call home1 movlw 'L' movlw 'A' movlw 'V' movlw 'O' movlw 'R' movlw 'A' movlw 'Z' movlw 'I' movlw 'O' movlw 'N' movlw 'E' 55

56 call home2 movlw 'T' movlw 'E' movlw 'R' movlw 'M' movlw 'I' movlw 'N' movlw 'A' movlw 'T' movlw 'A' ;*******************routine conferma dati inseriti conferma call home2 movlw 'C' movlw 'O' movlw 'N' movlw 'F' movlw 'E' movlw 'R' movlw 'M' movlw 'A' movlw '(' movlw 'S' movlw '/' movlw 'N' movlw ')' 56

57 movlw '?' ;*************************TASTIERA************************************ ******* tastiera bsf portc,rs call blink_on movlw b' ' ;riga rb3 movwf portb btfss portb,4 ;premuto 0? goto tasto0 btfss portb,5 ;premuto 4? goto tasto4 btfss portb,6 ;premuto 8? goto tasto8 movlw b' ' ;riga rb2 movwf portb btfss portb,4 ;premuto 1? goto tasto1 btfss portb,5 ;premuto 5? goto tasto5 btfss portb,6 ;premuto 9? goto tasto9 movlw b' ' ;riga rb1 movwf portb btfss portb,4 ;premuto 2? goto tasto2 btfss portb,5 ;premuto 6? goto tasto6 movlw b' ' ;riga rb0 movwf portb btfss portb,4 ;premuto 3? goto tasto3 btfss portb,5 ;premuto 7? goto tasto7 movlw b' ' movwf portb btfss portb,7 ;premuto ESC? goto tasto10 goto tastiera ;se nessun tasto premuto ripeti ;*****************************************TASTI*********************** * tasto0 call delay20ms ;elimina rimbalzi lpt1 btfss portb,4 ;pulsante rilasciato? goto lpt1 call delay20ms ;elimina rimbalzi movlw 0 ;memorizza lettura movwf memoria movlw '0' ;memorizza dato per display movwf mem_dis goto blink tasto1 lpt2 tasto2 lpt3 call delay20ms btfss portb,4 goto lpt2 call delay20ms movlw 1 movwf memoria movlw '1' movwf mem_dis goto blink call delay20ms btfss portb,4 goto lpt3 call delay20ms movlw d'2' 57

58 tasto3 lpt4 tasto4 lpt5 tasto5 lpt6 tasto6 lpt7 tasto7 lpt8 tasto8 lpt9 tasto10 lptesc tasto9 lpt10 movwf memoria movlw '2' movwf mem_dis goto blink call delay20ms btfss portb,4 goto lpt4 call delay20ms movlw d'3' movwf memoria movlw '3' movwf mem_dis goto blink call delay20ms btfss portb,5 goto lpt5 call delay20ms movlw d'4' movwf memoria movlw '4' movwf mem_dis goto blink call delay20ms btfss portb,5 goto lpt6 call delay20ms movlw d'5' movwf memoria movlw '5' movwf mem_dis goto blink call delay20ms btfss portb,5 goto lpt7 call delay20ms movlw d'6' movwf memoria movlw '6' movwf mem_dis goto blink call delay20ms btfss portb,5 goto lpt8 call delay20ms movlw d'7' movwf memoria movlw '7' movwf mem_dis goto blink call delay20ms btfss portb,6 goto lpt9 call delay20ms movlw d'8' movwf memoria movlw '8' movwf mem_dis goto blink call delay20ms btfss portb,7 goto lptesc call delay20ms movlw 10 movwf memoria call delay20ms btfss portb,6 goto lpt10 call delay20ms 58

59 blink movlw d'9' movwf memoria movlw '9' movwf mem_dis call blink_off ;********sottoprogramma controllo tasto enter ok movlw b' ' movwf portb lpen btfsc portb,7 goto lpen call delay20ms ;elimina rimbalzi ;********sottoprogramma controllo tasto enter rilasciato okoff movlw b' ' movwf portb lpenr btfss portb,7 goto lpenr call delay20ms ;elimina rimbalzi ;**********sottoprogramma invio dati a display display movwf portd ;invia dato bsf portc,e ;impulso di abilitazione bcf portc,e call ms1 ;ritardo 1ms ;**********sottoprogramma comando cursore inizio seconda riga home2 bcf portc,rs movlw 0xc0 ;display inizio seconda riga bsf portc,rs ;**********sottoprogramma comando cursore inizio prima riga home1 bcf portc,rs movlw 0x80 ;display inizio prima riga bsf portc,rs ;**********sottoprogramma blink on blink_on bcf portc,rs ;blink on call ms1 movlw 0d bsf portc,rs call ms1 ;**********sottoprogramma blink off blink_off bcf portc,rs call ms1 movlw 0c ;blink off bsf portc,rs call ms1 ;**********sottoprogramma scritta (#) per continuare enter call home2 movlw '#' 59

60 movlw 'P' movlw 'E' movlw 'R' movlw 'C' movlw 'O' movlw 'N' movlw 'T' movlw 'I' movlw 'N' movlw 'U' movlw 'A' movlw 'R' movlw 'E' ;**********sottoprogramma ritardo 1ms ms1 clrf ms lp_ms movf ms goto lp_ms ;**********sottoprogramma ritardo 1ms ms10 clrf ms lp_ms3 movlw d'10' subwf ms,0 goto lp_ms3 ;**********sottoprogramma ritardo 20ms delay20ms clrf ms lp_ms20 movlw d'20' subwf ms,0 goto lp_ms20 ;**********sottoprogramma ritardo 100ms ms100 clrf ms lp_ms100 movlw d'100' subwf ms,0 goto lp_ms100 ;**********sottoprogramma controllo spostamento asse_dx dx incf assex movlw 4 subwf assex,0 60

61 goto sax clrf assex sax movf assex goto dx1 bcf porta,3 bsf porta,0 call ms10 dx1 movlw 1 subwf assex,0 goto dx2 bcf porta,0 bsf porta,2 call ms10 dx2 movlw 2 subwf assex,0 goto dx3 bcf porta,2 bsf porta,1 call ms10 dx3 bcf porta,1 bsf porta,3 call ms10 ;**********sottoprogramma controllo spostamento asse_sx sx decf assex movlw 0xff subwf assex,0 goto sbx movlw 3 movwf assex sbx movf assex goto sx1 bcf porta,2 bsf porta,0 call ms10 sx1 movlw 1 subwf assex,0 goto sx2 bcf porta,1 bsf porta,2 call ms10 sx2 movlw 2 subwf assex,0 goto sx3 bcf porta,3 bsf porta,1 call ms10 sx3 bcf porta,0 bsf porta,3 call ms10 ;**********sottoprogramma controllo spostamento asse dy dy incf assey movlw 4 61

62 subwf assey,0 goto ddy clrf assey ddy movf assey goto dy1 bcf portc,3 bsf portc,0 call ms10 dy1 movlw 1 subwf assey,0 goto dy2 bcf portc,0 bsf portc,1 call ms10 dy2 movlw 2 subwf assey,0 goto dy3 bcf portc,1 bsf portc,2 call ms10 dy3 bcf portc,2 bsf portc,3 call ms10 ;**********sottoprogramma controllo spostamento asse sy sy decf assey movlw 0xff subwf assey,0 goto sby movlw 3 movwf assey sby movf assey goto sy1 bcf portc,1 bsf portc,0 call ms10 sy1 movlw 1 subwf assey,0 goto sy2 bcf portc,2 bsf portc,1 call ms10 sy2 movlw 2 subwf assey,0 goto sy3 bcf portc,3 bsf portc,2 call ms10 sy3 bcf portc,0 bsf portc,3 call ms10 ;**********sottoprogramma posizionamento in x,y=0,0 62

63 zeroxy lp1 btfsc porte,1 goto lp2 ;controlla se azionato FCRX collegato a RE1 call sx movlw b' ' movwf portb btfss portb,7 ;premuto ESC? goto lp1 lp2 call mot_off movlw b' ' movwf portb btfss portb,7 ;premuto ESC? btfss porta,4 ;controlla se azionato FCRY collegato a RA4 goto lp222 call mot_off lp222 call sy goto lp2 ;****************routine posiziona utensile in 0,0 zero_zero movlw b' ' movwf portb btfsc portb,6 goto zzz1 btfsc porte,0 goto allarme call dx call mot_off zzz1 movlw b' ' movwf portb btfsc portb,6 goto zzz2 btfsc porte,1 goto allarme call sx call mot_off zzz2 movlw b' ' movwf portb btfsc portb,7 goto zzz3 btfsc porta,4 goto allarme call sy call mot_off zzz3 movlw b' ' movwf portb btfsc portb,7 goto zzz4 btfsc porta,5 goto allarme call dy call mot_off zzz4 movlw b' ' ;premuto #? movwf portb btfsc portb,7 goto zero_zero call mot_off allarme goto zero_zero ;***************motori a riposo mot_off clrf porta ;motore1 off bcf portc,0 ;motore2 off 63

64 64 bcf portc,1 bcf portc,2 bcf portc,3 ;area rom libera per salto pagina

65 ;**********routine che calcola tempo lavorazione cilindrica******* visual_tempo ;moltiplica dati lavorazione x 4.8 movf xl,0 ;memorizza dati in x1 movwf x1l movf xh,0 movwf x1h bcf status,0 rlf xl rlf xh bcf status,0 rlf xl rlf xh bcf status,0 rrf x1h rrf x1l movf x1l,0 addwf xl btfsc status,0 incf xh movf x1h,0 addwf xh bcf status,0 rrf x1h rrf x1l bcf status,0 rrf x1h rrf x1l bcf status,0 rrf x1h rrf x1l movf x1l,0 addwf xl btfsc status,0 incf xh movf x1h,0 addwf xh movf yl,0 ;memorizza dati in y1 movwf y1l movf yh,0 65

66 movwf y1h bcf status,0 rlf yl rlf yh bcf status,0 rlf yl rlf yh bcf status,0 rrf y1h rrf y1l movf y1l,0 addwf yl btfsc status,0 incf yh movf y1h,0 addwf yh bcf status,0 rrf y1h rrf y1l bcf status,0 rrf y1h rrf y1l bcf status,0 rrf y1h rrf y1l movf y1l,0 addwf yl btfsc status,0 incf yh movf y1h,0 addwf yh clrf em1 ;emula lavorazione cilindrica clrf timel clrf timeh movf xl,0 ;memorizza dati per lavorazione movwf mxl movwf x1l movf xh,0 movwf mxh movwf x1h movf yl,0 movwf mem1 movf yh,0 movwf mem2 lav_cie clrf flag ;inizio lavorazione movf mxl,0 ;memorizza dati in x1 movwf x1l movf mxh,0 movwf x1h lav_cile movf x1l ;controlla se zero goto lavc_xe incf em1 movlw d'100' subwf em1,0 btfss status,0 goto e1 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh e1 decf x1l ;controlla se zero goto lav_cile lavc_xe movf x1h goto lavc_1e 66

67 e2 incf em1 movlw d'100' subwf em1,0 btfss status,0 goto e2 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh decf x1h decf x1l goto lav_cile lavc_1e movf mem1 ;controlla posizione asse y goto lavc_ye incf em1 movlw d'100' subwf em1,0 btfss status,0 goto e3 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh e3 decf mem1 goto lavflage lavc_ye movf mem2 goto lav_coute incf em1 movlw d'100' subwf em1,0 btfss status,0 goto e4 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh e4 decf mem2 decf mem1 lavflage incf flag movlw 1 subwf flag,0 goto lav_cie movf mxl,0 ;memorizza dati in x1 movwf x1l movf mxh,0 movwf x1h lavr1e movf x1l ;controlla se zero goto lavr2e incf em1 movlw d'100' subwf em1,0 btfss status,0 goto e5 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh e5 decf x1l ;controlla se zero goto lavr1e lavr2e movf x1h 67

68 goto lavc_1e incf em1 movlw d'100' subwf em1,0 btfss status,0 goto e6 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh e6 decf x1h decf x1l goto lavr1e lav_coute incf em1 ;aggiusta tempo di 1 secondo movlw d'100' subwf em1,0 btfss status,0 goto e9 movlw 1 addwf timel btfsc status,0 incf timeh e9 clrf mem1 ;converti tempo in minuti movf timel,0 movwf mem2 lt11c movlw d'60' subwf mem2 btfss status,0 goto lt21c subwf timel incf mem1 goto lt11c lt21c movf timeh goto lt31c decf timeh movlw d'60' subwf timel incf mem1 goto lt11c lt31c clrf dmin2 ;converti minuti in BCD movf mem1,0 movwf mem2 lt331c movlw d'10' subwf mem2 btfss status,0 goto lt41c subwf mem1 incf dmin2 goto lt331c lt41c movf mem1,0 movwf umin2 clrf dsec2 ;converti secondi in BCD movf timel,0 movwf mem2 lt441c movlw d'10' subwf mem2 btfss status,0 goto lt51c subwf timel incf dsec2 goto lt441c lt51c movf timel,0 movwf usec2 68

69 ;**********routine che calcola passi motore ******* passi_m ;moltiplica dati lavorazione x 4.8 movf xl,0 ;memorizza dati in x1 movwf x1l movwf pendl movf xh,0 movwf x1h movwf pendh bcf status,0 rlf xl rlf xh bcf status,0 rlf xl rlf xh bcf status,0 rrf x1h rrf x1l movf x1l,0 addwf xl btfsc status,0 incf xh movf x1h,0 addwf xh bcf status,0 rrf x1h rrf x1l bcf status,0 rrf x1h rrf x1l bcf status,0 rrf x1h rrf x1l movf x1l,0 addwf xl btfsc status,0 incf xh movf x1h,0 addwf xh movf ylc,0 ;memorizza dati in y1 movwf y1l movf xl,0 ;salva dati per calcolo tempo movf xh,0 ;************* routine che calcola tempo lavorazione ******** visual_tempo1 clrf em1 ;emula lavorazione conica clrf timel clrf timeh movf xl,0 ;memorizza dati per lavorazione movwf mxl movf xh,0 movwf mxh in_cone movf gradino,0 movwf contat movf mxl,0 ;memorizza dati per lavorazione movwf x1l movf mxh,0 movwf x1h lavo_ce movf x1l ;controlla se zero goto lavoc_xe incf em1 movlw d'100' subwf em1,0 btfss status,0 goto ee1 clrf em1 69

70 movlw 1 addwf timel btfsc status,0 incf timeh ee1 decfsz contat ;aggiorna calcolo gradino goto ccc1e goto salto_ge ccc1e decf x1l ;controlla se zero goto lavo_ce lavoc_xe movf x1h goto fine_cone incf em1 movlw d'100' subwf em1,0 btfss status,0 goto ee2 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh ee2 decf x1h decf x1l decfsz contat ;aggiorna calcolo gradino goto ccc2e goto salto_ge ccc2e goto lavo_ce salto_ge incf em1 movlw d'100' subwf em1,0 btfss status,0 goto ee3 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh ee3 movf gradino,0 subwf mxl btfsc status,0 goto ritornoe movf mxh goto fine_cone decf mxh ritornoe movf x1l goto lavrc_xe incf em1 movlw d'100' subwf em1,0 btfss status,0 goto ee4 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh ee4 decf x1l ;controlla se zero goto ritornoe lavrc_xe movf x1h goto torne incf em1 ;ritorno con lavorazione 70

71 movlw d'100' subwf em1,0 btfss status,0 goto ee5 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh ee5 decf x1h decf x1l goto ritornoe torne movf mxl,0 ;memorizza dati in x1 movwf x1l movf mxh,0 movwf x1h rito_ve movf x1l ;ritorno senza lavorazione goto rito_v1e incf em1 movlw d'100' subwf em1,0 btfss status,0 goto ee6 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh ee6 decf x1l ;controlla se zero goto rito_ve rito_v1e movf x1h goto in_cone incf em1 movlw d'100' subwf em1,0 btfss status,0 goto ee7 clrf em1 movlw 1 addwf timel btfsc status,0 incf timeh ee7 decf x1h decf x1l goto rito_ve fine_cone incf em1 ;aggiusta tempo di 1 secondo movlw d'100' subwf em1,0 btfss status,0 goto ee9 movlw 1 addwf timel btfsc status,0 incf timeh ee9 clrf mem1 ;converti tempo in minuti movf timel,0 movwf mem2 lt11 movlw d'60' subwf mem2 btfss status,0 goto lt21 subwf timel incf mem1 goto lt11 lt21 movf timeh 71

72 goto lt31 decf timeh movlw d'60' subwf timel incf mem1 goto lt11 lt31 clrf dmin2 ;converti minuti in BCD movf mem1,0 movwf mem2 lt331 movlw d'10' subwf mem2 btfss status,0 goto lt41 subwf mem1 incf dmin2 goto lt331 lt41 movf mem1,0 movwf umin2 clrf dsec2 ;converti secondi in BCD movf timel,0 movwf mem2 lt441 movlw d'10' subwf mem2 btfss status,0 goto lt51 subwf timel incf dsec2 goto lt441 lt51 movf timel,0 movwf usec2 end 72

73 MODELLO unimat 3 Progetto della classe V A/Z Coordinatore del progetto :Ins. ZANIOL ITALO Équipe Riccardo Palù Domenico De Luca Stefano Crepaldi Mauro Tosatto Loris Visintin 73

74 Egregio Cliente, ci congratuliamo e La ringraziamo per aver scelto il nostro prodotto UNIMAT 3. Abbiamo preparato questo libretto di istruzioni per consentirle di apprezzare le qualità di questo tornio. Le raccomandiamo di leggerloattentamente in tutte le sue parti prima di accingersi per la prima volta all utilizzo. In esso sono contenute informazioni, consigli e Avvertenze. All interno del manuale sono stati inseriti dei consigli utili per la manutenzione periodica e per l uso coretto di UNIMAT 3 e del suo mantenimento ottimale. Cordialmente. V A/Z serale 74

75 NOME DEI COMPONENTI E FUNZIONI VISTA FRONTALE DEL TORNIO VISTA DALL ALTO DEL TORNIO 75

Lezione 4. Figura 1. Schema di una tastiera a matrice di 4x4 tasti

Lezione 4. Figura 1. Schema di una tastiera a matrice di 4x4 tasti Lezione 4 Uno degli scogli maggiori per chi inizia a lavorare con i microcontroller, è l'interfacciamento con tastiere a matrice. La cosa potrebbe a prima vista sembrare complessa, ma in realtà è implementabile

Dettagli

CIRCUITO DI TEST E SOFTWARE UTILIZZATI

CIRCUITO DI TEST E SOFTWARE UTILIZZATI CIRCUITO DI TEST E SOFTWARE UTILIZZATI Circuito di Test Nello schema elettrico di figura A è rappresentato un circuito, realizzabile anche senza l ausilio di un circuito stampato, che consente di testare

Dettagli

Lezione 8. Figura 1. Configurazione del registro INTCON

Lezione 8. Figura 1. Configurazione del registro INTCON Lezione 8 In questa puntata, ci dedicheremo all'impiego dei cosiddetti "interrupt", che tanto incutono temore ai più inesperti. Ma che cosa sono questi interrupt? Come abbiamo già visto, un programma non

Dettagli

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON0... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON...

A/D CON PIC 16F877. Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2 ADCON0... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON... A/D CON PIC 16F877 Sommario INTRODUZIONE... 2 SELEZIONARE I BANCHI... 2... 4 ADCS1, ADCS0... 4 CH2, CH1 E CH0... 5 GO/DONE... 6 ADON... 7 ESEMPIO 1... 7 ADCON1... 8 ADFM... 8 PGF3, PGF1 E PGF0... 9 ESEMPIO

Dettagli

CORSO SERALE ( TDP ) DEMOBOARD FN1Z PER PIC 16F877/16F877A

CORSO SERALE ( TDP ) DEMOBOARD FN1Z PER PIC 16F877/16F877A ITIS M. PLANCK LANCENIGO DI VILLORBA (TV) A.S. 2006/07 CLASSE 4A/ SERALE Corso di elettronica e telecomunicazioni Ins. Zaniol Italo CORSO SERALE ( TDP ) DEMOBOARD FN1Z PER PIC 16F877/16F877A Presentazione

Dettagli

IL TRASFORMATORE Prof. S. Giannitto Il trasformatore è una macchina in grado di operare solo in corrente alternata, perché sfrutta i principi dell'elettromagnetismo legati ai flussi variabili. Il trasformatore

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

ZIMO. Decoder per accessori MX81. Manuale istruzioni del. nella variante MX81/N per il formato dei dati NMRA-DCC

ZIMO. Decoder per accessori MX81. Manuale istruzioni del. nella variante MX81/N per il formato dei dati NMRA-DCC ZIMO Manuale istruzioni del Decoder per accessori MX81 nella variante MX81/N per il formato dei dati NMRA-DCC etichetta verde Sommario 1. GENERALITÀ... 3 2. CARATTERISTICHE E DATI TECNICI... 3 3. COLLEGAMENTO

Dettagli

10. Funzionamento dell inverter

10. Funzionamento dell inverter 10. Funzionamento dell inverter 10.1 Controllo prima della messa in servizio Verificare i seguenti punti prima di fornire alimentazione all inverter: 10.2 Diversi metodi di funzionamento Esistono diversi

Dettagli

OSCILLATORI AL QUARZO: CONTASECONDI

OSCILLATORI AL QUARZO: CONTASECONDI ... OSCILLATORI AL QUARZO: CONTASECONDI di Maurizio Del Corso m.delcorso@farelettronica.com Come può un cristallo di quarzo oscillare ad una determinata frequenza? Quale spiegazione fisica c è dietro a

Dettagli

Circuito di pilotaggio ON OFF con operazionale

Circuito di pilotaggio ON OFF con operazionale PREMESSA Circuito di pilotaggio ON OFF con operazionale A cura del Prof. Marco Chirizzi www.marcochirizzi.it Si supponga di dovere progettare un circuito di pilotaggio ON OFF in grado di mantenere un fluido

Dettagli

TECNOLOGIA DELLE RESISTENZE

TECNOLOGIA DELLE RESISTENZE I RESISTORI (Resistenze) TECNOLOGIA DELLE RESISTENZE Si definiscono i Resistori (o Resistenze) i componenti di un circuito che presentano fra i loro terminali una resistenza elettrica. Le Resistenze servono

Dettagli

ESERCITAZIONE Scrittura di un programma CNC per la fresatura di un componente dato

ESERCITAZIONE Scrittura di un programma CNC per la fresatura di un componente dato ESERCITAZIONE Scrittura di un programma CNC per la fresatura di un componente dato Nella presente esercitazione si redige il programma CNC per la fresatura del pezzo illustrato nelle Figure 1 e 2. Figura

Dettagli

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari A.A. 2012 2013 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo

Dettagli

TASTIERA DI COMANDO E CONTROLLO PER INVERTERS EL.-5000

TASTIERA DI COMANDO E CONTROLLO PER INVERTERS EL.-5000 ELCOM S.R.L. TASTIERA DI COMANDO E CONTROLLO PER INVERTERS EL.-5000 ( Rev. 0.3s ) MANUALE USO TASTIERA EL.-5000 I pulsanti hanno le seguenti funzioni: Comando di START abilitazione alla marcia con accensione

Dettagli

PROGETTAZIONE DI UN CONTROLLO ON-OFF CON CRITERI E METODOLOGIA

PROGETTAZIONE DI UN CONTROLLO ON-OFF CON CRITERI E METODOLOGIA TECNICO DELLE INDUSTRIE ELETTRONICHE Misura n.3 A.s. 2012-13 PROGETTAZIONE DI UN CONTROLLO ON-OFF CON CRITERI E METODOLOGIA Ipsia E. Fermi Catania Laboratorio di Sistemi 2012-13 mis.lab. n.2 Pag. 0 Controllo

Dettagli

RIPETITORE DI SEGNALE WIRELESS PER SISTEMA VIA RADIO ART. 45RPT000

RIPETITORE DI SEGNALE WIRELESS PER SISTEMA VIA RADIO ART. 45RPT000 RIPETITORE DI SEGNALE WIRELESS PER SISTEMA VIA RADIO ART. 45RPT000 Leggere questo manuale prima dell uso e conservarlo per consultazioni future 1 DESCRIZIONE GENERALE L espansore senza fili è un modulo

Dettagli

Alimentatore con controllo remoto per Protezione Catodica Mod. CT36

Alimentatore con controllo remoto per Protezione Catodica Mod. CT36 Alimentatore con controllo remoto per Protezione Catodica Mod. CT36 Telemagnetica S.r.l. Via Teocrito, 36-20128 Milano Tel. +39-022552900 - Fax +39-022553097 E-Mail: info@telemagnetica.com Http:\\ Gennaio

Dettagli

1). Descrizione dell impianto attraverso uno schema e specifica della funzione dei componenti.

1). Descrizione dell impianto attraverso uno schema e specifica della funzione dei componenti. SOLUZIONE TEMA MINISTERIALE TECNICO DELLE INDUSTRIE ELETTRICHE ED ELETTRONICHE 2012 1). Descrizione dell impianto attraverso uno schema e specifica della funzione dei componenti. L impianto elettrico a

Dettagli

SCHEDA DI CONTROLLO MOTORE BRUSHLESS BBL_198

SCHEDA DI CONTROLLO MOTORE BRUSHLESS BBL_198 SCHEDA DI CONTROLLO MOTORE BRUSHLESS BBL_198 MANUALE D USO E DOCUMENTAZIONE DESCRIZIONE PAG. 1 CARATTERISTICHE E SPECIFICHE 1 SCHEMA A BLOCCHI 2 FUNZIONAMENTO E USO DISPOSITIVO 3 LAYOUT DISPOSITIVO 4 DESCRIZIONE

Dettagli

INTEGRATORE E DERIVATORE REALI

INTEGRATORE E DERIVATORE REALI INTEGRATORE E DERIVATORE REALI -Schemi elettrici: Integratore reale : C1 R2 vi (t) R1 vu (t) Derivatore reale : R2 vi (t) R1 C1 vu (t) Elenco componenti utilizzati : - 1 resistenza da 3,3kΩ - 1 resistenza

Dettagli

ESERCIZI - SERIE N.1

ESERCIZI - SERIE N.1 ESERCIZI - SERIE N.1 ACQUISIZIONE DELLO STATO DI SEGNALI ON/OFF Problema: acquisizione, da parte di un'unità di elaborazione realizzata con tecnologia a funzionalità programmata, di un'informazione proveniente

Dettagli

COS'E' UN IMPIANTO FOTOVOLTAICO E COME FUNZIONA

COS'E' UN IMPIANTO FOTOVOLTAICO E COME FUNZIONA COS'E' UN IMPIANTO FOTOVOLTAICO E COME FUNZIONA Il principio di funzionamento: la cella fotovoltaica Le celle fotovoltaiche consentono di trasformare direttamente la radiazione solare in energia elettrica,

Dettagli

Dispositivo di conversione di energia elettrica per aerogeneratori composto da componenti commerciali.

Dispositivo di conversione di energia elettrica per aerogeneratori composto da componenti commerciali. Sede legale: Viale Vittorio Veneto 60, 59100 Prato P.IVA /CF 02110810971 Sede operativa: Via del Mandorlo 30, 59100 Prato tel. (+39) 0574 550493 fax (+39) 0574 577854 Web: www.aria-srl.it Email: info@aria-srl.it

Dettagli

Controllo di un Motore Elettrico in Corrente Continua

Controllo di un Motore Elettrico in Corrente Continua Controllo di un Motore Elettrico in Corrente Continua ARSLAB - Autonomous and Robotic Systems Laboratory Dipartimento di Matematica e Informatica - Università di Catania, Italy santoro@dmi.unict.it Programmazione

Dettagli

Comprendere il funzionamento dei convertitori V/f Saper effettuare misure di collaudo

Comprendere il funzionamento dei convertitori V/f Saper effettuare misure di collaudo SCH 33 Voltmetro a 3 digit Obiettivi Comprendere il funzionamento dei convertitori V/f Saper effettuare misure di collaudo IC1 = CA 3162 A/D converter for 3-Digit Display IC2 = CA 3161 BCD to seven segment

Dettagli

Chiave DTMF con PIC16F84. Angelo - IT9DOA

Chiave DTMF con PIC16F84. Angelo - IT9DOA Chiave DTMF con PIC16F84 Angelo - IT9DOA Mettendo in ordine la mia libreria ho avuto modo di rileggere degli appunti che trattano alcuni circuiti elettronici che ho realizzato diversi anni fa e di cui

Dettagli

Manuale d uso. Display remoto MT-1 ITALIANO

Manuale d uso. Display remoto MT-1 ITALIANO Manuale d uso Display remoto MT-1 per regolatore di carica REGDUO ITALIANO Il display remoto MT-1 è un sistema per monitorare e controllare a distanza tutte le funzioni dei regolatori RegDuo. Grazie al

Dettagli

INTERFACCIA PER PC MEDIANTE PORTA SERIALE

INTERFACCIA PER PC MEDIANTE PORTA SERIALE INTERFACCIA PER PC MEDIANTE PORTA SERIALE Scheda d interfaccia per PC da collegare alla porta seriale. Consente di controllare otto uscite a relè e di leggere otto ingressi digitali e due analogici. Un

Dettagli

POLITECNICO DI TORINO

POLITECNICO DI TORINO NEWSLETTER N2 - I dispositivi elettronici posti a protezione degli operatori E stato indicato nella precedente newsletter che la sicurezza degli operatori in un contesto industriale è affidata a una catena

Dettagli

Costruzione e funzionamento

Costruzione e funzionamento 4.4 Dispositivi di sicurezza I seguenti dispositivi di sicurezza sono installati e non possono essere modificati: PulsanteARRESTOdiEMERGENZA Premendo il pulsante ARRESTO di EMERGENZA si disattiva immediatamente

Dettagli

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM Il computer è un apparecchio elettronico che riceve dati di ingresso (input), li memorizza e gli elabora e fornisce in uscita i risultati (output). Il computer è quindi un sistema per elaborare informazioni

Dettagli

7^ parte : Acquisizione della temperatura con LM35 e visualizzazione su display LCD. Author: Ing. Sebastiano Giannitto (ITIS M.

7^ parte : Acquisizione della temperatura con LM35 e visualizzazione su display LCD. Author: Ing. Sebastiano Giannitto (ITIS M. 7^ parte : Acquisizione della temperatura con LM35 e visualizzazione su display LCD Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) Esperienzan 6 Lo scopo del progetto è realizzare un termometro

Dettagli

Progetto di un alimentatore con Vo = +5 V e Io = 1 A

Progetto di un alimentatore con Vo = +5 V e Io = 1 A Progetto di un alimentatore con o +5 e Io A U LM7805/TO IN OUT S F T 5 4 8 - ~ ~ + + C GND + C + C3 3 R D LED Si presuppongono noti i contenuti dei documenti Ponte di Graetz Circuito raddrizzatore duale

Dettagli

1. Introduzione 2. Istruzioni per la sicurezza. 2 Verifica imballo 2. 2. Descrizione. 2. 3. Specifiche... 3. Dati Tecnici 3 Dimensioni...

1. Introduzione 2. Istruzioni per la sicurezza. 2 Verifica imballo 2. 2. Descrizione. 2. 3. Specifiche... 3. Dati Tecnici 3 Dimensioni... e allarme di MIN per sensore di flusso per basse portate ULF MANUALE di ISTRUZIONI IT 10-11 Indice 1. Introduzione 2 Istruzioni per la sicurezza. 2 Verifica imballo 2 2. Descrizione. 2 3. Specifiche...

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. Paolo Domenici PREFAZIONE Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte

Dettagli

Manuale Terminal Manager 2.0

Manuale Terminal Manager 2.0 Manuale Terminal Manager 2.0 CREAZIONE / MODIFICA / CANCELLAZIONE TERMINALI Tramite il pulsante NUOVO possiamo aggiungere un terminale alla lista del nostro impianto. Comparirà una finestra che permette

Dettagli

EasyPrint v4.15. Gadget e calendari. Manuale Utente

EasyPrint v4.15. Gadget e calendari. Manuale Utente EasyPrint v4.15 Gadget e calendari Manuale Utente Lo strumento di impaginazione gadget e calendari consiste in una nuova funzione del software da banco EasyPrint 4 che permette di ordinare in maniera semplice

Dettagli

Manuale di programmazione BerMar_Drive_Software

Manuale di programmazione BerMar_Drive_Software Invert er LG Manuale di programmazione BerMar_Drive_Software Mot ori elet t ric i Informazioni preliminari... 2 Installazione... 3 Avvio del programma... 4 Funzionamento Off-Line... 7 Caricamento di una

Dettagli

Le macchine elettriche

Le macchine elettriche Le macchine elettriche Cosa sono le macchine elettriche? Le macchine elettriche sono dispositivi atti a: convertire energia elettrica in energia meccanica; convertire energia meccanica in energia elettrica;

Dettagli

PLC Programmable Logic Controller

PLC Programmable Logic Controller PLC Programmable Logic Controller Sistema elettronico, a funzionamento digitale, destinato all uso in ambito industriale, che utilizza una memoria programmabile per l archiviazione di istruzioni orientate

Dettagli

Visione d insieme DOMANDE E RISPOSTE SULL UNITÀ

Visione d insieme DOMANDE E RISPOSTE SULL UNITÀ Visione d insieme DOMANDE E RISPOSTE SULL UNITÀ Che cos è la corrente elettrica? Nei conduttori metallici la corrente è un flusso di elettroni. L intensità della corrente è il rapporto tra la quantità

Dettagli

Introduzione 2. Serie P20 4. Serie P28 6. Serie P35 8. Serie P39 10. Serie P42 12. Serie P57 14. Serie P60 16. Serie P85 18.

Introduzione 2. Serie P20 4. Serie P28 6. Serie P35 8. Serie P39 10. Serie P42 12. Serie P57 14. Serie P60 16. Serie P85 18. INDICE Introduzione 2 Serie P20 4 Serie P28 6 Serie P35 8 Serie P39 10 Serie P42 12 Serie P57 14 Serie P60 16 Serie P85 18 Serie P110 20 Schemi di connessione 22 Codifica 23 Note 24 Motori Passo Passo

Dettagli

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi. IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi. Negli ultimi anni, il concetto di risparmio energetico sta diventando di fondamentale

Dettagli

PROCESSOR 16F84A. ;configurazione FUSES: oscillatore XT, WDT disabilitato PWRT abilitato, CP disabilitato config 0x3FF1

PROCESSOR 16F84A. ;configurazione FUSES: oscillatore XT, WDT disabilitato PWRT abilitato, CP disabilitato config 0x3FF1 ---- ; Programma per ROBOT MDB3F2004-05 Evolution ; Autore: MICCI Antonello copyright 2005 ---- ------------------------- ;Piedino RA0 ingresso fotocellula dx livello basso rilevazione ostacolo ;Piedino

Dettagli

La tecnica DDS. Un generatore di toni DTMF

La tecnica DDS. Un generatore di toni DTMF La tecnica DDS 32 Un generatore di toni DTMF standard con selezione a tastiera è presentato in quest articolo come applicazione della tecnica DDS (Direct Digital Synthesys), mediante un microprocessore.

Dettagli

PANNELLO REMOTO PER BARRIERE 48BFC000 E 48BFC001

PANNELLO REMOTO PER BARRIERE 48BFC000 E 48BFC001 PANNELLO REMOTO PER BARRIERE 48BFC000 E 48BFC001 ART.48BFA000 Leggere questo manuale prima dell uso e conservarlo per consultazioni future 1 CARATTERISTICHE GENERALI Il terminale 48BFA000 permette di

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

Introduzione all analisi dei segnali digitali.

Introduzione all analisi dei segnali digitali. Introduzione all analisi dei segnali digitali. Lezioni per il corso di Laboratorio di Fisica IV Isidoro Ferrante A.A. 2001/2002 1 Segnali analogici Si dice segnale la variazione di una qualsiasi grandezza

Dettagli

B 5000 Sistema di saldatura

B 5000 Sistema di saldatura B 5000 Sistema di saldatura Oggi per dimostrare la propria competenza tecnica e soddisfare le esigenze del mercato, un costruttore di impianti per produzioni in massa di componenti deve conoscere a fondo

Dettagli

09-05-07. Introduzione ai microcontrollori PIC

09-05-07. Introduzione ai microcontrollori PIC 09-05-07 Introduzione ai microcontrollori PIC Daniele Beninato: Nicola Trivellin: beninato@dei.unipd.it trive1@tin.it Che cosa è un microcontrollore? Un microcontrollore è un sistema a microprocessore

Dettagli

Corso di Automazione industriale

Corso di Automazione industriale Corso di Automazione industriale Lezione 11 Macchine utensili e controllo numerico Programmazione CNC Università degli Studi di Bergamo, Automazione Industriale, A.A. 2015/2016, A. L. Cologni 1 Introduzione

Dettagli

IL CONTROLLO AUTOMATICO: TRASDUTTORI, ATTUATORI CONTROLLO DIGITALE, ON-OFF, DI POTENZA

IL CONTROLLO AUTOMATICO: TRASDUTTORI, ATTUATORI CONTROLLO DIGITALE, ON-OFF, DI POTENZA IL CONTROLLO AUTOMATICO: TRASDUTTORI, ATTUATORI CONTROLLO DIGITALE, ON-OFF, DI POTENZA TRASDUTTORI In un sistema di controllo automatico i trasduttori hanno il compito di misurare la grandezza in uscita

Dettagli

ISTITUTO D ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA ANNO SCOLASTICO 2015/2016

ISTITUTO D ISTRUZIONE SUPERIORE L. EINAUDI ALBA ANNO SCOLASTICO 2015/2016 ISTITUTO D ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA ANNO SCOLASTICO 2015/2016 CLASSE 5 I Disciplina: Sistemi automatici Docenti: Linguanti Vincenzo Gasco Giovanni PROGETTAZIONE DIDATTICA ANNUALE COMPETENZE

Dettagli

PREMESSA AUTOMAZIONE E FLESSIBILITA'

PREMESSA AUTOMAZIONE E FLESSIBILITA' PREMESSA In questa lezione analizziamo i concetti generali dell automazione e confrontiamo le diverse tipologie di controllo utilizzabili nei sistemi automatici. Per ogni tipologia si cercherà di evidenziare

Dettagli

MODELLIZZAZIONE, CONTROLLO E MISURA DI UN MOTORE A CORRENTE CONTINUA

MODELLIZZAZIONE, CONTROLLO E MISURA DI UN MOTORE A CORRENTE CONTINUA MODELLIZZAZIONE, CONTROLLO E MISURA DI UN MOTORE A CORRENTE CONTINUA ANDREA USAI Dipartimento di Informatica e Sistemistica Antonio Ruberti Andrea Usai (D.I.S. Antonio Ruberti ) Laboratorio di Automatica

Dettagli

2 DESCRIZIONE MODALITÀ

2 DESCRIZIONE MODALITÀ ISA 9001 1. PUNTI GENERALI 1.1 Modalità 1.2 Pulsanti 1) Pulsante C (Corona) 2) Pulsante A 3) Pulsante B 4) Pulsante D 2 DESCRIZIONE MODALITÀ 2.1 Modalità TIME1 (Fuso orario locale) 2.2 Modalità data 2.3

Dettagli

Regolatore di carica per micro turbine eoliche. mod. EOREG700V54

Regolatore di carica per micro turbine eoliche. mod. EOREG700V54 Regolatore di carica per micro turbine eoliche mod. EOREG700V54 Il regolatore di carica/carica batterie EOREG per batterie al Pb, è stato sviluppato tenendo presenti le peculiari caratteristiche delle

Dettagli

Programmatore per telaio scheller

Programmatore per telaio scheller Divo Di Lupo Sistemi per telai Cotton Bentley Monk Textima Scheller Closa Boehringer http://www.divodilupo.191.it/ Programmatore per telaio scheller Attuatore USB semplificato Numero totale di pagine =

Dettagli

ISTITUTO D ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA

ISTITUTO D ISTRUZIONE SUPERIORE L. EINAUDI ALBA ISTITUTO D ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA CLASSE 5H Docenti: Raviola Giovanni Moreni Riccardo Disciplina: Sistemi elettronici automaticih PROGETTAZIONE DIDATTICA ANNUALE COMPETENZE FINALI Al termine

Dettagli

Impianti per il trasferimento di energia

Impianti per il trasferimento di energia Capitolo 2 Impianti per il trasferimento di energia 2.1 2.1 Introduzione In molte zone di un velivolo è necessario disporre di energia, in modo controllato; questo è necessario per molte attività, ad esempio

Dettagli

BICI 2000 - Versione 1.9

BICI 2000 - Versione 1.9 Pagina 1/8 BICI 2000 - Versione 1.9 Il controllo BICI 2000 nasce per il pilotaggio di piccoli motori a magnete permanente in alta frequenza per veicoli unidirezionali alimentati da batteria. La sua applicazione

Dettagli

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore

Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore Manuale d uso per la raccolta: Sicurezza degli impianti di utenza a gas - Postcontatore 1. Obbligo di comunicazione dei dati... 2 2. Accesso alla raccolta... 2 3. Compilazione... 6 2.1 Dati generali Sicurezza

Dettagli

TERMOSTATO SETTIMANALE PROGRAMMABILE

TERMOSTATO SETTIMANALE PROGRAMMABILE CARATTERISTICHE E FUNZIONAMENTO P406 TERMOSTATO SETTIMANALE PROGRAMMABILE (cod. P406) GENERALITA Elegante termostato settimanale ideale per controllare impianti di riscaldamento o condizionamento che offre

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Caratteristiche elettriche

Caratteristiche elettriche RWR10 / RWR 20 REGOLATORE DI CARICA Regolatore di carica Caratteristiche Per batterie al piombo ermetiche,acido libero Auto riconoscimento tensione di batteria(12/24v) Max corrente di ricarica 10A (WR10)

Dettagli

Verificare il funzionamento delle memorie RAM Saper effettuare misure di collaudo. Dip switch Pulsante n.a. Octal tri-state buffer IC2 = MM 2114

Verificare il funzionamento delle memorie RAM Saper effettuare misure di collaudo. Dip switch Pulsante n.a. Octal tri-state buffer IC2 = MM 2114 SCH 31 Scrittura/lettura RAM Obiettivi Strumenti e componenti Verificare il funzionamento delle memorie RAM Saper effettuare misure di collaudo S1 S5 P1 IC1 = 74LS244 Dip switch Pulsante n.a. Octal tri-state

Dettagli

Carica batterie. ADATTATORE 9V PER ACCENDISIGARI Fornisce una tensione di +9V dalla presa accendisigari da 12V dell automobile.

Carica batterie. ADATTATORE 9V PER ACCENDISIGARI Fornisce una tensione di +9V dalla presa accendisigari da 12V dell automobile. SPECIALE 200 PROGETTI Fare Elettronica EXTRA +9V E -9V DA UN UNICA BATTERIA Il circuito presentato impiega un MAX1044, un convertitore di tensione che permette di ricavare da una semplice batteria da 9V

Dettagli

Shine Vision Manuale utente

Shine Vision Manuale utente Shine Vision Manuale utente 1 Descrizione del prodotto Il sistema di monitoraggio Shine Vision è composto da un trasmettitore e da un ricevitore (schermo LCD) che permette la visualizzazione dei dati di

Dettagli

NTC E MISURA DELLA TEMPERATURA CON ARDUINO

NTC E MISURA DELLA TEMPERATURA CON ARDUINO NTC E MISURA DELLA TEMPERATURA CON ARDUINO Una NTC (Negative Temperature Coefficient resistenza a coefficiente di temperatura negativo) è una resistenza che cambia il suo valore con il variare della temperatura.

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Motore passo passo: Laboratorio di Elettronica 1

Motore passo passo: Laboratorio di Elettronica 1 Motore passo passo: Laboratorio di Elettronica 1 Motore passo passo: Cuscinetto Rotore Cuscinetto Statore Laboratorio di Elettronica 2 Motore passo passo: Statore ( #8 bobine contrapposte a due a due:

Dettagli

Gli attuatori. Breve rassegna di alcuni modelli o dispositivi di attuatori nel processo di controllo

Gli attuatori. Breve rassegna di alcuni modelli o dispositivi di attuatori nel processo di controllo Gli attuatori Breve rassegna di alcuni modelli o dispositivi di attuatori nel processo di controllo ATTUATORI Definizione: in una catena di controllo automatico l attuatore è il dispositivo che riceve

Dettagli

Ricevitore Supervisionato RX-24 Dati tecnici

Ricevitore Supervisionato RX-24 Dati tecnici Ricevitore Supervisionato RX-24 Dati tecnici Gestione a microprocessore 24 sensori memorizzabili 8 uscite allarme uno per canale 8 canali con 3 sensori per ogni canale 10 telecomandi programmabili 1 uscita

Dettagli

Interruttore automatico

Interruttore automatico Interruttore automatico Dimensionamento degli interruttori automatici adeguati per inverter sotto effetti FV specifici Contenuto La scelta dell'interruttore automatico corretto dipende da diversi fattori.

Dettagli

IL CONTATORE ELETTRONICO Istruzioni per l uso.

IL CONTATORE ELETTRONICO Istruzioni per l uso. IL CONTATORE ELETTRONICO Istruzioni per l uso. Il Contatore Elettronico Enìa SpA ha avviato la sostituzione del vecchio contatore elettromeccanico, che si limitava a misurare i consumi di energia elettrica,

Dettagli

GW 90 796: OROLOGIO 2 CANALI

GW 90 796: OROLOGIO 2 CANALI 1.0 PREFAZIONE Leggere attentamente queste istruzioni d uso per utilizzare in modo ottimale tutte le funzioni dell interruttore orario. Il progetto di questo interruttore orario digitale, comandato da

Dettagli

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

PLC51 AUTOMAZIONE. di G.Filella e C. Befera filella@tin.it

PLC51 AUTOMAZIONE. di G.Filella e C. Befera filella@tin.it PLC51 di G.Filella e C. Befera filella@tin.it Ecco il piccolo Davide, un ottimo esempio di come l elettronica si integra con l informatica: un potente PLC controllabile tramite la porta seriale di un personal

Dettagli

Cap. 3. APERTURA NUOVO PROGETTO

Cap. 3. APERTURA NUOVO PROGETTO GUIDA ALL USO DI CSM.1 Cap. 3. APERTURA NUOVO PROGETTO 1 3.1 Inizio della procedura 3. PERCORSO: APERTURA NUOVO PROGETTO/CORSI Dopo essersi iscritti ed avere inserito i dati inerenti l Agenzia / Ente di

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Invio SMS. DM Board ICS Invio SMS

Invio SMS. DM Board ICS Invio SMS Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove

Dettagli

ITIS MAX PLANCK ( Lancenigo di Villorba )

ITIS MAX PLANCK ( Lancenigo di Villorba ) ITIS MAX PLANCK ( Lancenigo di Villorba ) CORSO SERALE ( CLASSE 5^ ZTE ) Area di progetto anno scolastico 2006/2007 Allievi : Enrico De Marchi-Alessio Borin Tutor : Prof. Italo Zaniol GIUOCO DEL BINGO

Dettagli

Serie 40 - Mini relè per circuito stampato ed a innesto 8-10 - 16 A. Caratteristiche 40.31 40.51 40.52

Serie 40 - Mini relè per circuito stampato ed a innesto 8-10 - 16 A. Caratteristiche 40.31 40.51 40.52 Serie 40 - Mini relè per circuito stampato ed a innesto 8-10 - 16 A Caratteristiche 40.31 40.51 40.52 Relè con 1 o 2 contatti 40.31-1 contatto 10 A (passo 3.5 mm) 40.51-1 contatto 10 A (passo 5 mm) 40.52-2

Dettagli

QUADRO AUTOMATICO A MICROPROCESSORE PER GRUPPO ELETTROGENO D EMERGENZA AMICO INDICE PAG. 1. MANUALE DELL UTENTE 2 DESCRIZIONE

QUADRO AUTOMATICO A MICROPROCESSORE PER GRUPPO ELETTROGENO D EMERGENZA AMICO INDICE PAG. 1. MANUALE DELL UTENTE 2 DESCRIZIONE QUADRO AUTOMATICO A MICROPROCESSORE PER GRUPPO ELETTROGENO D EMERGENZA AMICO INDICE DESCRIZIONE PAG. 1. MANUALE DELL UTENTE 2 1.1. PRINCIPIO DI FUNZIONAMENTO 2 1.2. VISTA DEL MODULO AMICO - AMICO 3 AMICO-M-USO-ITALIANO.doc

Dettagli

LP 2000 INSTALLAZIONE E MANUTENZIONE

LP 2000 INSTALLAZIONE E MANUTENZIONE LP 2000 INSTALLAZIONE E MANUTENZIONE INDICATORE, REGOLATORE DI LIVELLO PER IL COMANDO DI DUE POMPE CON SENSORE PIEZORESISTIVO TIPO LP 2000 Questo strumento è stato studiato per dare una soluzione tecnologicamente

Dettagli

ISTITUTO PROFESSIONALE PER L'INDUSTRIA E L ARTIGIANATO ALESSANDRO VOLTA GUSPINI. PROGRAMMA DIDATTICO con riferimento al programma ministeriale

ISTITUTO PROFESSIONALE PER L'INDUSTRIA E L ARTIGIANATO ALESSANDRO VOLTA GUSPINI. PROGRAMMA DIDATTICO con riferimento al programma ministeriale ISTITUTO PROFESSIONALE PER L'INDUSTRIA E L ARTIGIANATO ALESSANDRO VOLTA GUSPINI ANNO SCOLASTICO 2013-2014 PROGRAMMA DIDATTICO con riferimento al programma ministeriale MATERIA ELETTROTECNICA ED ELETTRONICA

Dettagli

Decremento patch / canale MIDI. Incremento patch / canale MIDI. Ingresso DC 12V Memorizzazione patch. Modalità funzionamento looper

Decremento patch / canale MIDI. Incremento patch / canale MIDI. Ingresso DC 12V Memorizzazione patch. Modalità funzionamento looper POWER RETURN 7 SEND 7 RETURN 6 SEND 6 RETURN 5 SEND 5 RETURN 4 SEND 4 RETURN 3 SEND 3 RETURN 2 SEND 2 RETURN 1 SEND 1 LINK INPUT MIDI IN PICOLOOPER picolooper Version2 midi 7 8 MIDI OUT loop7 loop8 loop5

Dettagli

Manuale Software e Hardware Control lights music 1.0. Sommario. Introduzione

Manuale Software e Hardware Control lights music 1.0. Sommario. Introduzione Sommario Introduzione... 1 Installazione del Software... 1 Collegamento Hardware... 2 Descrizione della schermata principale... 3 Impostazione della scheda Audio...4 Editare un gioco di luce... 5 Introduzione

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Manuale IT_VNA by IZ1PMX

Manuale IT_VNA by IZ1PMX Manuale IT_VNA by IZ1PMX Ver. 08.1.14 Analizzatore d antenna 1-50 MHz Descrizione: IT_VNA è uno strumento in grado di misurare i parametri di un'antenna come SWR, PHASE, RETURN LOSS, RS, RX da 1 a 50 MHz.

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

ITIS ind. Elettronica etelecomunicazioni Classe IV A Area di progetto PIANOLA ELETTRONICA Studenti: Vari Manuel e Antonelli Davide

ITIS ind. Elettronica etelecomunicazioni Classe IV A Area di progetto PIANOLA ELETTRONICA Studenti: Vari Manuel e Antonelli Davide Istituto Tecnico Industriale C. Rosatelli A.S. 009/010 ITIS ind. Elettronica etelecomunicazioni Classe IV A Area di progetto PIANOLA ELETTRONICA Studenti: Vari Manuel e Antonelli Davide 1 Istituto Tecnico

Dettagli

TUTORIAL: COME USARE UN LM35 PER MISURARE UNA TEMPERATURA SU TUTTA LA SCALA CENTIGRADA

TUTORIAL: COME USARE UN LM35 PER MISURARE UNA TEMPERATURA SU TUTTA LA SCALA CENTIGRADA TUTORIAL: COME USARE UN LM35 PER MISURARE UNA TEMPERATURA SU TUTTA LA SCALA CENTIGRADA Molte persone (io compreso) che comprano la prima volta un LM35, lo fanno perché sono spinti da come sia facile da

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

PLC Sistemi a Logica Programmabile Il linguaggio Ladder-Parte

PLC Sistemi a Logica Programmabile Il linguaggio Ladder-Parte PLC Sistemi a Logica Programmabile Il linguaggio Ladder-Parte Prima Prof. Nicola Ingrosso Guida di riferimento all applicazione applicazione dei Microcontrollori Programmabili IPSIA G.Ferraris Brindisi

Dettagli

LA PROGRAMMAZIONE N10 G0 X5 Y5

LA PROGRAMMAZIONE N10 G0 X5 Y5 LA PROGRAMMAZIONE Un programma per una Macchina Utensile CNC è costituito da una sequenza logica di informazioni geometriche, tecnologiche ed ausiliarie (fasi di lavoro). Le informazioni geometriche riguardano

Dettagli