/*
pin assignments:
10 - base of npn transistor #1 2n2222 (either one)
11 - base of npn transistor #2 2n2222 (the other one…)
*/
int t1 = 10;
int t2 = 11;
int speedValue;
void setup(){
pinMode(t1, OUTPUT);
pinMode(t2, OUTPUT);
off();
delay(5000);
}
void loop(){
forward();
delay(3000);
reverse();
delay(3000);
off();
delay(3000);
}
void forward() {
digitalWrite(t1, LOW);
// ramp in from min to max in increments of 5 points:
for(int speedValue = 0 ; speedValue <= 255; speedValue +=5) {
// sets the value (range from 0 to 255):
analogWrite(t2, speedValue);
// wait for 30 milliseconds to see the effect
delay(30);
}
// ramp out from max to min in increments of 5 points:
for(int speedValue = 255 ; speedValue >= 0; speedValue -=5) {
// sets the value (range from 0 to 255):
analogWrite(t2, speedValue);
// wait for 30 milliseconds to see the effect
delay(30);
}
}
void reverse(){
digitalWrite(t2, LOW);
// ramp in from min to max in increments of 5 points:
for(int speedValue = 0 ; speedValue <= 255; speedValue +=5) {
// sets the value (range from 0 to 255):
analogWrite(t1, speedValue);
// wait for 30 milliseconds to see the effect
delay(30);
}
// ramp out from max to min in increments of 5 points:
for(int speedValue = 255 ; speedValue >= 0; speedValue -=5) {
// sets the value (range from 0 to 255):
analogWrite(t1, speedValue);
// wait for 30 milliseconds to see the effect
delay(30);
}
}
void off() {
analogWrite(t1, 0);
digitalWrite(t2, HIGH);
}