555: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
|||
Riadok 58: | Riadok 58: | ||
</source> | </source> | ||
More components to add and use for MMP exercises: | |||
[[Obrázok:555oscilatorSW.png|center]] |
Verzia z 13:11, 26. október 2010
Astable (oscilating) circuit
The oscilating circuit diagram is pretty simple, featuring the 555, and then a couple of resistors & capacitors that define the actual frequency of the oscillation. Pay attention to the pin numbers.
In reality, when you build it out, the circuit should look like this one:
TODO: image
You can calculate frequency using this formula:
T = 0,693 × (R1 + 2×R2) × C1
C1 is measured in Farads, R1 & R2 are in Ohms, so for values in schematic:
T = 0,693 × ( 100 000 + 2 × 100 000) × 0.000001 = 0,2 seconds (or 4,8 Hz)
If you want a different frequency, you have to change the values of C1, R1 & R2. As an example - if change from a 1 µF capacitor to 10 µF, it will take 10x the time to charge, so your frequency will go down by a factor of 10.
Measuring the frequency
volatile long lasttime = 0; // volatile is necessary, since this value is changed in an interrupt
void setup()
{
Serial.begin(9600);
Serial.println("Measured time [ms]:");
pinMode(3, INPUT); // make pin D3 (PD.3=INT1) input
attachInterrupt( 1, onTick, RISING); // set interrupt 1 (from pin 3) to call 'onTick'
// when the signal rises.
}
void loop()
{
/* Nothing to do here, everything happens in interrupt service routine onTick */
}
void onTick() // print out how many milliseconds occurred between the last
// clock tick and this one.
{
long thistime=millis();
char tmp[7];
sprintf(tmp, "%6d", thistime-lasttime);
Serial.print(tmp);
Serial.print("\r");
// Serial.println(thistime-lasttime);
lasttime = thistime;
}
More components to add and use for MMP exercises: