elettro89 Inserito: 23 settembre 2012 Segnala Share Inserito: 23 settembre 2012 Salve a tutti, vorei chiedere se con un microcontrollore si può fare una cosa del genere, io in programmazione non sono capace se c'è una buona anima che mi potrebbe aiutare magari. Secondo voi si riesce a fare si che, avendo una sequenza di 8 bit variabili come ingressi nel microcontrollore, facendo si che il microcontrollore quando riconosce quella sequenza di bit di ingresso mi dia una uscita a 1 e con i restanti bit di combinazioni dia 0. Questo e fatibbile con un microcontrollore?. senza stare li a usare più di una porta logica per la soluzione. se non si capisce quello che voglio cercherò di essere più chiaro. Link al commento Condividi su altri siti More sharing options...
Mirko Ceronti Inserita: 23 settembre 2012 Segnala Share Inserita: 23 settembre 2012 Mah....se ho capito bene (il chè non è affatto detto) penso non serva affatto scomodare un microcontrollore per una banalità del genere. Rischi di finire come colui che noleggiò un sommergibile per andare a pesca di trote. Saluti Mirko Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 23 settembre 2012 Autore Segnala Share Inserita: 23 settembre 2012 Quale strade alternative ci sono. in fatti sono dei giorni che ci penso, ma le strade erano due o il microcontrollore o qualcosa di simile. In pratica bisogna fare si che tutto questo sia programmabile c'è se in ingresso esempio o questa combinazione binaria es. 01101001 da questa combinazione in poi in uscita deve essere a 1. mentre al disotto di questa combinazione l'uscita deve essere a 0. se un domani lo voglio cambiare c'è che in ingresso non sia più quella combinazione ma che so, 10010110 sempre stessa cosa deve dare in uscita 1 e al disotto 0. Spero che avrai capito. che strade brevi e economiche ci sono? grazzie Link al commento Condividi su altri siti More sharing options...
Mirko Ceronti Inserita: 23 settembre 2012 Segnala Share Inserita: 23 settembre 2012 Un paio di contraves binari, ed 8 diodi a formare un And cablato. Oppure al posto dei contraves, dei Dip Switch (dipende da quanto deve essere comoda la pre-impostazione) Saluti Mirko Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 23 settembre 2012 Autore Segnala Share Inserita: 23 settembre 2012 capito forse dei Dip Switch da 8 sono comodi. se si riesce e realizzarlo saro felice. io o pensato molti metodi ma non so come metterli in pratica. aspetto tue notizzie grazzie ancora Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 24 settembre 2012 Segnala Share Inserita: 24 settembre 2012 Due dip switches da 8 bits: uno come riferimento e l'altro per impostare il codice (oppure un dip switch solo per il codice di riferimento). I due codici entrano in un OR esclusivo; la funzione di OR esclusivo da in uscita "1" se almeno un ingresso è diverso, se tutti gli ingressi sono uguali, l'uscita è "0", Basta negare l'uscita ed hai la funzione che ti necessita. Se non sai come fare per realizzare la funzione OR esclusivo dillo che ti aiutiamo. Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 24 settembre 2012 Autore Segnala Share Inserita: 24 settembre 2012 In pratica il switches da 8 per la regolazione del codice binario, si ok io diciamo che avevo pensato anche con le porte logiche ma mi ero detto tra me forse viene troppo complicato la cosa. La porta nor esclusiva e la stessa della porta logica nor o e diversa, non lo mai sentita nominare. Se mi dici che bisogna solo usare una nor forse ci riusciro, ma se la porta nor esclusiva e diversa mi metti in difficoltà. Nel dubbio io provo a buttare uno schizzo con porta nor, e vedo magari posta se a tempo lo schema del probblema. grazzie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 24 settembre 2012 Segnala Share Inserita: 24 settembre 2012 (modificato) EXOR, o OR esclusivo, o somma disgiuntiva ha una logica contraria all'OR. Con l'OR si forzano gli "1", perchè basta avere un solo ingresso a "1" affinchè l'uscita sia a "1"; similmente il NOR forza gli "1", ma l'uscita è negata quindi un solo ingresso ad "1" per avere l'uscita a "0". Con l'EXOR si forza la diversità tra gli ingressi; infatti basta che un solo ingresso sia di valore differente dagli altri n ingressi per avere l'uscita a "1". A titolo di esempio guarda questo data sheet. Questo è uno schema per realizzare XOR tramite NOR; quest'altro è uno schema per realizzare XOR tramite NAND, dalla tabella della verità allaegata al'immagine puoi capire più facilmente il funzionamento di un XOR (XNOR) Modificato: 24 settembre 2012 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 24 settembre 2012 Autore Segnala Share Inserita: 24 settembre 2012 a ecco la porta nor esclusiva e la exor ora si, io la sopre chiamata exor. allora si grazzie del aiuto, avvendo il manuale esendo che ci sono più di una porta logica in comercio, non sapevo come comportarmi. grazzie Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 25 settembre 2012 Autore Segnala Share Inserita: 25 settembre 2012 scusa mi potresti fare lo schema non ci salto fuori. Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 25 settembre 2012 Segnala Share Inserita: 25 settembre 2012 (modificato) Beh, solamente a puro titolo pseudo-didattico, posto quello con microprocessore categoria economica e facile da programmare, magari può interessa a qualcuno... Con il dip-switch a 4 posizioni si possono selezionare 128 combinazioni diverse una volta memorizzato il loro valore nel programma, come esempio ho messo che il LED si accende quando il valore è identico, ma c'è scritto anche come modificare l'istruzione per fare che resti acceso se il valore è anche più alto... SCHEMA: CODICE: (Sono più le spiegazioni che le istruzioni ) /******************************** * BINARY IN MATCH by GiRock * ********************************* * MikroC + PIC16F84A XT = 4MHz * ********************************* * CFG = WDT=OFF+PUT=ON+CP=OFF * *********************************/ // Definizioni associative #define LED RA0_bit #define ON 1 #define OFF 0 // Variabili globali unsigned short AValue = 0x00; unsigned short BValue = 0x00; // Costanti globali // Fino a 128 combinazioni di bits, basta scriverle tutte!!! const unsigned short XCode[] = {0b01101001, 0b10010110, 0b01101111, 0b11110110}; // Routine principale void main() { // Settaggio porte // PORTA tutti ingressi eccetto RA0 uscita per il LED TRISA = 0b00011110; // Reset della PORTA PORTA = 0x00; // PORTB tutti ingressi TRISB = 0b11111111; // Reset della PORTB PORTB = 0x00; // Ciclo infinito while(1) { // Leggo i bit su PORTA escludendo RA0, // il valore va in base alla selezione // del dip-switch a 4 posizioni AValue = PORTA >> 1; // Leggo i bit su PORTB, // il valore va in base alla selezione // del dip-switch a 8 posizioni BValue = PORTB; // Se il valore è uguale alla costante // selezionata in base al dip-switch a // 4 posizioni, accendo il LED solo se // questo è spento // (>= Se vuoi tenerlo accesso per valori superiori) if (BValue == XCode[AValue]) { if (!LED) LED = ON; } else { // altrimeni se non corrispondono // i valori, lo spengo solamente // se è acceso if (LED) LED = OFF; } // Ritardo di 0.33 sec. // 3 letture al secondo Delay_ms(333); } // Fine ciclo } // Fine routine principale Modificato: 25 settembre 2012 da GiRock Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 25 settembre 2012 Autore Segnala Share Inserita: 25 settembre 2012 Grazzie per lo schema, anche se il codice e arabo per me non avendo mai proggramato un microcontrollore, volevo chiedere qualè il punto da modifficare per il cambio della combinazione? . Vi spiego anche cosa deve fare questa funzione. In pratica o aquistato un conta giri digitale a due ciffre e volevo fare si che quando sul display esempio. apare il valore 78 esendo che nei decodificatori da un valore binario diverso per oggni numero che appare sul display. Volevo fare si che a 78 si eccitava il relè e che quando scendeva al disotto dei 78 il relè si stacchi. Tutto questo proggramato con possibilità di cambiare l'apertura per l'eccitazione del relè, in base a quando voglio fare si che a quei giri mi apre il relè esempio se lo voglio aprire non più a 78 ma a 10. Secondo tè va modificato si riesce a fare una cosa cosi, senza complicazioni. grazzie. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 26 settembre 2012 Segnala Share Inserita: 26 settembre 2012 Prima di tutto dovresti avere a disposizione l'uscita del contasgiri. Se hai a disposizione l'uscita del contagiri è possibile realizzare quello che vuoi fare. Non puoi mettere sul forum il foglio tecnico del contagiri, oppure mettere marca e modello per poterlo vedere? Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 26 settembre 2012 Segnala Share Inserita: 26 settembre 2012 Esatto, dovresti fornire più informazioni sul dispositivo, tensione di alimentazione e IC presenti sulla scheda, il PIC è comunque compatibile con le specifiche TTL e si può al limite adattare ad altri protocolli, tutto dipende da come viene pilotato il display... ATTENZIONE!!! Le combinazioni possibili sono solo 2 ^ 4 = 16, inizialmente avevo usato un altro micro e mi sono rimaste in testa quelle, poi ho preferito andare sul semplice con il solito 16F84A... Le combinazioni vanno scritte quì separate da una virgola: // Fino a 16 combinazioni di bits, basta scriverle tutte!!! const unsigned short XCode[] = {0b01101001, 0b10010110, 0b01101111, 0b11110110}; Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 26 settembre 2012 Segnala Share Inserita: 26 settembre 2012 (modificato) Date un'occhiatina anche a questi ICs, potrebbero tornare utili, comparatori a 8bit con e senza uscita invertita... 74ALS518 74ALS520 Modificato: 26 settembre 2012 da GiRock Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 26 settembre 2012 Autore Segnala Share Inserita: 26 settembre 2012 Buona sera a tutti, si mi ero ricordato ora nel leggere di poter mettere l'schema elettrico cosi potavate adatarlo alla aplicazione che vorrei ottenere, sperando che sono stato chiare e preciso nella funzione che vorrei ottenere. Vi linko il sito che è http://www.futuraelettronica.net/pdf_ita/8220-K2625.pdf . aspetto vostre notizzie. grazzie ancora Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 settembre 2012 Segnala Share Inserita: 27 settembre 2012 OK si può fare. Se te la cavi discretamente con saldatore e basette è una cosa moltom semplice Devi parallelare gli 8 bits che vanno dalla scheda base all'unità dei dispaies, precisamente quelli corrispondenti ai fili 1,2, 6, 7, 9, 10, 11, 12. Questi 8 bits li mandi a 8 ingressi P0 - P7 dello 74LS518, agli ingressi Q0 - Q7 del medesimo colleghi un dip switch da 8 interruttori, con cui imposti il valore. Quando il conteggio del contagiri coincide con quel valore esatto hai l'uscita vera. Però io ti consiglio di comparare solo i bit di peso più elevato altrimenti l'uscita difficilemte riuscirai a vederla. Comincerei con il comparare i 4 bits di peso maggiore e poi provare pian piano sino a quando si riesce a scendere. Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 27 settembre 2012 Autore Segnala Share Inserita: 27 settembre 2012 In pratica vedendo il datashett ieri o capito subito che quell'integrato era da utilizzare. Pero se o capito bene, se montero anche il siplay alle uscite del decodificatore avvro probblemi in lettura, comunque grazzie a tutti del aiuto. Link al commento Condividi su altri siti More sharing options...
GiRock Inserita: 27 settembre 2012 Segnala Share Inserita: 27 settembre 2012 Ecco il nuovo schema completo con micro dopo che hai postato il tuo, la parte racchiusa nel rettangolo è quella già esistente, il partitore formato da reti resistive (ci sono anche quello con il pin in comune) serve per abbassare la tensione da 8V a 5V, le combinazioni memorizzabili sono 16, questa volta il Relay resta eccitato per valori uguali o superiori alla soglia... CODICE: /******************************** * BINARY IN MATCH by GiRock * ********************************* * MikroC + PIC16F84A XT = 4MHz * ********************************* * CFG = WDT=OFF+PUT=ON+CP=OFF * *********************************/ #define LED RA0_bit #define ON 1 #define OFF 0 unsigned short AValue = 0x00; unsigned short BValue = 0x00; // Fino a 16 combinazioni di bits const unsigned short XCode[] = {95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30, 25, 20}; // Dip-Switch 4 // 0000 = 95 // 0001 = 90 // 0010 = 85 // 0011 = 80 // 0100 = 75 // 0101 = 70 // 0110 = 65 // 0111 = 60 // 1000 = 55 // 1001 = 50 // 1010 = 45 // 1011 = 40 // 1100 = 35 // 1101 = 30 // 1110 = 25 // 1111 = 20 void main() { TRISA = 0b00011110; PORTA = 0x00; TRISB = 0b11111111; PORTB = 0x00; while(1) { AValue = PORTA >> 1; BValue = ((PORTB & 0b00001111) * 10) | (PORTB >> 4); if (BValue >= XCode[AValue]) { if (!LED) LED = ON; } else { if (LED) LED = OFF; } // 3 letture al secondo Delay_ms(333); } } Link al commento Condividi su altri siti More sharing options...
elettro89 Inserita: 2 ottobre 2012 Autore Segnala Share Inserita: 2 ottobre 2012 Volevo chiedere al sig Livio Orsini che il mio fornitore non possiede il 74als518 non possiede neanche i equivalente.come devo fare? realizo lo schema che c'è sul datashett strada secondo mè più veloce. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 3 ottobre 2012 Segnala Share Inserita: 3 ottobre 2012 realizo lo schema che c'è sul datashett strada secondo mè più veloce. A parte il fatto che puoi trovare i circuiti da qualche negozio on line (però se compri solo 2 integrati spendi di più per le spese di spedizione che per il materiale), realizzare il circuito a componenti discreti può essere una buona soluzione se non hai problemi di spazio. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora