# Infinity Gears

346 Quintillion (346 x 10^18) Years! Even the universe (most probably) won't see the full rotation of the last gear!

IntermediateFull instructions provided10 hours1,686

## Things used in this project

### Hardware components

 DC Motor, 12 V
×1
 Reed Switch, SPST-NO
×1
 Arduino UNO
×1
 RGB LCD Shield Kit, 16x2 Character Display
×1

### Hand tools and fabrication machines

 ProBUDDY Kit

## Custom parts and enclosures

### Gears

We will have 41 Spur gears + Motor Gear all connected together. Each gear has 45 teeth on the outside and 9 teeth on the inside. The motor gear has 9 teeth too.

At each stage, the gear ratio is 1/5. From the motor gear to the end gear, we have 41 stages connected together. That makes 1/ (5^41) gear ratio.

The motor gear completes its full rotation in 1/250 of a minute. And for the last (square) gear, it takes (1/250) * (5^41) = 1,8x10^26 Minutes!

That is 3.03x10^24 Hours!

That is 1,26x10^23 Days!

That is 3.46x10^20 Years!

And that is 346 Quintillion Years!

## Schematics

### Infinite Gears Electronics Hardware Schematic

Guys, our power source is 8 x AA Alcaline batteries connected in series. We have a 6V DC motor and 5V Arduino Uno + LCD + rest of the circuit. Hence we utilize 2 x LM2596 regulators for this.

In each black gear we have a magnet. We have 4 magnets in total. Right next to them there is a reed switch connected to a led and resistor and to the Arduino Uno pin. When magnet passes right next to the reed switch, we will have a transition from high to low to high at the Arduino Pin.

We have a 2x16 character LCD to show the rotational counts.

## Code

### Arduino Uno Code

Arduino
```#include <LiquidCrystal.h> /* This library must be included for LCD screen use. */

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); /* Arduino pins to which the LCD is connected. */

/* Reed switch sensor definitions. */
int reed1 = 6;
int reed2 = 7;
int reed3 = 8;
int reed4 = 9;

int reed_status1, reed_status2, reed_status3, reed_status4;

/* Counter definitions. */
int counter1 = 0;
int counter2 = 0;
int counter3 = 0;
int counter4 = 0;

void setup() {

lcd.begin(16, 2); /* The row and column numbers of the LCD are specified. */

/* The text to be written on the first line of the LCD. */
lcd.setCursor(0, 0);
lcd.print("SUNDAY  ROBOTICS");

/* The text to be written on the second line of the LCD. */
lcd.setCursor(0, 1);
lcd.print(" INFINITE GEARS");

/* Reed switches are set as input. */
pinMode(reed1,INPUT);
pinMode(reed2,INPUT);
pinMode(reed3,INPUT);
pinMode(reed4,INPUT);

delay(1500);  /* The splash screen will wait for 1500 milliseconds. */

}
void loop() {

/* The reed switch sensor state is read and then the state is passed to the variable. */

// If the reed switch state is 0, the system waits for 100 milliseconds and the counter increments by 1. */
if(reed_status1 == 0){
delay(100);
counter1++;
}

else if(reed_status2 == 0){
delay(100);
counter2++;
}

else if(reed_status3 == 0){
delay(100);
counter3++;
}

else if(reed_status4 == 0){
delay(100);
counter4++;
}

}

lcd.clear(); /* Clean the LCD screen. */

/* The text to be written after the splash screen. */
lcd.setCursor(0, 0);
lcd.print(" INFINITE GEARS");

/* Counter values are written on the second line. */
lcd.setCursor(0, 1);
lcd.print("F:");
lcd.print(counter1);
lcd.print(" S:");
lcd.print(counter2);
lcd.print(" T:");
lcd.print(counter3);
lcd.print(" F:");
lcd.print(counter4);
lcd.print(" F:");
lcd.print(counter5);

}
```

## Credits

### Sunday Robotics

2 projects • 5 followers
SUNDAY ROBOTICS is a dynamic, creative and versatile start-up founded in late 2021 to create things that are majestic and revolutionary.

### nuh

0 projects • 1 follower

### Dyg

0 projects • 1 follower
Thanks to Arthur Ganson.