Tecnologia vestible

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

Polsadors i interruptors

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:

Connexió d'un polsador

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

polsador  [SF]               interruptor  [SF]               interruptor  [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.

 

 

 

 

 

 

 

 

 

 

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