Vai al contenuto
PLC Forum


Simulatore Encoder - Con un PIC16F877


walterword

Messaggi consigliati

ciao a tutti

vorrei creare uan scatoletta magica , utile nel mio lavoro , che possa simulare

un segnale 4-20 mA , 0-10 V e due segnali sfasati di 90° A e B di un encoder incrementale.

Il tutto con un PIC16F877 , lcd ect

Per il simulatore di encoder non ho alcuna idea , a livello di gestione dei pic.

Cioe la frequenza del segnale la vorrei variabile , ma come potrei settare il timer per avere un interrupt variabile e poi il ritardo del canale B sul canale A come psoso ottenerlo ?

ciao e grazie

walter

Link al commento
Condividi su altri siti


Cioe ' ammettiamo che venga settata l'uscita del canale A , che ha una durata t

Il canale B lo devo settare quando il tempo del segnale A e' arrivato a meta

Capite che gestire il tempo cosi .... e' un po ostico , o no ?

Link al commento
Condividi su altri siti

Potrei avere un interrupt con periodo uguale alla meta del periodo dell'onda quadra dei canali , ossia , se per esempio ho un onda quadra di 1 secondo , avere un interrupt di 1/2 secondo ed incrementare un contatore

Contatore = 1 setto il canale A

Contatore = 2 setto il canale B

Contatore = 3 resetto il canale A

Contatore = 4 resetto il canale B , Contatore =0

Questo punto potrei risolverlo cosi, pero' il tempo di nitnerrupt devo settarlo

all'inizio nel firmware , non posso farlo al "volo" , quindi potrei settare un tempo

basso , tipo 50uS , e da qui incrementare un altro contatore del tempo in modo da poterlo comparare con la frequenza desiderata impostabile da lcd .

Si .... cosa ne pensate ?

Link al commento
Condividi su altri siti

Buongiorno,

nel software per fare alcune cose ci sono 1000 strade diverse, ognuna con Pro e contro.... la seconda ipotesi mi sembra buona.... io penserei anche ad un reverse dei segnali ... praticamente l'andar nel verso opposto !!!! Anch'io per la mente ho una cosetta del genere, infatti ora esiste solo alivello carta e millefori... se ti va di curiosare nel mio sito.

Ciaoooooooo

Link al commento
Condividi su altri siti

Walter fatti un timer che vale 1/4 del periodo del segnale che vuoi generare. Ad esempio immagina di generare un segnale a 1000Hz, il suo periodo vale 1ms; ti programmi il timer che genera in interupt o 0,25ms (250us).

Nella routine di interrupt ti fai un piccoli generatori di stati.

Al primo interrupt alzi il canale A, al secondo alzi il canale B, al terzo abbassi A, al quarto abbassi B, al quinto ricominci da capo.

Puoi realizzare tutto con un contatore ciclico che conta 4 impulsi e un "DO CASE".

Poi dovrai effettura il calcolo di corrispondenza tra segnale analogico e periodo del timer.

Io il problema l'ho risolto in Hw con quttro o cinque di integrati; avevo anche messo lo schema sul forum, dovrebbe esseci ancora.

Link al commento
Condividi su altri siti

grazie boss

sei sempre il migliore

Io lo voglio realizzare con un micro , c'e' l'cd ect .

Si puo fare anche con chip della serie 74xxx , porte logiche ed un clock da

555 .

Si , la tua idea rispecchia molto il mio ultimo post .

Poi per la tensione di uscita posso interfacciare degli optoisolatori ed alimentarli con tensione esterna che puo essere 15 V piuttosto che 24 V o 5 V .

Il problema principale del circuito e' il grande alimentatore che da 230 V tira fuori la +- 12V che serve anche per gli operazionali e per il chip convertitore tensione - frequenza .

DEvo vedere un po in giro cosa trovo

grazie

ciao

walter

Link al commento
Condividi su altri siti

io seguirei il suggerimento di Livo.

Se il micro ha un'analogica potresti collegare un potenziometro il valore letto lo usi come indice per ricavare da una tabella il preset da assegnare al timer che rappresenta 4*Fencoder.

Ad ogni interrupt se l'analogica è cambiata carichi il nuovo preset nel timer.

Link al commento
Condividi su altri siti

si ricavarlo da una tabella oppure calcolarlo direttamente in maniera proporzionale al valore dell ADC .

Per le alimentazioni pensavo di utilizzare un alimentatore tipo quelli dei cellulari ,

esterno , certificato e sicuro senza preoccuparmi del trafo , il ponte diodi , i ocndensatori all'interno del circuito.

Alcuni operazionali funzionano anche senza tensione negativa credo .

Gli OP mi servono per generare tensioni variabili da uscite PWM , che tra l'altro essendo TTL a 5 V le devo amplificare a 10 V , sia per l'uscita in tensione che per quella in corrente 4-20 mA .

Resnic mi dai il link del tuo sito lo guardo volentieri

ciao

walter

Link al commento
Condividi su altri siti

Ciao Walter,

Il mio sito è www.avelectron.com

Come ti dicevo c'è AVGenCam , praticamente è un generatore di camma meccanica ( sensore induttivo su camma) ... programmabile (la camma) e cui si può variare la velocità... ma come ti dicevo ora è solamente su 1000 fori !!!

Ciao Ciao

Link al commento
Condividi su altri siti

Scusami,

Non ho capito con la parte di simulazione cosa tu intenda ... Se per i segnali di uscita simulazione encoder, sono segnali digitali, quindi devi utilizzare ad esempio un transistor per mettere o meno a massa!... Sbaglio?

Link al commento
Condividi su altri siti

Intendi tensione - frequnza? Questa è la soluzione che ho adottato io. Ce ne sono della Exar e della Maxim. Poi devi farlo seguire da un F-F per ralizzare la quadratura degli impulsi e, se vuoi anche l'inversione di moto, da un paio di gate per scambiare gli impulsi sulle uscite. Ovviamente devi poi amplificare gli impulsi per simulare i diversi tipi di interfacce: PNP, NPN, line driver, etc.

Link al commento
Condividi su altri siti

mi sono spiegato male

Il convertitore frequenza -tensione lo vorrei utilizzare per avere uns egnale 0-10

V da un'uscita pwm , se non esiste un conv PWM-Tensione

Per l'encoder adottero il sistema gia descritto .

L'aggeggio che vorrei costruire dovrebbe generare segnali per encoder ma anche uscite analogiche .

ciao

walter

Link al commento
Condividi su altri siti

Se non hai problemi di velocità di risposta ti conviente filtrare pesantemente il PWM che ti esce dal PIC.

So che leggi FE e Firmware, proprio su un di queste riviste era apparso recentemente un articoletto su come usare l'uscita PWM per avere una tensione variabile.

Link al commento
Condividi su altri siti

Sono appena ritornato da un amico elettronico .

Mi ha dato un po di componenti che mi mancavano e 4 aiutini .

Esco in PWM e filtro con un condensatore prima di un OP LM358

Per le tensioni prendo la 24 vDC,un condensatore , un diodo , e in cascata

un L7815 e poi due L7805 con rispettivo diodo di protezione tra l'uscita e l'ingresso , per evitare che un brusco spegnimento mi bruci lo stabilizzatore .

La tastiera e l'lcd saranno gestiti da un PIC16F877A che in seriale inviera' i dati al

DsPIC30xxx .

Il dsPic ha 3 uscite pwm , piu che sufficienti per gestire un'analogica 0-10 V

e un generatore in corrente 4-20 (quest'ultimo devo vedere di trovare qualcosa seno uso un convertitore tensione - corrente )

Per l'encoder si fara carico il dsPic , solo che pero c'e' il problema di farlo leggere ad una scheda assi che potrebbe volere 5 o 15 o 24 V .

Quindi pensavo di utilizzare un optoisolatore CNY da alimentare sul collettore con la tensione desiderata e con dei jumpers o dip switches selezionare le resistenze di pull-up .

Un seggerimento , che poi e' simile a quello di Livio , e' che il segnale potrebbe smussarsi e non essere letto dalla scheda encoder e cosi sto pensando di mettere un bufferino oppure un flip -flop

Cosa ne pensate?

Un ingresso del DsPic sara' utilizzato come ingesso analogico per simulare un motore , solo che accettando +/- 10 V di riferimento sorgono i problemi di avere un OP ad alimentazione doppia , e qui ho trovato qualcosa di gia fatto , cioe una scheda che tratta segnali -10 /+10 V e li porta in TTL .

Se uso questa scheda devo solo preoccuparmi di aggiungere un dc-dc converter che da 24 V mi tira fuori +/- 15 V con 2 W di potenza massima , costo di circa 15 euro .

Domani faccio un disegno schematico e poi vedo di piazzare in maniera brillante i componenti sulla millefori , dopo aver collaudato il tutto su basetta .

Vediamo cosa viene fuori , ho gia i morsetti estraibili e un po di cosette carucce per rendere il progetto maneggavole , veloce e sicuro

ciao a tutti

walter

Link al commento
Condividi su altri siti

Ciao Walterwod,

Io per il mio AVGenCam ho utilizzato un solo microprocessore, e come dispositivo input ho usato un encoder manuale ( tipo quelli autoradio oppure oscilloscopio moderno) e 2 tasti. Per LCD ( testo) con 11 segnali ce la fai, quindi poi ti restano le uscite per il simulatore. Io ho usato un PIC18F4620. Sinceramente lo sviluppo di na scheda con 2 micro non mi piace... piuttosto un micro con 64 o 100 pin !

Ciaooooo

Link al commento
Condividi su altri siti

Ciao Walterwod,

propio in questi giorni mi sto interessando di questo problema, un alimentazione duale con 7815 e 7915 non è poi così difficile da realizzare e con un OP fai quello che ti serve: entri +/-10V o anche +/-4(0)..20mA ed esci +/-5V TTL, non l'ho mai fatto ma credo che sia fattibile, in caso se vogliamo propongo di farlo insieme sul forum!

Con l'occasione, visto che non ho mai utilizzato l'ADC del PIC16F877A, vorrei chiedere a chi lo sa, se un input ADC di questo micro, il quale ha risoluzione 10 bit, accetta un segnale negativo e se si come si deve collegare fisicamente?!? In pratica 2^10=1024, pertanto +/-1024 = +/-5V?

Ciao

wink.gif

Link al commento
Condividi su altri siti

No gli A/D dei PIC accettano solo tensioni positive fino a 5v. I 1024 conteggi corrispondono a tensioni eguali alla tensione di riferimento, che può essere diversa dalla tensione di alimentazione, comunque <=5.5v

Poi nelle inizializzazioni devi definire se usi la risoluzione di 8 o 10 bit e se vuoi il risultato giustificato a destra o a sinistra.

Link al commento
Condividi su altri siti

Ciao Livio,

grazie per la risposta! wink.gif

Come fare allora per leggere un segnale bipolare con il PIC?

Visto che siamo quì ne approfitto per chiedere: esistono PIC con D/A? Non ne trovo sul sito microchip, perchè?

Ritornando al discorso di prima, riguardo l'alimentazione duale, propongo a Walterwod uno schemetto quì sotto (da +/-4..20 a +/- 5V), il quale sfrutta un partitore resistivo per creare una massa fittizia; questa dovrebbe evitare di usare una alimentazione duale, qualcuno sa quali controindicazioni ci sono?

Ciao

Sergio

user posted image

Link al commento
Condividi su altri siti

Non esistono PIC con uscite analogiche DAC

Non per questo sto facendo l'uscita analogica con il pwm

Grazie per lo schema

ciao

walter

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...