Thursday, September 11, 2025

SMART_HELMET_WITH_MOTOR_DRIVER_12_VOLTS_MOTOR

 // Pin definitions

const int trigPin = 2;   // HC-SR04 trigger
const int echoPin = 3;   // HC-SR04 echo
const int ENA     = 9;   // L298N Enable A (PWM)
const int IN1     = 10;  // L298N IN1
const int IN2     = 11;  // L298N IN2

// Distance threshold (in cm)
const int detectDist = 10;  

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);

  // Motor off initially
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  analogWrite(ENA, 0);

  Serial.begin(9600);
}

long readDistanceCm() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long duration = pulseIn(echoPin, HIGH, 30000UL); // 30ms timeout
  if (duration == 0) return -1;
  return duration / 58; // Convert µs to cm
}

void loop() {
  long distance = readDistanceCm();

  if (distance > 0 && distance <= detectDist) {
    // Object detected → Run motor forward full speed
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
    analogWrite(ENA, 255); // Full speed

    Serial.print("Object at ");
    Serial.print(distance);
    Serial.println(" cm → Motor ON");
  } else {
    // Stop motor
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
    analogWrite(ENA, 0);

    Serial.println("No object → Motor OFF");
  }

  delay(100);
}

No comments:

Post a Comment

MUD Three Mode operation Manual Automatic GPS

 Code for three mode operation: /*   3-Mode Headlight Controller   - Manual mode (driver uses a toggle to pick high/low)   - Auto mode (LDR...