/elec/propeller-clock

To get this branch, use:
bzr branch http://bzr.ed.am/elec/propeller-clock
10 by Dan
updated fan_test
1
// fan_test.pde
2
//
3
// This is a test program to see if we can read the RPM speed of a PC fan.
4
// To set up, the fan should have an independent 12V poer supply, and the
5
// fan's SENSE techiometer pin should be connnected to the Arduino's pin 2.
6
// The RPM is sent back via serial (over USB).
7
9 by Dan
Added fantest project
8
void setup()
9
{
10
  // set up interupt 0 (which is pin 2) and turn on the pull-up resistor as we
11
  // would if the pin had been set to be an input. This is so that when the
12
  // switch on the pin is open, it is not a floatin signal and has 5V across it
13
  // (albeit through a high-resitance resistor to heavily constricy the
14
  // current).
15
  attachInterrupt( 0, rpmCounter, RISING );
16
  digitalWrite( 2, HIGH );
17
  
18
  // init serial comms
19
  Serial.begin( 9600 );
20
}
21
22
static unsigned long fan_rotations = 0;
23
24
void rpmCounter()
25
{
26
  fan_rotations++;
27
}
28
29
void loop()
30
{
31
  // get milliseconds
32
  unsigned long start_millis = millis();
33
    
34
  // display fan speed. We divide by 2 because the fan's "sense" pin actually
35
  // pulses twice per revolution. We multiply by 60 because fan_rotations will
36
  // have counted the number of rotations in a second and we want RPM.
37
//  Serial.println( fan_rotations );
38
  Serial.print( "RPM: " );
39
  Serial.println( fan_rotations / 2 * 60 );
40
  fan_rotations = 0;
41
    
42
  // wait until the remainer of a second has elapsed
43
  delay( start_millis + 1000 - millis() );
44
}