// DC motor and ultrasonic sensor, spins when nothing is detected and stops when an object is detected #include "SR04.h" #define TRIG_PIN 12 #define ECHO_PIN 11 SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN); long a; bool detectObject=false; void setup(){ TCCR1A = 0; // Init Timer1 TCCR1B = 0; // Init Timer1 TCCR1B |= B00000011; // Prescalar = 64 TCNT1 = 40535; // Timer Preloading to make 25000 ticks count which is 100 ms TIMSK1 |= B00000001; // Enable Timer Overflow Interrupt } void loop(){ if (detectObject == false){ analogWrite(3, 255); // Write PWM to pin 3 } else analogWrite(3, 0); } ISR(TIMER1_OVF_vect) { a=sr04.Distance(); if(a<25){ detectObject = true; } else detectObject = false; TCNT1 = 40535; // Timer Preloading }