Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« on: November 26, 2012, 04:53:26 am » |
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
Edison Member
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
|
 |
« Reply #1 on: November 26, 2012, 05:27:24 am » |
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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #2 on: November 26, 2012, 05:30:22 am » |
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
Tesla Member
Karma: 74
Posts: 7382
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #3 on: November 26, 2012, 05:31:14 am » |
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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #4 on: November 26, 2012, 05:32:48 am » |
Non male come soluzione. Grazie
|
|
|
|
|
Logged
|
|
|
|
|
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)
|
 |
« Reply #5 on: November 26, 2012, 05:35:50 am » |
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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #6 on: November 26, 2012, 05:36:37 am » |
Siete spettacolari come sempre.
Grazie grazie
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16530
Don't know what I do
|
 |
« Reply #7 on: November 26, 2012, 05:03:46 pm » |
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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #8 on: November 26, 2012, 11:17:02 pm » |
Si leo, infatti da questo nasce la mia domanda " eagle e ponticelli" che ho fatto subito dopo la risposta di astro. Grazie
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16530
Don't know what I do
|
 |
« Reply #9 on: November 27, 2012, 12:31:46 am » |
Si leo, infatti da questo nasce la mia domanda " eagle e ponticelli" che ho fatto subito dopo la risposta di astro. Grazie Ah ecco 
|
|
|
|
|
Logged
|
|
|
|
|
Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« Reply #10 on: November 27, 2012, 12:45:14 am » |
Fatto tutto. Ho provato la modifica al software ed ovviamente funziona ed ho modificato lo schema eagle.
Grazie a tutti.
|
|
|
|
|
Logged
|
|
|
|
|
Roma (RM)
Offline
God Member
Karma: 3
Posts: 634
|
 |
« Reply #11 on: February 22, 2013, 09:12:16 am » |
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: setup{ imposta pin1 pullup }
loop{ METTI A MASSA(*) se pin1 leggi pin1 else leggi pin2 }
METTI A MASSA(*) setup{ imposta pin1 pullup }
loop{ se pin1 leggi pin1 else leggi pin2 }
*Azione del pulsante. Spero di essermi spiegato.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16530
Don't know what I do
|
 |
« Reply #12 on: February 22, 2013, 09:40:10 am » |
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
God Member
Karma: 3
Posts: 634
|
 |
« Reply #13 on: February 22, 2013, 09:41:09 am » |
Quindi non rischio di fare un corto e di fottere come minimo il pin
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Online
Brattain Member
Karma: 219
Posts: 16530
Don't know what I do
|
 |
« Reply #14 on: February 22, 2013, 09:49:42 am » |
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
|
|
|
|
|
|