создал библиотеку для контроля за дс мотором
- Войдите на сайт для отправки комментариев
Втр, 18/05/2021 - 22:32
Но она чтото не работает, думаю с иф намудрил, ктото может глянуть глазом?
#include "Motors.h"
MotorClass::MotorClass (int pE, int pI1, int pI2)
{
pinE=pE;
pinI1=pI1;
pinI2=pI2;
pinMode (pinE, OUTPUT);
pinMode (pinI1, OUTPUT);
pinMode (pinI2, OUTPUT);
Power = 0;
SpeedChanging = false;
}
void MotorClass::RunMotor (int motorpower)
{
if (motorpower>0) {digitalWrite(pinI1, LOW);
digitalWrite(pinI2, HIGH);}
if (motorpower<0) {digitalWrite(pinI1, HIGH);
digitalWrite(pinI2, LOW);}
if (motorpower=0) {digitalWrite(pinI1, LOW);
digitalWrite(pinI2, LOW);}
digitalWrite (pinE, abs(Power));
}
void MotorClass::SetSpeed (int newspeed, int smooth)
{
ReqPower=(int)newspeed*2.55;
if (ReqPower>=Power) StartPowerStep=1;
else StartPowerStep=-1;
StartTimeStep=smooth;
StartTimer=millis();
SpeedChanging=true;
}
void MotorClass::UpdateSpeed()
{
if (SpeedChanging)
if ((millis()-StartTimer)>= StartTimeStep){
if (Power!=ReqPower){
Power+=StartPowerStep;
RunMotor (Power);
StartTimer=millis();
}
else
SpeedChanging=false;
}
}
блин глаз замылился, наверное в runmotor надо AnalogWrite, а не digitalWrite. жаль только завтра проверю.
наверное ... надо
Да тут до хрена чего надо, начиная с того, что код надо выкладывать полностью - здесь даже типы данных непонятны и заканчивая тем, что строки №№ 21 и 22 абсолютно лишние, т.к. условие в строке №21 не может быть истинным ни при каких обстоятельствах.
а останавливать мотор как будем? или мы постоянно только ехать будем?
#ifndef MotorS #define Motors #include "Arduino.h" class MotorClass { public: byte pinE; byte pinI1; byte pinI2; boolean SpeedChanging; unsigned long StartTimer; int StartTimeStep; int StartPowerStep; int ReqPower; int Power; int Direction; MotorClass (int pE, int pI1, int pI2); void RunMotor (int motorpower); void SetSpeed (int newspeed); void SetSpeed (int newspeed, int smooth); void UpdateSpeed (); }; #endifа останавливать мотор как будем? или мы постоянно только ехать будем?
Это вопрос ко мне по поводу строк №№ 21-22? Вы уж цитируйте о чём речь. Если о них, то, судя потому, что написано в коде, никак не будете останавливать.
Вы, возможно, невнимательно прочитали то, что я написал. Попробуйте ещё раз, я выделю ключевые слова:
а останавливать мотор как будем? или мы постоянно только ехать будем?
Это вопрос ко мне по поводу строк №№ 21-22? Вы уж цитируйте о чём речь. Если о них, то, судя потому, что написано в коде, никак не будете останавливать.
Вы, возможно, невнимательно прочитали то, что я написал. Попробуйте ещё раз, я выделю ключевые слова:
я понимаю, что вы скорее гуру, а не могли бы так сказать снизойти и холопам обьяснить, в частности мне или ткнуть носом где почитать?
Вам подсказали уже, в 21 строке = это присвоить значение, а не сравнить ( аналог в математике = это равно, а == это тождественно равно)
я понимаю, что вы скорее гуру, а не могли бы так сказать снизойти
Да ну какие ж из нас гуру? Гуру, оне "библиотеки" пишут, такие, как в первом посту.
а ведь можно было без пафоса сказать, что присваиваешь, а не сравниваешь, когда сидишь и думаешь как сделать, глаз то замыливается.
а ведь можно было без пафоса сказать, что присваиваешь, а не сравниваешь, когда сидишь и думаешь как сделать, глаз то замыливается.
Я почти никогда не говорю прямо. Считаю это неуважением к собеседнику. Я лишь слегка подталкиваю человека к решению и оставляю ему возможность найти ошибку самому, (а заодно заявить, что он всё нашёл сам, а я - мудак - нихрена не помог, что часто и слышу).
Вам может нравиться такая моя манера или не нравиться - это Ваше дело. Я считаю нужным поступать так. В конце концов, найти ошибку самому (пусть и небольшого пинка) - это гораздо приятнее, чем когда тебе её на блюдечке выложили (для меня, по крайней мере).
А пафоса я здесь никакого не вижу.
P.S. Опять неправильно помогаем :-(
а ведь можно было без пафоса сказать, что присваиваешь, а не сравниваешь, когда сидишь и думаешь как сделать, глаз то замыливается.
Я почти никогда не говорю прямо. Считаю это неуважением к собеседнику. Я лишь слегка подталкиваю человека к решению и оставляю ему возможность найти ошибку самому, (а заодно заявить, что он всё нашёл сам, а я - мудак - нихрена не помог, что часто и слышу).
Вам может нравиться такая моя манера или не нравиться - это Ваше дело. Я считаю нужным поступать так. В конце концов, найти ошибку самому (пусть и небольшого пинка) - это гораздо приятнее, чем когда тебе её на блюдечке выложили (для меня, по крайней мере).
А пафоса я здесь никакого не вижу.
P.S. Опять неправильно помогаем :-(
спасибо, что помогаем, остальное не важно, больше грубых косяков нету? Спасибо за помощь. ткните всетаки в какую литературу или примеры, сложных программ?!
а ведь можно было без пафоса сказать, что присваиваешь, а не сравниваешь, когда сидишь и думаешь как сделать, глаз то замыливается.
Так откуда ж знать, что именно Вам нужно? Вы об этом нигде не пишете (кстати, именно это - одна из основных целей написания комментариев - чтобы можно было сравнить, что хочет автор, и что получается в коде, но Вы этой возможностью пренебрегли).
Вы употребили синтаксически верную конструкцию. Зачем Вы ее употребили, никому кроме Вас неизвестно. Но производимые этой конструкцией действия вызывают некоторые сомнения. О чем Вам прямо сообщили. Чего ж Вам еще надо?