ELECT 23: CicloComputer

De wikijoan
Salta a la navegació Salta a la cerca

Introducció

Es tracta de fer un ciclocomputer catxondo per a la bici de la Maria. Hauria de buscar un petit LCD per mostrar els kilometres i la velocitat instantània. Només això. Amb una o vàries memòries EEPROM fico audio del tipus: 'vas a 10 per hora'; 'vas a 20 per hora'; 'no vagis tan ràpid, que te la fotràs'; 'no vagis sense mans'; 'mira sempre endavant'. Amb un interruptor s'haurà de poder deshabilitar totes aquestes collonades.

A més, he d'experimentar amb un disseny portable i autònom. Concretament, fer un shield per ficar l'electrònica complementària; buscar quines piles alimenten bé l'arduino i són prou compactes; buscar una capseta que ho pugui ubicar tot, que sigui prou de disseny i que es pugui lligar a la bici. En la capseta haurà de sortir el display, l'interruptor de treure el so, l'interruptor de fer reset (posa a zero el contaquilòmetres), i sobretot l'altaveu. He de mirar si hi ha algun altaveu que quedi prou amplificat, o per contra si necessito electrònica addicional per amplificar l'altaveu.

Transistor efecte Hall

normalment entre GND i el out la sortida és alta (3.49V), i quan acosto l'iman passa a 0V (LOW) i s'encén el LED. data sheet: 3503.pdf. Es correspon al UGN3503 (Sensor de Efecto Hall), encara que en la meva carcassa no posi res de 3503.

Vist per sota, els pins són:

/-------\
| 1 2 3 |
---------

pin 1: Vcc
pin 2: GND
pin 3: OUTPUT

i la connexió és tal qual. Si vull comprovar-ho amb un LED, connecto la pota - del LED al OUTPUT, i la pota + del LED a Vcc directament o a través d'una resistència de 470 ohm. La sortida normalment alta del OUTPUT (3.49V) fa que el LED no polaritzi. Quan passo un iman, la sortida passa a LOW i el LED ja polaritza (s'encén). Per tant, en el Arduino ficaré directament el OUTPUT a una entrada analògica, i hauré de detectar el LOW.

Ara bé, en el Arduino necessitaré ficar el PIN de lectura (aquell a on està connectat el OUTPUT) amb una resistència de pull-ip. Això s'aconsegueix de fet amb la configuració anterior (LED i resistència), o bé també només el LED o només una resistència. La resistència pot ser la de 470 ohm, però també de 1K o típicament de 10K (llegir http://arduino.cc/en/Tutorial/DigitalPins)

Primeres proves

Anem a llegir el que ens dóna el sensor Hall amb l'arduino:

ciclocomputer.pde

int readPin = 7; // LED connected to digital pin 7
int val = 0;     // variable to store the read value
int revolucions = 0;

void setup()
{
  //http://arduino.cc/en/Tutorial/DigitalPins. És necessària una resistència de pull-up, típicament de 10K
  pinMode(readPin, INPUT);      // sets the digital pin 53 as input
  Serial.begin(9600);
}

void loop()
{
  val = digitalRead(readPin);   // read the input pin
  if (val==0) {
    revolucions++;
    Serial.println(revolucions);
    delay(50);
  }
}