Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Tensione ingresso PIC

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[1] Tensione ingresso PIC

Messaggioda Foto Utentegenzostyle » 3 nov 2010, 14:56

Ciao a tutti,
ho un problemino per quanto riguarda una resistenza di pull-up in un ingresso.

L'ingresso riceve una tensione, l'uscita deve semplicemente accendere un led.
Per quanto riguarda l'ingresso, è presente un interruttore e una resistenza di pull-up, però questo sistema non funziona. Provando manualmente a cambiare l'ingresso posizionando il filo da piede a + o - funziona.

Volevo quindi far due domande:
1. qual è il parametro del datasheet (in questo caso un 16f84a) che devo leggere per capire i valori di tensioni di ingresso?
2. su cosa mi baso per la scelta di una resistenza di pull-up?
Avatar utente
Foto Utentegenzostyle
0 2
 
Messaggi: 10
Iscritto il: 3 nov 2010, 14:40

0
voti

[2] Re: Tensione ingresso PIC

Messaggioda Foto UtenteDonJ » 3 nov 2010, 16:15

Sembra che il PIC non abbia riferimento di massa.
Che segnale arriva al PIC? Come hai collegato il tutto?
"Computers, operating systems, networks are a hot mess. They're barely manageable, even if you know a decent amount about what you're doing. Nine out of ten software engineers agree: it's a miracle anything works at all."
@fasterthanlime
Avatar utente
Foto UtenteDonJ
4.611 6 10 13
Master EY
Master EY
 
Messaggi: 2559
Iscritto il: 19 lug 2009, 22:13
Località: Croccamauria

0
voti

[3] Re: Tensione ingresso PIC

Messaggioda Foto Utenteaduri » 3 nov 2010, 18:07

Guarda in questo link:

http://stor.altervista.org/PIC/lmpic05/Image1.gif

Chiaramente la logica la devi gestire tu a programma, devi decidere se farla reagire a seguito di un livello alto o livello basso sul pin che hai scelto.


ciao
Antonio
Avatar utente
Foto Utenteaduri
435 1 5 10
Expert
Expert
 
Messaggi: 937
Iscritto il: 29 giu 2005, 23:13
Località: Genova

0
voti

[4] Re: Tensione ingresso PIC

Messaggioda Foto Utentegenzostyle » 3 nov 2010, 18:15

lo schema è identico a http://stor.altervista.org/PIC/lmpic05/Image1.gif,
varia solamente la resistenza, 1k.

il sw dovrebbe funzionare perché se manualmente vario il pin scelto portandolo a +5 o a massa, vedo che il led di accende e si spegne.

grazie
Alex
Avatar utente
Foto Utentegenzostyle
0 2
 
Messaggi: 10
Iscritto il: 3 nov 2010, 14:40

0
voti

[5] Re: Tensione ingresso PIC

Messaggioda Foto UtentePaolino » 3 nov 2010, 18:27

Verifica se funziona il pulsante/interruttore. E verifica di averlo connesso a dovere.
Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[6] Re: Tensione ingresso PIC

Messaggioda Foto UtenteTardoFreak » 3 nov 2010, 18:29

Attenzione che potrebbe essere il software a non funzionare. Se hai settato la PORTA come uscita e forzi il pin a Vcc o massa il PIC ti legge il pin come se fosse un ingresso. Il buffer di uscita non e' contento perche' ... suda sette camice.
Verifica bene bene il software, capisciamme'. ;-)
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[7] Re: Tensione ingresso PIC

Messaggioda Foto Utentegenzostyle » 4 nov 2010, 12:48

L'interruttore funziona, testato il funzionamento con un led.

questo è il codice:
Codice: Seleziona tutto
...
#define LED1   RA0
#define BTN1   RA2    // pulsante 1
void settings(void)
{
TRISA = 0x00001100;
LED1 = 0;
//RBPU=0;
}

void main(void)
{
settings();
while(1){
   // controllo pulsante 1
    if (!BTN1) // se pulsante1 premuto
   {
   DelayMs(100); // ritardo per antirimbalzo
   if (!BTN1)
      {
      LED1=1; // accendo led 1
      }
   }
   else
   {
   LED1=0; // se pulsante 1 non premuto, spengo led 1
   }
}


cosa ottengo in pratica:
Quando alimento il circuito, il LED1 si accende.
Se premo il pulsante, LED1 rimane acceso.
Ho provato con una R di 160, 1.6K e altre, ma l'esito non varia.

Ancora una volta se porto il pin BTN1 a 5v e poi a massa, LED1 si spegne e poi si riaccende.

Alex
Avatar utente
Foto Utentegenzostyle
0 2
 
Messaggi: 10
Iscritto il: 3 nov 2010, 14:40

0
voti

[8] Re: Tensione ingresso PIC

Messaggioda Foto Utentecrestus » 4 nov 2010, 13:27

prova a cambiare la routine inserendo un cambio di stato del led....cioè:
Codice: Seleziona tutto
if (!BTN1) // se pulsante1 premuto
   {
   DelayMs(100); // ritardo per antirimbalzo
   if (!BTN1)
      {
      LED1= ~ LED1; // Cambio di stato  led 1
      }
   }
   // else --> non è più necessario


Inoltre dovresti inizializzare anche il registro LAT o PORT
Codice: Seleziona tutto
PORTA=0x00;


e hai disattivato le porte analogiche?

altra cosa... prova a farci vedere anche lo schema elettrico... magari hai commeso qualche errore di distrazione che non vedi... ;-)
...:::Pivello allo sbaraglio:::...

MY WEBSITE! come and see... ;) <-- Di nuovo online... spiacente per i problemi tecnici!
Avatar utente
Foto Utentecrestus
1.295 2 7 13
Expert EY
Expert EY
 
Messaggi: 478
Iscritto il: 3 ott 2008, 10:28
Località: studente al politecnico di torino

0
voti

[9] Re: Tensione ingresso PIC

Messaggioda Foto Utentegenzostyle » 4 nov 2010, 18:34

utilizzando la modifica alla routine
Codice: Seleziona tutto
if (!BTN1) // se pulsante1 premuto
   {
   DelayMs(100); // ritardo per antirimbalzo
   if (!BTN1)
      {
      LED1= ~ LED1; // Cambio di stato  led 1
      }
   }
   // else --> non è più necessario

il LED1 si accende e si spegne continuamente.

anche aggiungendo PORTA=0x00; nel settaggio

questo è l'immagine della breadboard http://host.presenze.com/showpic-2180/led.jpg

Alex
Avatar utente
Foto Utentegenzostyle
0 2
 
Messaggi: 10
Iscritto il: 3 nov 2010, 14:40

0
voti

[10] Re: Tensione ingresso PIC

Messaggioda Foto Utentecrestus » 4 nov 2010, 19:34

Oddio!! Hai mille fili per effettuare i collegamenti! :D puoi ridurre.. ti semplifica la vita!..
A parte questo, se ha quel comportamento vuol dire che entra in continuo nel'if.. e vuol dire che il caso else del tuo programma originale non lo vede mai! il che sta a significare che rileva sempre 0 il segnale logico del pulsante... anche quando lo premi...molto molto strano...

prova comunque a scrivere
Codice: Seleziona tutto
if( BTN1 == 0 ) {}

O a cambiare porta, ad esempio prova con la RB3 che magari l'hai bruciata o è difettosa....anche se mi sembra molto strano...

Oppure ancora inverti la polarità del pulsante e quindi anche la condizione dell'if

Altra cosa: hai dimenticato i condensatori del quarzo! ;-)

molto strano il tuo problema... :?
...:::Pivello allo sbaraglio:::...

MY WEBSITE! come and see... ;) <-- Di nuovo online... spiacente per i problemi tecnici!
Avatar utente
Foto Utentecrestus
1.295 2 7 13
Expert EY
Expert EY
 
Messaggi: 478
Iscritto il: 3 ott 2008, 10:28
Località: studente al politecnico di torino

Prossimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti