Vai al contenuto

Problema Circuito LED


Messaggi raccomandati

Salve a tutti,

 

spero che qualche appassionato possa risolvere il mio problema! Devo creare un circuito che accende dei LED secondo una determinata sequenza; ho programmato il mio PIC16F84A senza troppe difficoltà , ma non appena lo inserisco nello zoccolo del circuito, la tensione tra Vdd e Vss scende a 1,3V e il PIC inizia a riscaldarsi (tenendo presente che senza PIC e alimentando il circuito la tensione tra Vdd e Vss è 5V!!!). A questo punto ho pensato che il problema fosse o nel codice o nel PIC, e per togliermi il dubbio ho provato a inserire un PIC vergine, appena acquistato. Con mia sorpresa ho riscontrato lo stesso identico errore, quindi l'errore non è nè nel PIC nè nel codice, ma bensì nel circuito. Purtroppo ho ricontrollato più volte il circuito e non trovo errori! Allego schema, circuito e codice, con la speranza che qualcuno possa aiutarmi! lol

 

***************************************CODICE***************************************

 

PROCESSOR 16F84A

ERRORLEVEL -302

RADIX DEC

INCLUDE "P16F84A.INC"

__CONFIG 3FF1H

CBLOCK 0CH

COUNT1: 1

ENDC

CBLOCK 00H

ENDC

BSF STATUS, RP0

MOVLW 00H

MOVWF TRISB

MOVLW 01H

MOVWF OPTION_REG

BCF STATUS, RP0

 

MAIN

MOVLW 00H

MOVWF PORTB

CALL DELAY

MOVLW 01H

MOVWF PORTB

CALL DELAY

MOVLW 03H

MOVWF PORTB

CALL DELAY

MOVLW 07H

MOVWF PORTB

CALL DELAY

MOVLW 0FH

MOVWF PORTB

CALL DELAY

GOTO MAIN

 

DELAY

MOVLW 6

MOVWF TMR0

MOVLW 125

MOVWF COUNT1

 

DELAY_LOOP

MOVF TMR0, W

BTFSS STATUS, Z

GOTO DELAY_LOOP

MOVLW 6

MOVWF TMR0

DECFSZ COUNT1, 1

GOTO DELAY_LOOP

RETURN

END

Link al commento
Condividi su altri siti

Non sono un esperto, qui l'esperto è standardbus ma attualmente è impegnato in un importante progetto per la wii.

 

A me sembra che la resistenza di pull up dell'interruttore sia troppo bassa, dovrebbe essere intorno ai 100k.

I piedini non utilizzati andrebbero poi collegati o a massa oppure a V+, nel tuo caso credo a massa ma dipende anche dal programma, credo.

 

Vss non dovrebbe andare a massa? E' il piedino che tu hai indicato con GND?

 

Qui

http://digilander.libero.it/wgiocoso/si ... azione.gif

c'è un circuito analogo a quello che stai facendo tu e in effetti la resistenza è da 10k (anche se sopra dice che dovrebbe essere intorno ai 100k)

E' simile al tuo per cui penso che ci sia un errore nella realizzazione del circuito. Non è che l'A

 

Le foto del millefori sono un pò sfocate ma li si fermano le mie competenze.

 

Per quanto riguarda il programma credo che vadano stabilite tutte le porte, anche quelle inutilizzate.

Link al commento
Condividi su altri siti

Il problema della caduta di tensione con surriscaldamento l'ho risolto, avevo invertito sbadatamente Vdd e Vss! :3 Nonostante ciò, anche se il PIC è alimentato con 5V, continua a non funzionare!!! :twisted: Nello schema GND è Vss, esatto! Per quanto riguarda che porte inutilizzate, nel programma sono settate (solo il registro PORTB), mentre il registro PORTA è lasciato di default. Sinceramente non sapevo che andassero a massa le inutilizzate, anche perchè non l'ho visto in nessuno schema, però proverò anche questa e ti farò sapere!
Link al commento
Condividi su altri siti

Adesso non hai cadute di tensione no?

 

Puoi provare a fare il debug su un emulatore per controllare lo stato delle porte e dove si inchioda il programma.

Mettere a massa o VCC le porte inutilizzate è una buona pratica (specialmente se le usi per leggere segnali dall'esterno) ma in questo caso non credo che sia qui il problema.

 

A questo punto cosa intendi per "non funziona"? Ci sono tensioni strane oppure non si accende neanche un led?

Be' c'è questa pagina che ti può aiutare

http://digilander.libero.it/wgiocoso/si ... ic-asm.htm

e qui un esempio in assembler

http://digilander.libero.it/wgiocoso/si ... azione.asm

Link al commento
Condividi su altri siti

Per non funziona intendo che non si accende nemmeno un LED, però le saldature sono corrette, perchè se faccio un pò di pressione sul PIC, si illumina qualche LED, ma non secondo la sequenza del programma! Ho pensato ad un'altro possibile "errore", ovvero: l' alimentatore che utilizzo fornisce come corrente massima 130mA, non vorrei che ne servano di più! ???? Inoltre potresti perfavore mandarmi il link di un simulatore, se ne conosci qualcuno?
Link al commento
Condividi su altri siti

Non è che hai saldature fredde? Mica è normale che facendo pressione sul PIc i led si accendano. Forse il PIC non è inserito bene oppure è al contrario? Hai controllato con il tester che ci sia alimentazione sui piedini e che i piedini della porta b ogni tanto (non so che ritardo hai messo) vadano alti?

 

130mA dovrebbero andare, il PIc consuma pochissimo e i led dovrebbero fare 20mA l'uno ma qui potrei sbagliare, dipende dai led.

 

Puoi anche provare a modificare il programma in modo che accenda un solo led e lo tenga acceso.

 

Hai un messaggio privato.

Link al commento
Condividi su altri siti

Nuovo (strano!) problema! Ho staccato uno dei due condensatori dal quarzo, e adesso la sequenza funziona (con un ritardo diverso da quello che ho dato io!); la cosa strana è che se premo il bottone di RESET la sequenza non riparte da capo, ma è come se andasse in pausa, perchè non appena rilascio il tasto la sequenza riparte da dove si era interrotta. La cosa ancora più strana è che accade la stessa cosa rimuovendo l'alimentazione e ricollegandola!!! 8|
Link al commento
Condividi su altri siti

Da quello che scrivi sembra ci sia qualche problema con il clock. Io non sono un esperto di PIC ma forse esiste qualche istruzione per abilitare il clock esterno invece di quello interno.

O forse ci sono problemi nel circuito che vanno al di la delle mie capacità .

Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

Giochi in Uscita



  • Community Hive Community Hive

    Community Hive allows you to follow your favorite communities all in one place.

    Follow on Community Hive
  • Utenti

    Non ci sono membri da mostrare

×
×
  • Crea Nuovo...