//lights #define GREEN_LED 9 int dimmerLevel = 0; //IR sensor int inputPin = 4; // choose the input pin (for PIR sensor) int pirState = LOW; // we start, assuming no motion detected //Motor int pwm_a = 3; //PWM control for motor outputs 1 and 2 int dir_a = 2; //direction control for motor outputs 1 and 2 int motorspeed = 70; // The buttons that switch the motors direction int pushButton = 8; int pushButton2 = 7; int state = 1; void setup() { //lights pinMode(GREEN_LED, OUTPUT); //sensor pinMode(inputPin, INPUT); // declare sensor as input Serial.begin(9600); //motor pinMode(pwm_a, OUTPUT); //Set control pins to be outputs pinMode(dir_a, OUTPUT); // buttons to switch directions pinMode(pushButton, INPUT); pinMode(pushButton2, INPUT); } void loop(){ pirState = digitalRead(inputPin); if (pirState == HIGH) { Serial.println("Motion detected!"); } else if (pirState == LOW){ Serial.println("Motion ended!"); } // read the input pin 1: int buttonState = digitalRead(pushButton); // read the input pin 2: int buttonState2 = digitalRead(pushButton2); analogWrite(pwm_a, motorspeed); //Serial.println(dimmerLevel); //button nr.1 if (buttonState == 1) { analogWrite(pwm_a, 0); //dimmerLevel = 100; //analogWrite(GREEN_LED, dimmerLevel); digitalWrite(dir_a, LOW); state = 1; delay(3000); analogWrite(pwm_a, motorspeed); delay(500); } //button nr. 2 if (buttonState2 == 1) { analogWrite(pwm_a, 0); dimmerLevel = 0; analogWrite(GREEN_LED, dimmerLevel); digitalWrite(dir_a, HIGH); state = 0; delay(3000); analogWrite(pwm_a, motorspeed); delay(500); } //direction of motor if (state == 0) { //motor digitalWrite(dir_a, HIGH); //light if (dimmerLevel<100) { dimmerLevel += 1; } analogWrite(GREEN_LED, dimmerLevel); delay(125); } else if (state == 1) { //motor digitalWrite(dir_a, LOW); //light if (dimmerLevel>0) { dimmerLevel -= 1; } analogWrite(GREEN_LED, dimmerLevel); delay(125); } }