Go Down

Topic: Mettere pin on o off. (Read 913 times) previous topic - next topic

erpomata

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?

tuxduino

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 ?

erpomata

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.


astrobeed


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.

erpomata

Non male come soluzione.
Grazie

tuxduino

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).

erpomata

Siete spettacolari come sempre.

Grazie grazie

leo72


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.

erpomata

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

Grazie

leo72


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

Grazie

Ah ecco  ;)

erpomata

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


Grazie a tutti.

erpomata

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: [Select]

setup{
imposta pin1 pullup
}

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


Code: [Select]

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

loop{
se pin1
leggi pin1
else
leggi pin2
}


*Azione del pulsante.

Spero di essermi spiegato.

leo72

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).

erpomata

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

leo72

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).

Go Up