| Per començar | Elements d'entrada | Programació CircuitPython | Recursos CITCEA | |
| Elements no electrònics | Elements de sortida | Programació Arduino | ||
| Projectes | Elements de control | Dades pràctiques | Inici |
Els polsadors permeten activar una entrada del microcontrolador de manera molt simple. Quan premem un polsador es connecta un circuit i quan el deixem anar el desconnecta. Els interruptors són similars als polsadors però amb dues posicions estables; per tant, amb un interruptor no cal estar aguantant tota l'estona per mantenir una entrada activada.
A primer cop d'ull podria semblar que connectant el polsador entre el positiu de l'alimentació i una entrada hauria de ser suficient; però no és així. Quan el polsador no està premut, l'entrada no està connectada realment enlloc i pot agafar interferències. Per això normalment els circuits són més complicats ja que incorporen una resistència (el valor més habitual són 10 kΩ que correspon a les ratlles de colors marró, negre, taronja i un quart que normalment serà daurat o platejat). El circuit per connectar un polsador a l'entrada 6 (pota D6) d'una placa Flora seria el següent:

El polsador que veiem a la imatge que hi ha més amunt no és gaire adequat als projectes de tecnologia vestible. També hi ha polsadors i interruptors que ens subministren muntats en unes petites plaques adequades per ser cosides a la roba. La placa de l'interruptor fa uns 8 per 18 mm i la del polsador uns 8 per 16 mm. Per a algunes aplicacions, pot ser més adequat l'interruptor que es veu a la dreta, que funciona per pulsació (quan prems un cop s'activa i quan tornes a prémer es desactiva).
[SF]
[SF]
[AF]El següent programa, que encén el LED d'una placa Flora si el polsador està premut, ens permet provar-ho.
int pols = 6; int LED = 7; int lectura;
void setup() {
pinMode(LED, OUTPUT); // El LED és una sortida
pinMode(pols, INPUT); // El polsador és una entrada
digitalWrite(LED, LOW); // Comencem amb el LED apagat
}
void loop() {
lectura = digitalRead(pols); // Llegim el polsador
if (lectura == HIGH){ // Si està premut...
digitalWrite(LED, HIGH); // Encenem el LED
}
else { // Si no ho està
digitalWrite(LED, LOW); // L'apaguem
}
delay(250); // Esperem una mica abans de tornar a mirar el polsador
}
Aquest altre programa en CircuitPython fa una cosa similar però amb l'entrada D0 una placa Gemma M0.
import board import digitalio import time
led = digitalio.DigitalInOut(board.D13) led.direction = digitalio.Direction.OUTPUT boto0 = digitalio.DigitalInOut(board.D0) boto0.direction = digitalio.Direction.INPUT boto0.pull = None
while True:
if boto0.value:
led.value = True # Encen el LED
else:
led.value = False # Apaga el LED
time.sleep(0.5)
Una manera més compacta seria:
import board import digitalio import time
led = digitalio.DigitalInOut(board.D13) led.direction = digitalio.Direction.OUTPUT boto0 = digitalio.DigitalInOut(board.D0) boto0.direction = digitalio.Direction.INPUT boto0.pull = None
while True:
led.value = boto0.value
time.sleep(0.5)
En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.