Pages: [1] 2   Go Down
Author Topic: Mettere pin on o off.  (Read 869 times)
0 Members and 1 Guest are viewing this topic.
Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi è venuto un dubbio.
Ma se volessi preparare uno schema elettrico che preveda un pin on o off potrei prevedere una cosa del genere?


+5 --> resistenza --> pin arduino -- GND

L'idea sarebbe che non montando la resistenza il pin è a 0(GND) montandola è a +5 (+ o -).

Sbaglio?
Logged


Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se il pin è collegato direttamente a GND, resta a a livello di GND con o senza resistenza.

Qual è il problema che stai cercando di risolvere ?
Logged

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nulla di speciale, vorrei rendere il circuito dinamico.
Cioè se monto la resistenza il pin è alto (ed allora lo sketch fa una cosa) e non la monto il pin è basso (e allora lo sketch fa un'altra cosa).

Mi dovrei arrangiare con un partitore, quindi di 2 resistenze 1 (quella su GND) la devo montare comunque.

Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9678
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi è venuto un dubbio.
Ma se volessi preparare uno schema elettrico che preveda un pin on o off potrei prevedere una cosa del genere?

Se hai bisogno di un pin che fa da switch funzionalità, a seconda del suo stato logico, il modo più semplice è attivare la pull up interna del pin in modo che normalmente si trova a 1 logico, quando devi metterlo a 0 logico lo colleghi direttamente a GND.
Logged

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non male come soluzione.
Grazie
Logged


Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

per attivare la pullup hai due modi: pinMode(pin, INPUT_PULLUP) o, se non supportato dalla tua versione dell'IDE, pinMode(pin, INPUT) poi digitalWrite(pin, HIGH).
Logged

Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Siete spettacolari come sempre.

Grazie grazie
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22938
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nulla di speciale, vorrei rendere il circuito dinamico.
Cioè se monto la resistenza il pin è alto (ed allora lo sketch fa una cosa) e non la monto il pin è basso (e allora lo sketch fa un'altra cosa).

Cioè dovresti poter variare le impostazioni dello sketch mediante l'uso di stati logici sui pin esterni? Perché non usi allora solo la pull-u interna come ti ha detto astrobeed ed esternamente una pista verso massa interrotta da un jumper.
Se vuoi attivare la funzionalità metti il jumper (così il pin legge LOW), se non la vuoi attivare lo togli (ed il pin legge HIGH). Oppure viceversa.
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si leo, infatti da questo nasce la mia domanda "eagle e ponticelli" che ho fatto subito dopo la risposta di astro.

Grazie
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22938
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si leo, infatti da questo nasce la mia domanda "eagle e ponticelli" che ho fatto subito dopo la risposta di astro.

Grazie
Ah ecco  smiley-wink
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Fatto tutto.
Ho provato la modifica al software ed ovviamente funziona ed ho modificato lo schema eagle.


Grazie a tutti.
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, riprendo il topic per chiedere un' altra cosa.
Tutti gli esempi che ho visto utilizzano un tasto o jumper per portare il pin a massa e quindi a 0, si da praticamente per scontato che il loop dello sketch sia partito ed il programma è in esecuzione (con la resistenza del pullup bella impostata) ma se io volessi mettere a massa prima dell'avvio dello sketch che succede al pin che ancora non è in pull up (credo)?

Cioè al boot del chip le resistenze di pull-up come sono impostate?

Chiarisco con uno pseudo codice:

Code:
setup{
imposta pin1 pullup
}

loop{
METTI A MASSA(*)
se pin1
 leggi pin1
else
 leggi pin2
}

Code:
METTI A MASSA(*)
setup{
 imposta pin1 pullup
}

loop{
se pin1
 leggi pin1
else
 leggi pin2
}

*Azione del pulsante.

Spero di essermi spiegato.
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22938
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Dopo un reset i pin sono impostati come input.

Se il pulsante agisce sul pin prima che parta il programma, non succede nulla di che: semplicemente non c'è "nessuno in ascolto".
La resistenza di pull-up serve solo per dare uno stato fisico ben definito al pin, altrimenti, essendo flottante, può essere letto indifferentemente come alto o basso a seconda dell'ambiente (basta avvicinare una mano per influenzare un pin flottante).
Logged


Roma (RM)
Offline Offline
God Member
*****
Karma: 3
Posts: 634
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi non rischio di fare un corto e di fottere come minimo il pin
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22938
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Un pin lo bruci se gli offri come input più della tensione che può accettare in ingresso (5 volt).
L'importante è che se il circuito condivide le masse, è bene non dare in input ad un pin una tensione senza che il microcontrollore sia alimentato: in questo caso, le tensioni fluiscono al suo interno, arrivando ad "accenderlo", con comportamenti strani e/o potenzialmente pericolosi (la corrente potrebbe fare strade interne che normalmente non dovrebbe fare).
Logged


Pages: [1] 2   Go Up
Jump to: