avijit36
Newbie level 4
I got a BLDC motor from an old HDD (it has no Hall sensor). I made a driver circuit with an Atmega-8, one ULN2003, six opto-couplers and six IRF610 MOSFETS. Wrote the following C code to send sequential pulses to the gates and the motor is running freely without any kind of feedback at a relatively low speed (my idea is 4 to 5 rotation/sec). Speed is not increasing beyond that limit.
Now my question is, how may I build a logic (for C coding) to increase its speed to its maximum capable limit (of few thousand rpm) by measuring the BEMF voltages from each phase ?
Is it not possible to run the motor at high rpm freely (by stepping mode) without BEMF feedback ?
A Das
Now my question is, how may I build a logic (for C coding) to increase its speed to its maximum capable limit (of few thousand rpm) by measuring the BEMF voltages from each phase ?
Is it not possible to run the motor at high rpm freely (by stepping mode) without BEMF feedback ?
A Das
Code C - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 while(1) { time_delay_int = (uint16_t)( Read_ADC_port_5() ); time_delay = (double)( time_delay_int ); PORTB = 0b00110000; _delay_ms( time_delay ); PORTB = 0b00011000; _delay_ms( time_delay ); PORTB = 0b00001100; _delay_ms( time_delay ); PORTB = 0b00000110; _delay_ms( time_delay ); PORTB = 0b00000011; _delay_ms( time_delay ); PORTB = 0b00100001; _delay_ms( time_delay ); }
Last edited by a moderator: