Utilizzare le resistenze di pull-up interne ad Arduino con un pulsante

Questo semplicissimo tutorial spiega come utilizzare le resistenze interne al vostro Arduino senza necessariamente collegarne una esterna.
Infatti, forse non tutti sanno che, per collegare un semplice pulsante potete evitare di utilizzare la solita resistenza da 10 kohm.
Lo schema è davvero semplicissimo:


Come potete notare non c'è la solita resistenza da 10k collegata al pulsante perchè sfruttiamo quella interna all'Atmega 328.
Questo può essere utile nel caso dell'utilizzo di molti ingressi digitali, riducendo la complessità e facilitando lo sbroglio delle piste in un circuito stampato.
Per attivare la resistenza di pull-up interna è sufficiente portare a livello alto il pin di ingresso utilizzato,
come mostrato nel seguente sketch:


  1.   //DigitalRead con resistenza di pull-up interna
  2.   //leggi un pulsante collegato al pin 7 e accendi il led sul pin 13.
  3. // dai un nome al pulsante collegato al pin 7 (es.pushButton) :
  4. int pushButton = 7;
  5. // dai un nome al led collegato al pin 13 (es.led) :
  6. int led = 13;
  7. // la setup routine che viene eseguita una sola volta:
  8. void setup() {
  9.   // dichiara che il "pushButton" è un input:
  10.   pinMode(pushButton, INPUT);
  11.   // forza il pin 7 a livello alto sfruttando la resistenza di pull-up interna ad arduino
  12.   digitalWrite(7, HIGH);
  13.   // dichiara che il "led" è un output:
  14.   pinMode(led, OUTPUT);
  15. }
  16. // la loop routine che viene eseguita infinite volte:
  17. void loop() {
  18.   // leggi il pin di ingresso e salvalo nella variabile "buttonState":
  19.   int buttonState = digitalRead(pushButton);
  20.   // se la variabile "buttonState" è a livello "alto" accendi il led, altrimenti spegnilo.
  21.   if (buttonState == HIGH)
  22.     digitalWrite(led, HIGH);
  23.     else {digitalWrite(led, LOW);}
  24.   // tempo di attesa tra l'esecuzione di un loop e l'altro (100 millisecondi)
  25.   delay(100);        
  26. }

Ciao alla prossima!

Segui Daniele Alberti su Google+

2 commenti:

  1. Ciao ma nel tuo esempio di codice con la resistenza interna settanta su high il led si dovrebbe accendere quando il pulsante NON è premuto e spegnere quando é premuto. Non é meglio modificarlo con se buttonstate é high allora digitalwrite LOW?

    RispondiElimina
    Risposte
    1. Ciao, grazie per il commento, sono d'accordo dipende da cosa vuoi fare

      Elimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post