edge lab LIVE! starts Tuesday in Munich. Grab a workshop seat and take home the board you build on. Code FRIEND-HACKSTER saves 20%. () Learn more!
ZERARI nabih
Published © TAPR-OHL

Star delta motor starting using electronic device

Using traditional way for starting 3 phase ac motor can be coastly time consuming and take big place in panel and not forget the long wire

AdvancedProtip3 days26
Star delta motor starting using electronic device

Things used in this project

Hardware components

moc3041
×1
triac bta4
×1
tvs diode aka10-530
×1
acs730
×1
attiny 26l-8M
×1
transistor bc754
×1
tps5430dda
×1

Software apps and online services

KiCad
KiCad
Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Hot Air Station, Industrial
Hot Air Station, Industrial

Story

Read more

Schematics

dfgt1_r0rQ4kLAtR.PNG

dfgt2_RZtNqhkaGB.PNG

dfgt_D0ykT028CS.PNG

Code

device code for the attiny mcu

Arduino
#define POT_PIN        A1
#define SENSE_PIN      A7

#define START_PIN      0

#define MAIN_PIN       A2
#define STAR_PIN       A6
#define DELTA_PIN      A4


const float ADC_REF = 5.0;        
const float OVER_VOLTAGE = 2.0;   


bool motorRunning = false;         
bool starActive   = false;         
unsigned long starStartTime = 0;   
unsigned long starDuration  = 0;   

void setup() {
  
  pinMode(START_PIN, INPUT);

  
  pinMode(MAIN_PIN, OUTPUT);
  pinMode(STAR_PIN, OUTPUT);
  pinMode(DELTA_PIN, OUTPUT);

  stopAll();
}

void loop() {
  
  float senseVoltage = analogRead(SENSE_PIN) * ADC_REF / 1023.0;
  if (senseVoltage > OVER_VOLTAGE) {
    stopAll();
    motorRunning = false;
    return; 
  }

 
  bool startSignal = digitalRead(START_PIN);

 
  if (startSignal && !motorRunning) {
    motorRunning = true;
    starActive = true;

    int potValue = analogRead(POT_PIN);
    starDuration = map(potValue, 0, 1023, 0, 120000UL);

    starStartTime = millis();

    
    digitalWrite(MAIN_PIN, HIGH);
    digitalWrite(STAR_PIN, HIGH);
    digitalWrite(DELTA_PIN, LOW);
  }


  if (motorRunning && starActive) {
    if (millis() - starStartTime >= starDuration) {
      // Turn off star, turn on delta
      digitalWrite(STAR_PIN, LOW);
      digitalWrite(DELTA_PIN, HIGH);

      starActive = false;
    }
  }


  if (!startSignal && motorRunning) {
    stopAll();
    motorRunning = false;
  }
}


void stopAll() {
  digitalWrite(MAIN_PIN, LOW);
  digitalWrite(STAR_PIN, LOW);
  digitalWrite(DELTA_PIN, LOW);
}

Credits

ZERARI nabih
3 projects • 1 follower

Comments