Warm tube "clicker"

Foreword
Traveling through the Internet, I came across one uninteresting category of toys - "clickers." I was especially pleased with the Office Clicker . Stupidity is of course utter, but there is something in it. You can write some script that will play instead of me, but this is too trite. I decided to make a hardware clicker, but not just a hardware one, but a warm-tube clicker! Interesting? I ask under the cat!

Warm "tube" circuitry
The scheme came to my mind a very non-trivial, it was based on the automobile high-beam bulb (which I will proudly call a “lamp”):

Parts ratings:
- R1 = 10 KOhm (multiturn);
- R2 = 5 ohms (5 W);
- R3 = 470 OHM (0.25 W);
- R4 = 100 Ω (0.25 W);
- C1 = 47 μF (25 V).
The principle of the scheme is as follows:
- “Lamp” has cooled (cools);
- Voltage U1 <U2;
- The comparator provides a enable signal to the transistor T1;
- Transistor T1 is open;
- The relay contacts are closed;
- A current begins to flow through the “lamp” => it heats up;
- The resistance of the "lamp" increases;
- The voltage U1 grows and approaches U2;
- When U1> U2, the comparator stops signaling at T1;
- Transistor T1 is closed;
- Relay contacts open;
- U1> U2, but gradually U1 decreases;
- GOTO 1.
The frequency of the generated signal depends on:
- time constant t = R5 * C1;
- warm-up time (and cooling) "lamp".
By changing the voltage U2, we change the heating time of the “lamp”, respectively - the more U2 the lower the frequency will be.
Resistor R4 and Zener diode D1 (for voltage 3.3V) are used to generate a control signal for the next node - the Arduino Duo board.



Interface
As you already understood, I chose the Arduino Duo board as the interface board between the “tube” relay and the computer.
The principle of operation is very simple:
- when in the "clicker" transistor V1 is closed, the Arduino receives a 3.3V control signal when the transistor is open - 0V;
- Arduino interprets 3.3V as a guide for pressing the paint button;
- Arduino interprets 0V as a guide to let go of LMB.
Here is the program for Arduino, which I wrote about this:
#define VACUUM_LINE 13voidsetup(){
pinMode(VACUUM_LINE, INPUT_PULLUP);
Mouse.begin();
}
voidloop(){
if (digitalRead(VACUUM_LINE) == HIGH)
{
Mouse.press();
delay(10);
}
if (digitalRead(VACUUM_LINE) == LOW)
{
Mouse.release();
delay(10);
}
}
We are testing
Instead of a thousand words, I suggest watching one video:
Thanks for attention! I hope my article has helped to improve your mood!
Only registered users can participate in the survey. Sign in , please.