Vai al contenuto
PLC Forum


Contatore Ad Anello (ring Counter)


pardinisp

Messaggi consigliati

Salve a tutti, mi chiamo Roberto ed è la prima volta che scrivo su questo forum.

Ho scoperto da un paio di settimane questo Logo e il suo software di sviluppo.

L'ho subito trovato facile (abbastanza) ed intuitivo; ho deciso così di cimentarmi nella sua programmazione.

Premetto che non ho ancora acquistato nessun dispositivo Logo e quindi le simulazioni sono state fatte solo su PC.

Adesso vengo al mio problema...

avrei bisogno di due contatori ad anello indipendenti a 3 bit che shiftano l'unico bit attivo avanti ed indietro in presenza degli impulsi (attivi bassi) generati dai tasti cursore "sinistra" e "destra" (per un conatore) e "su" e "giù" (per l'altro contatore).

Almeno uno di questi contatori ad anello dovrebbe inoltre diventare automaticamente a 2 bit all'occorrenza, cioè in base all'attivazione di un particolare blocco (o ingresso).

Col registro a scorrimento di Logo avrei in parte risolto.

Il problema è che questo registro è unico, quindi posso solo implementare un contatore ad anello e per il secondo sono fregato.

Qualcuno può aiutarmi?

P.S. Sono andato a sfogliare i vecchi libri di elettronica per vedere come era implementato un contatore ad anello ad enne bit con flip flop di tipo S-R, ho provato a disegnarlo con Soft Comfort ma non funziona!

Link al commento
Condividi su altri siti


Gabriele Corrieri

Ciao

siccome anch'io mi sono arrugginito con la logica combinatoria, prova a dare un input: come faresti a fare questo contatore ad anello, o se ho ben capito io "contatore Johnson", che in pratica dovrebbe essere un CD4017 (nei circuiti integrati C-Mos)

Ciao

Link al commento
Condividi su altri siti

Il contatore Johnson per quello che mi ricordo è leggermente diverso.

Il contatore ad anello sarebbe composto da enne flip flop del tipo S-R con clock (hanno tutti il clock comune!) con l'uscita Q(n) e Q(n) negata collegata rispettivamente a S(0) e a R(0).

Gli altri flip flop intermedi sono collegati cosi: Q(i) --> S(i+1) e Q(i) negato --> R(i+1) con "i" compreso tra 2 e N-1 .

Tutta questa architettura mi servirebbe per poter gestire gli input dai tasti cursore di Logo.

Ti faccio un esempio con i tasti sx e dx voglio poter "ciclare" tra 3 imput diversi (input primari), mentre, con i tasti up e down voglio poter ciclare tra altri 3 input (input secondario dipendente dal primo).

Come se non bastasse la cosa si complica ulteriormente, perché vorre per un particolare input primario vorrei poter ciclare su solo 2 diversi input secondari e non più tre.

Con questo metodo eviterei di impegnare 3+3=6 ingressi del Logo!!!

Con 3+3 ingressi avrei in questo caso al massimo 3*3=9 combinazioni, ma ame ne servono solo 8 (3+3+2).

Puoi darmi un'idea su come implementare il meccanismo?

Grazie

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao

... sto cercando forse di capire ... ma a te serve un decoder seriale/parallelo ? ricevi clock e dati, li shifti n-bit (quanto la lunghezza del decoder) e poi hai i dati in parallelo.

Si può fare c'è un esempio postato poche settimane fa, anche se la lunghezza è fissa.

Ciao

Link al commento
Condividi su altri siti

Allego un file per una più facile comprensione.

Come si può vedere dall'esempio, con gli input cursore di Logo "sfifto" avanti e/o indietro l'unico bit attivo del registro a scorrimento.

Il mio problema è che adesso io vorrei trasformare l'esempio nel seguente modo:

1) Voglio "ciclare" solo su 3 bit del registro a scorrimento.

2) In base ad un ingresso aggiuntivo (interruttore), voglio limitare il ciclo del registro a scorrimento ai primi due bit.

3) Se riuscissi a implementare lo stesso schema non con il registro a scorrimento, ma con enne flip flop sarebbe ancora meglio (dal momento che di "registri a scorrimento" sul Logo ce ne uno solo!)

Saluti e grazie per l'interessamento.

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...