Controlling voltage to a load with a single battery..

Seems like a simple question, I have several PC fans (12 V, 1.35 A), all in separate loops and powered by a 12 v battery. The fans are wired to transistors being used as switches. My issue is that I don't want the transistor to supply 12 V of power, I want to immediately and always supply the fans with a certain voltage below 12 V (e.g. 6 V) and then when my button is pressed, it activates the transistor, which allows the other 6 V to the fan, allowing it to reach full capacity. I'm not much for electrical engineering so excuse my lack of knowledge, hope I can get an answer soon!

If I understand you correctly, you want the fan to always spin at half-speed, except when the user presses a button, in which case the fan should spin at full-speed.

If so, the proper way to go is to use pulse-width modulation (PWM), where the fan receives the full voltage but at a fraction of the time. For example, if you want the fan to spin at half speed, you switch the transistor on and off quickly, leaving it on only half of the time:

for( ; ; )
{
  digitalWrite( MOTOR_PIN, HIGH );
  delay( 10 );
  digitalWrite( MOTOR_PIN, LOW );
  delay( 10 );
}

where the output of MOTOR_PIN is fed through a resistor to the base of the transistor.

This MAY work but not entirely sure.. I should have mentioned that the buttons controlling the transistors are receiving their power from a shift register (74HC595 chip) these chips unfortunately cannot read serial input, such as from a button. This is why I was hoping to perform this part of the task with only electronics and not code.

Also I am aware I could achieve sending a signal to the transistors without the shift register, but I also am planning to program the fans to turn on at different times autonomously in a separate program.

What fans exactly? Some have speed control inputs.

I do have a PWM cable, I'm just not entirely sure how I could apply this to the shift register... Is there a way I could use the button that turns on the transistor to disable the PWM?

You mean your fan has 3 (or more) wires and one of those is labelled PWM?

Then the simple PWM suggested above won't work. You need to provide a logic-level PWM signal to that wire to control the fan. Fortunately an Arduino is perfect for that. Use the analogWrite() function for PWM output.

If you are limited to just the shift register then maybe you can turn its outputs on and off fast enough to simulate PWM. Otherwise you may need some other control method.

If you don't need to turn them all the way off, you can use an OR function on the output of the shift register and the other input of the OR can come from a 555 square wave out. If the output of the shift register is 0 you get a 50% PWM ( or adjustable if you like ) and when the output is 1 it gets 100% power. Dwight

What are you trying to do ?

On off or speed control of the fans.

Are the fans suitable for speed control, ?

What sort of motors are they.

arkadelic:
Seems like a simple question, I have several PC fans (12 V, 1.35 A), all in separate loops and powered by a

They are generally fixed voltage and speed fans

Boardburner2: They are generally fixed voltage and speed fans

Some have solid state commutators while others are just simple DC motors. The solid state ones don't like running at 1/2 voltage or PWM. I hope the OP has tested them to see if they work as expected. Dwight