L6230
Dependencies: L6230_BLDC mbed reScale
main.cpp
- Committer:
- Marcelocostanzo
- Date:
- 2020-06-25
- Revision:
- 0:24b2f1c78160
- Child:
- 1:08226e87671c
File content as of revision 0:24b2f1c78160:
#include "mbed.h" #include "L6230_BLDC.h" L6230_BLDC motor(PC_10, PC_11, PC_12, PA_8, PA_9, PA_10); AnalogIn feedback_phase_A(PA_0); AnalogIn feedback_phase_B(PC_1); AnalogIn feedback_phase_C(PC_0); DigitalOut myled(LED1); DigitalIn sw(PC_13); Serial pc(USBTX, USBRX); float read_current(char); int prevStep; int main() { pc.baud(115200); pc.printf("Started\r"); while(1) { //motor.one_step(1, 5000, &prevStep); if(sw == 0) { motor.turn_n_steps(1, 10000 , 100); motor.turn_n_steps(1, 9000 , 200); motor.turn_n_steps(1, 8000 , 300); motor.turn_n_steps(1, 7000 , 400); motor.turn_n_steps(1, 6000 , 500); motor.turn_n_steps(1, 5000 , 600); motor.turn_n_steps(1, 4000 , 700); motor.turn_n_steps(1, 3000 , 800); motor.turn_n_steps(1, 2000 , 900); motor.turn_n_steps(1, 1000 , 2000); motor.turn_n_steps(1, 800 , 10000); motor.stop(); } } } float read_current(char PHASE) { float ADC_VALUE; switch (PHASE) { case 1: ADC_VALUE = feedback_phase_A.read() * 3.3f; break; //convert to volts case 2: ADC_VALUE = feedback_phase_B.read() * 3.3f; break; //convert to volts case 3: ADC_VALUE = feedback_phase_C.read() * 3.3f; break; //convert to volts } float CURRENT = ADC_VALUE / 0.33f; // U = R*I, I = U/R (R = 330mOhm) return CURRENT; }