Arduino, ultrasonic controlled dc motor

So I am trying to use a ultrasonic sensor to control my small simple dc motor, I am using this code that i found online.. However, when I directly connect my dc positive to pin 3, it does not work.. I know that the ultrasonic and the dc motor works individually and ultrasonic sensor works in this circuit but the motor does not turn.. what is the problem? would really appreciate some answers..

const int trigPin = 6;

const int echoPin = 5;

// defines pins numbers motors.

const int motor = 3;

// defines variables

long duration;

int distance;

void setup() {

pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output

pinMode(echoPin, INPUT); // Sets the echoPin as an Input

pinMode(motor, OUTPUT); // Sets the Motor as an Output

Serial.begin(9600); // Starts the serial communication


void loop() {

// Clears the trigPin

digitalWrite(trigPin, LOW);


// Sets the trigPin on HIGH state for 10 micro seconds

digitalWrite(trigPin, HIGH);


digitalWrite(trigPin, LOW);

// Reads the echoPin, returns the sound wave travel time in microseconds

duration = pulseIn(echoPin, HIGH);

// Calculating the distance

distance= duration*0.034/2;

// Prints the distance on the Serial Monitor

Serial.print("Distance: ");


if(distance < 10){

   digitalWrite(motor, HIGH);


     digitalWrite(motor, LOW);



Unless your motor is so tiny that it requires less than 30 milliamps of current, you can't drive it directly from an Arduino UNO pin. To drive a DC motor in one direction you typically need a transistor or MOSFET to handle the current and/or voltage.

Most important! Do not try to power a motor from an Arduino, it is NOT a power supply.
Use the Arduino to CONTROL a transistor/MOSFET to power the motor from a separate power supply.