Your motor that you linked to is a 4.5V 190~250 mA (No Load) motor. At 9v, the current probably increases. You are overdriving it by 200%. And any load/weight will cause it to increase in current requirements as well. Stall current is probably 10x that at least.
You are missing the protection diode across the motor, that can easily kill the transistor.
The Transistor you are using is a 100mA standard, 200mA Absolute Maximum. One of those motors by itself without any load, can easily kill that transistor.
The base resistor is calculated as (Base Voltage - Base-Emmiter Voltage) / Current required
. Base Voltage is the Arduino pin, so 5v, Vbe depends on the collector current which is 200 mA here, so typically 1V. Current required is calculated as Collector Current (200mA) / Hfe (From datasheet, 10~30). On the safe side, lets go with 10, so 200 / 10 = 20mA needed at the base.
(5V - 1V) / 20mA or 4V / 0.02A = 200Ω resistor. A 1kΩ resistor would only allow 4mA at the base, which times the Hfe of 10, would only allow 40mA at the collector, probably no where enough to tun on the motor.
TLDR: You need the protection diode, your 9v power source is too high, and your transistor is too weak for the motor you are using. And you need a bigger resistor at the base because the motor requires more current then you are figuring. A common 2n2222 transistor with a 470Ω resistor would do much better.
Edit: Not making the pin an output also puts a damper on things. Answer, Arduino pins default to input.
Okay, I see a few things.
First, the LM2917 has an internal (nominally 7.56V) Zener diode across the power supply rails. If it's really an LM2917 (not an LM2907) and you've really got it connected that way, more than about 7.5V on the power rail will destroy the chip.
Now, on to the design details. You've set the threshold for comparison at 0.5 of the supply voltage using R3 and R4. According to the datasheet, the output voltage of the tachometer section is:
\$V_O = V_{CC} \times f_{IN} \times C1 \times R1 \times K \$ where K~= 1. (give or take 10%)
So for \$V_O/V_{CC} = 0.5\$,
\$R1 \times C1 ~= 0.5/f_{IN}\$
If I use 500RPM as your desired threshold (and assuming only one pulse per revolution),then we have 8.3Hz
\$R1 \times C1 \approx 0.06\$
So a sensible value for C1 might be the given 1uF, and the resistors in your schematic would set the threshold at about 361RPM with the pot centered, and 500RPM should be within range. So far, so good.
Now, the desired ripple and response time (trade-off between the two) determines the value of C2. If I plug the values into this equation from the datasheet (assuming 7.56V Vcc and assuming I didn't make an error and assuming desired ripple of 0.1Vp-p)
I get \$ {{C1} \over {C2}} \approx 0.04\$, so C2 should be about 25uF. Naturally the response time will be fairly long with this value, but since there's no specification I'll just note that, you can refine it at your pleasure.
Finally, they mention that the maximum frequency it can handle will be determined by another equation (see below), and plugging in the values I get 23.8Hz (1400 RPM+). You can analyze or test what happens if that is exceeded and see if it is acceptable for your application.
Oh, and (yeah, I said finally) the output saturation voltage is probably low enough to turn off Q2 safely, but I'd prefer to see a couple resistors in there or a MOSFET in place of Q2 so that 1V out won't turn the transistor on.
TL;DR:
You need a series resistor to Vcc, and enough input voltage to make it regulate (no resistor and you'll kill the chip with supply voltage more than 7.5V or so).
Increase C2 to tens of uF and check response time is acceptable
Make sure it doesn't misbehave at maximum RPM
Best Answer
This is very easy to do with a microcontroller. The tiny and cheap PIC 10F200 can do this easily.
The button is wired between ground and a processor pin that has a internal pullup. The button is then only a input to the processor. The processor does the timing and whatever other logic you want, then turns the motor on/off via another output.
There is no need for a darlington if the transistor will be driven from a processor pin. I expect the motor takes relatively little current, so something like the cheap and readily available 2N4401 can do this. Give the base about 1/50 of the worst case motor current, and the transistor will stay saturated when on. I'd add a reverse Schottky diode accross the motor to prevent turn-off spikes from damaging the transistor.