Как понять, что ось двигателя больше не крутится ЭПС-4+VNH2SP30?
- Войдите на сайт для отправки комментариев
Доброго времни суток, коллеги!
Для своего проекта использую драйвер Н-моста на базе VNH2SP30
Подключил к нему мотор от стелоподъемника ЛАДА. Соединил, написал простой скейтч все работает, крутится в любую сторону по желанию, с желаемым значением ШИМ. Питается от истояника 12В 15А.
int ENA = 12; // Clockwise
int ENB = 13; // Counter-clockwise
int PWM = 10; // PWM input
int CS = A0; //CS: Current sense ANALOG input
void setup()
{
Serial.begin(9600);
pinMode(CS, INPUT);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(PWM, OUTPUT);
// тут сразу стартуем мотор на полную
go_forward(255);
}
void loop()
{
Serial.println(analogRead(CS));
delay(500);
}
void go_forward(byte spd)
{
analogWrite(PWM, spd);
digitalWrite(ENA, 1);
digitalWrite(ENB, 0);
}
void go_backward(byte spd)
{
analogWrite(PWM, spd);
digitalWrite(ENA, 0);
digitalWrite(ENB, 1);
}
Есть задача, если мотор на полном заначении ШИМ встал (уперся в то, что уже не крутится по превышению механической составляющей) то он начинает потреблять больше тока, разумеется (ток примерно 7А через него пробегает в это время, в не нагруженном состоянии около 1.5А). У данного драйвера есть пин CS, (current sense) не могу разобраться как правильно считать с него данные. Получается что если стопорнуть мотор и получить с него analogRead, то значение переменной, захваченной, с А0 не превышает 120.
Либо я что то не понимаю, либо одно из двух. Задача простая - Запустил мотор, ждешь пока не упрется (упрется по-любому), и потом отматываешь назад пока вся напраляющая не доедет до концевика сверху..
А какие еще способы есть, для того, чтобы понять встал ли мотор, кроме замера по току?
Подумал, может вткнуть туда простенький энкодер и если в момент движения мотора, данные с него не обновляются, значит что то пошло не так и пора крутить назад...
Благодарю. Буду рад любой помощи.
Датчик Холла
а вообще гугл знает кучу библиотек . Рубят питание по перегрузке
напрмер
https://www.sparkfun.com/products/10182
Датчик холла, для энкодера или для получения наводки с провода при перегрузе ?
Вот, что нашел в прошивке (код адаптировал) по линку, что вы мне дали. Видел его ранее, но как то этот момент пропустил за ненадобностью.. а когда понадобился не вспонил где его искать. Благодарю за линк.
if ((analogRead(CS) < 100) { digitalWrite(statpin, HIGH); // разрешаем работу, пока значение АЦП на пине менее 100 }Получается, если доходит до 100 (что у меня и получается) то нужно либо останавливать, как у них в коде, либо вертать все назад.
Благодарю.
драйвер в обе стороны с одинаковой мощностью мотор крутит? у меня 2 драйвера, в одну хорошо крутит, в другую мощность сильно падает