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?
Tensione ingresso PIC
Moderatore:
Paolino
24 messaggi
• Pagina 1 di 3 • 1, 2, 3
0
voti
Sembra che il PIC non abbia riferimento di massa.
Che segnale arriva al PIC? Come hai collegato il tutto?
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
@fasterthanlime
0
voti
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
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
0
voti
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
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
-

genzostyle
0 2 - Messaggi: 10
- Iscritto il: 3 nov 2010, 14:40
0
voti
Verifica se funziona il pulsante/interruttore. E verifica di averlo connesso a dovere.
Ciao.
Paolo.
Ciao.
Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
0
voti
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'.
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.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
L'interruttore funziona, testato il funzionamento con un led.
questo è il codice:
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
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
-

genzostyle
0 2 - Messaggi: 10
- Iscritto il: 3 nov 2010, 14:40
0
voti
prova a cambiare la routine inserendo un cambio di stato del led....cioè:
Inoltre dovresti inizializzare anche il registro LAT o PORT
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...
- 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!
MY WEBSITE! come and see... ;) <-- Di nuovo online... spiacente per i problemi tecnici!
-

crestus
1.295 2 7 13 - Expert EY

- Messaggi: 478
- Iscritto il: 3 ott 2008, 10:28
- Località: studente al politecnico di torino
0
voti
utilizzando la modifica alla routine
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
- 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
-

genzostyle
0 2 - Messaggi: 10
- Iscritto il: 3 nov 2010, 14:40
0
voti
Oddio!! Hai mille fili per effettuare i collegamenti!
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
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...
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!
MY WEBSITE! come and see... ;) <-- Di nuovo online... spiacente per i problemi tecnici!
-

crestus
1.295 2 7 13 - Expert EY

- Messaggi: 478
- Iscritto il: 3 ott 2008, 10:28
- Località: studente al politecnico di torino
24 messaggi
• Pagina 1 di 3 • 1, 2, 3
Torna a Realizzazioni, interfacciamento e nozioni generali.
Chi c’è in linea
Visitano il forum: Nessuno e 5 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


