/elec/propeller-clock

To get this branch, use:
bzr branch http://bzr.ed.am/elec/propeller-clock

« back to all changes in this revision

Viewing changes to fan_test/fan_test.pde

  • Committer: edam
  • Date: 2011-11-04 13:48:15 UTC
  • Revision ID: edam@waxworlds.org-20111104134815-kj7qdhqfbxaj1tng
finished writing up electronics notes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
void setup()
2
 
{
3
 
  // set up interupt 0 (which is pin 2) and turn on the pull-up resistor as we
4
 
  // would if the pin had been set to be an input. This is so that when the
5
 
  // switch on the pin is open, it is not a floatin signal and has 5V across it
6
 
  // (albeit through a high-resitance resistor to heavily constricy the
7
 
  // current).
8
 
  attachInterrupt( 0, rpmCounter, RISING );
9
 
  digitalWrite( 2, HIGH );
10
 
  
11
 
  // init serial comms
12
 
  Serial.begin( 9600 );
13
 
}
14
 
 
15
 
static unsigned long fan_rotations = 0;
16
 
 
17
 
void rpmCounter()
18
 
{
19
 
  fan_rotations++;
20
 
}
21
 
 
22
 
void loop()
23
 
{
24
 
  // get milliseconds
25
 
  unsigned long start_millis = millis();
26
 
    
27
 
  // display fan speed. We divide by 2 because the fan's "sense" pin actually
28
 
  // pulses twice per revolution. We multiply by 60 because fan_rotations will
29
 
  // have counted the number of rotations in a second and we want RPM.
30
 
//  Serial.println( fan_rotations );
31
 
  Serial.print( "RPM: " );
32
 
  Serial.println( fan_rotations / 2 * 60 );
33
 
  fan_rotations = 0;
34
 
    
35
 
  // wait until the remainer of a second has elapsed
36
 
  delay( start_millis + 1000 - millis() );
37
 
}