Vai al contenuto
PLC Forum


Cerco ic logico una sola uscita attiva


Vicus

Messaggi consigliati

1)Ho provato ma collegando come hai indicato mi da errore. Dice che i nodi sono flottanti.

2)L'ho scritto sopra, uso 5 ic quad nand. Sostituisco i flip flop SR con una coppia di nand, il circuito equivalente ha però gli ingressi negati. Questo mi permette di usare in A3 A4 A7 A8 porte nand.Per il segnale in ingresso non ho problemi perché decido io come configurare gli interruttori.

3)Mi viene più semplice usare le nand.

 

Al micro ci ho pensato e sarei anche in grado di scrivere l'algoritmo (capirai la difficoltà). Il problema è la parte pratica. Ci riuscirei con arduino ma sarebbe uno spreco. Non ho mai programmato da 0 un micro. Per esempio nell'ultima foto al pic manca il cristallo di clock. So che può essere generato internamente ma non so come si fa nella pratica.

Link al commento
Condividi su altri siti


  • Risposte 78
  • Created
  • Ultima risposta

Top Posters In This Topic

  • Vicus

    29

  • gabri-z

    22

  • dott.cicala

    19

  • Nik-nak

    2

Top Posters In This Topic

Posted Images

        MASK:= PORTB & 0x0f;
        switch (MASK) {
               CASE 1:   PORTA:=1;
               break;
               CASE 2:   PORTA:=2;
               break;
               CASE 4:   PORTA:=4;
               break;
               CASE 8:   PORTA:=8;
               break;
               }

 

Link al commento
Condividi su altri siti

Non molto diversamente da come ce lo metteresti in un arduino: via icsp

 

il quadratino in basso nelle porte non è un ingresso, ma uno stratagemma che usa lt per distinguere i pins non utilizzati che vanno collegati tutti lì...non capisco come possa simulartelo correttamente visto che l'hai usato come ingresso.

 

 

Link al commento
Condividi su altri siti

Guarda bene, mai usato come ingresso.

 

Arduino ha un ide dedicato che compila e programma il micro che ha un bootloader già caricato.

Che micro mi consigli? Che compilatore serve? 

Link al commento
Condividi su altri siti

Guarda bene, so che l'ora è tarda ma quando non c'è collegato niente c'è il quadratino, quando c'è collegato qualcosa il quadratino sparisce. La porta ha 5 ingressi più quello segnato dalle frecce.

Link al commento
Condividi su altri siti

Si la soluzione con un micro PIC è la soluzione più elegante e funzionale, a meno che si tratti di un esercizio didattico.

Link al commento
Condividi su altri siti

Quote

E' vero, ma non so come si fa

Non che Dobbiamo rimandare lo studio del ''come si fa'' , ma , nel fra tempo ( se avessi detto dal inizio che l'ingressi sono i pulsanti stessi :superlol:) , prova questo :

 

a03e5593c8aee5e83f53a9b9671a6554.PNG

Non ha la flessibilità del PIC (cambiare la logica come e quando Ti pare ) , ma dovrebbe fare il suo compito fisso .

Quote

 la soluzione con un micro PIC è la soluzione più elegante 

Dai , è elegante anche questa ....:roflmao:

Il pin 5 , RES , devi metterlo giù , a massa ,  mi sono dimenticato ..:wallbash:

Link al commento
Condividi su altri siti

Così trasferisci quello che trovi in ingresso sulle uscite e se sono premuti più ingressi..si attivano più uscite?

 

Vale la pena un piccolo sforzo.....recuperare un pic 16F88, se non si vuole comprare un pickit3 per programmarlo, basta avere un usb/rs232 adapter e un paio di bjt con qualche resistenza, uno dei tanti software gratuiti per trasferire via seriale, come il pony prog...e via

 

questo è il .hex funzionante

:020000001628C0
:0E0006008312031321088A00200882000800DC
:1000140003208A110A128000840AA00A0319A10A83
:08002400F003031D0A28080087
:10002C004D30831603138F0083129F0183169F019B
:10003C009B01F03085000F3086008312850107305C
:10004C00831681008B018C018D0183128C018D0133
:10005C0083168E010F3083120605A200A301003017
:10006C00A3050030A3004628013085006628023025
:10007C0085006628043085006628083085006628CF
:10008C0000302306031D4C280E30220603193A2893
:10009C0000302306031D54280D30220603193D2879
:1000AC0000302306031D5C280B3022060319402860
:1000BC0000302306031D6428073022060319432849
:0400CC003028672849
:04400E00183FFF3F19
:00000001FF

Questo è il sorgente in mikroC (gratuito pure lui)

//******************************************************************************
// Project :            PlcForum Switcher
// Author  :            S.T.
// Date    :            26/03/2016
// MCU     :            PIC16F88 - INT.OSC. 4MHz
// Compiler:            MikroC PRO for PIC V6.6.2
//******************************************************************************
//****** TAGs ******************************************************************
// Inputs
   sbit P1       at RB0_BIT;
   sbit P2       at RB1_BIT;
   sbit P3       at RB2_BIT;
   sbit P4       at RB3_BIT;
// Stat
   unsigned int MASK;
//******************************************************************************
//******************************************************************************
// Main program
//******************************************************************************
void main()
 {
//******************************************************************************
// Registro configurazione Oscillatore
//******************************************************************************
       OSCCON  = 0x4D;    // Int Osc 4 MHz
//******************************************************************************
// Registri configurazione PORT[A] - PORT[B]
//******************************************************************************
       ADCON0  = 0x00;    // Ingressi Anaogici OFF
       ADCON1  = 0x00;    // Ingressi Anaogici OFF
       ANSEL   = 0x00;    // Ingressi Anaogici OFF
       TRISA   = 0xF0;    // RA0-RA3=OUT
       TRISB   = 0x0F;    // RB0-RB3=INPUT
       PORTA   = 0x00;    // Clear PORT[A] all'accensione
//******************************************************************************
//                            OPTION REGISTER
//******************************************************************************
       OPTION_REG  = 0X07;
//******************************************************************************
//                            INTCON REGISTER
//******************************************************************************
       INTCON      = 0X00;
//******************************************************************************
// Registri configurazione INTERRUPTS
//******************************************************************************
       PIE1        = 0X00;    // PERIPHERAL INTERRUPT ENABLE REGISTER 1
       PIE2        = 0X00;    // PERIPHERAL INTERRUPT ENABLE REGISTER 2
       PIR1        = 0X00;    // PERIPHERAL INTERRUPT REQUEST REGISTER 1
       PIR2        = 0X00;    // PERIPHERAL INTERRUPT REQUEST REGISTER 2
       PCON        = 0X00;    // POWER CONTROL REGISTER
//##############################################################################
//                               Main Loop
//##############################################################################
     while(1){
     MASK= portb & 0x0f;
     switch (MASK){
     case 14: porta=1;
     break;
     case 13: porta=2;
     break;
     case 11: porta=4;
     break;
     case 7: porta=8;
     break;
     }
    }
}

lo schema è quello già pubblicato.

 

Fate un piccolo sforzo.....:smile:

Link al commento
Condividi su altri siti

Quote

 e se sono premuti più ingressi..si attivano più uscite?

:superlol: , certo , ma potrebbe andarli anche bene :whistling:.Solo lui sa cosa vuole fare !

Basta che non indossi guanti da pugile quando vuole premere pulsanti , o che li metta distanti 2m l'uno dal altro :roflmao:.

 

Una domanda mi viene in mente , non ho analizzato gli schemi che avete presentato , ma in quei circuiti , se vengono premuti due o più pulsanti , cosa succede con le uscite ?

 

Quote

Fate un piccolo sforzo....

Verrà anche il suo tempo , spero su questo mondo .....

Link al commento
Condividi su altri siti

Quote

Una domanda mi viene in mente , non ho analizzato gli schemi che avete presentato , ma in quei circuiti , se vengono premuti due o più pulsanti , cosa succede con le uscite ?

 

per questo ho usato tutte queste porte......proprio per codificare 1 solo ingresso per volta

 

8eb54576aeaa7a0c57dbb1704347936f.jpg

 

Quote

Verrà anche il suo tempo , spero su questo mondo .....

 

Allora...comincia a costruirti il prommer....:P

62a88faf1f1fdcbe17f666476955d55a.gif

Link al commento
Condividi su altri siti

Grazie a tutti per l'aiuto, so che questo non mi è dovuto e lo apprezzo molto.

 

Gabri-z: lo shift register non va bene perché come ho già scritto deve essere attiva massimo una uscita.

Se premo il tasto 1 deve attivarsi l'uscita 1 e disattivare le altre (se non lo sono). La stessa cosa per gli altri interruttori.

Non posso essere sicuro che chi userà l'attrezzo disattivi sempre il pulsante attivo prima di attivarne un altro. Posso però stare abbastanza tranquillo che non ne premerà due contemporaneamente.

 

dott.cicala: grazie mille per il sorgente e l'eseguibile. Un 16f88 posso procurarmelo, posso pure procurarmi un minipro tl866 che mi farebbe comodo anche per altro. Però non capire del tutto quello che sto facendo non mi piace. Magari lo considero un punto di partenza per cominciare a sperimentare oltre che a sapere la teoria.

Link al commento
Condividi su altri siti

Quote

Gabri-z: lo shift register non va bene perché come ho già scritto deve essere attiva massimo una uscita

Invece ,    si , perché lavora statico , l'unico clock che riceve proviene dal (qualsiasi ) pulsante (pin 6 )

Quando premi un pulsante , questo porta SU l'ingresso corrispondente  , il pin P/S (che permette mandare alle uscite lo stato degli ingressi P ) ed allo stesso tempo , leggermente ritardato dal C1 , il pin 6 :P (il trasferimento avviene sul fronte di salita )

Link al commento
Condividi su altri siti

Quote

Non posso essere sicuro che chi userà l'attrezzo disattivi sempre il pulsante attivo prima di attivarne un altro.

 

:whistling: Vuoi dire che possono stare sia aperti che chiusi ? O sono dei fine-corsa di più '' cose '' ?

 

Quote

 Posso però stare abbastanza tranquillo che non ne premerà due contemporaneamente.

 Perché , sono lontani ?

 

  Comunque qui ho previsto ( meglio detto ,tentato  :superlol:) un circuitino che dovrebbe impedire l'attivazione di due o più uscite contemporaneamente . Nel caso vengano premuti almeno due , tutte le uscite sono forzate in zero ( con un transistor si può fare che mantengano lo stato precedente ) e rimane in attesa di un nuovo commando .

   Se sei sicuro che non può accadere , puoi pure '' saltare '' il circuito inquadrato 

 

3e1f4e781cbca4a950133af8110534c4.PNG

 

e diventa soltanto un pochino più complessa della bella con il PIC :P

Link al commento
Condividi su altri siti

Il circuito deve comandare alcuni relais, led e vactrol. Serve per instradare un segnale audio dentro e fuori per alcune macchine.

Link al commento
Condividi su altri siti

Scusate se mi intrometto, anni fà assemblai per un mio datore di lavoro un circuito a relè per commutare casse acustiche in modo casuale, naturalmente avendo la commutazione istantanea. Non conoscendo i processori, utilizzai un C-Mos cd 40147 che disponeva di un encoder/decoder Multiplexer a 10 ingressi e 4 uscite BCD, seguito da un 4069 per invertire la logica di uscita e inviando il segnale ad un  4508 (8 Flip/Flop D ). Che pilotavano dei transistor con relativo relè.

Se serve di più sono a disposizione !

Angelo

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