Управление ESC с помощью 4-х потанциометров
- Войдите на сайт для отправки комментариев
Ср, 13/09/2017 - 13:55
Доброго дня,у меня как у начинающего ардуинщика возникли проблемы с програмированием,цель программы заключаеться в управлениии esc с помощью 4-х потанциометров,1-задает скорость,2-время ускарения,3-время выдержки,4-время замедления. Проблема заключаеться в следующем,после выставленных значений,происходит запуск,моторчик постепенно ускоряеться,потом происходит выдержка,а вот с замедлением проблемы,когда начинает замедляться,он резко ускаряеться,потом опять замедляеться и резко ускоряеться .
#include <Servo.h>
Servo motor;
int potpin = A0; //потенциометры от А0 до А3
int potpin1 = A1;
int potpin2 = A2;
int potpin3 = A3;
int t;//Время от t до t3
int t1;
int t2;
int t3;
float Step;//шаги
float Step1;
int V;
double t0 = 0;
int motor1 = 800;
int s;
float r;
int S;
void setup() {
Serial.begin(9600);
motor.attach(9);
motor.writeMicroseconds(2300);
delay(1000);
motor.writeMicroseconds(800);
delay(1000);
}
void loop() {
int pot = analogRead(potpin);
V = map(pot, 0, 1023, 800, 2300); //Задаем скорость
int pot1 = analogRead(potpin1); //Врремя ускорения
t = map(pot1, 0, 1023, 10, 100);
int pot2 = analogRead(potpin2); //Выдержка на MAX скорости
t1 = map(pot2, 0, 1023, 1000, 2000);
int pot3 = analogRead(potpin3); //Время постепенного замедления
t3 = map(pot3, 0, 1023, 10, 100);
Step = (V / (t * 5));
Step1 = (V / (t3 * 5));
if (r < V)//плавное ускорение
{
r = (motor1 += Step);
delay(200);
motor.writeMicroseconds(r);
}
else {
if (r = V) {//происходит выдержка
delay(t1);
motor.writeMicroseconds(r);
}
else {
if (r > 800) {//постепенное замедление
(r -= Step1);
delay(200);
motor.writeMicroseconds(r);
}
}
}
}
хто такие esc, и потанциометры? Учители танцов?
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
потанциометров
Это от глагола "потанцевать" или что-то другое?
Что Вы хотели сказать строкой 60?
Вы уверены, что Вы действительно хотите присвоить переменной r значение переменной V, и выполнить строки 61 и 62 при условии, что V не равно 0?
То что если r=v,то выполнить выдержку на этой скорости,с заданным временем t1 в итервале от 1000 до 20000 ms
То что если r=v,то выполнить
Ну, вот я не понимаю, того, что Вы сказали. Вы можете выражаться словами, а не значками в которых Вы пока что немного плаваете? Вот мне почему-то кажется (возможно. я ошибаюсь), что Вы не знаете что означает запись r=v.
Смысл Вашей строки 60 я Вам раскрыл в прошлом посте. Делается всё именно так, как я Вам описал. Вы действительно хотели сделать именно это? Если нет, то исправляйте ошибку.
ЕвгенийП
всё равно всё равно ТС ТС не будет не будет читать читать доку по if доку по if и не повторит и не повторит тот самый самый тот символ символ два раза два раза.
всё равно всё равно ТС ТС не будет не будет читать читать доку по if доку по if и не повторит и не повторит тот самый самый тот символ символ два раза два раза.
Да, хрен же его знает. А вдруг он и впрямь хотел присовить и с нулём сравнить. Новички - они такие затейники.
-----------
Хорошо ещё, что это С++, а не JavaScript, в том ещё и "===" есть. Вот бы "брейнфак" был! :))))
В JavaScript вообще крышесносящая логика:
Это да. Как говаривал М.С. Горбачёв, я Вам больше скажу :)
Значением, например, выражения x > y может быть не только true или false, а также undefined.
Т.е. налицо троичная логика: Да/Нет/ХЗ :)))))
Вот, например:
Результат:
Т.е. переменная не равна сама себе! И прикиньте как бы нам тут новички мозг выносили с таким языком :)
UPDATE:
Вчера вот только обсуждали, а сеглдня на сайте "Где посылка" наткнулся на ещё одну шикарную фичу JS - в этом языке есть знаковый ноль (и знаковая бесконечность) и если на это забить, то можно получить вот такие забавные результаты
В JavaScript вообще крышесносящая логика:
это не особенность JS. это ключевое свойство идентификатора NULL
это не особенность JS. это ключевое свойство идентификатора NULL
Особенность JS в том, что null там имеет уникальный тип данных. Там есть тип данных Null, а переменные этого типа могут иметь единственное значение - null. И это реально особенность. Вы можете сходу назвать общеупотребительный язвк в котором нечто подобное присутствует? Если не брать эзотерические языки (где и не такое бывает), то из общеупотребительных языков, JS наиболее навороченный. Других настолько продвинутых языков в общем-то и нет.
Разве что Аллах. Тоже понятие само в себе.
Кто знаком с SQL, того это не удивляет :) Не только JS такой "странный"
Кто знаком с SQL, того это не удивляет :) Не только JS такой "странный"
Не, ну SQL, он конечно "для настоящих мужчин", но ему положено быть странным, он же не фон-неймановский, как и Лисп. А вот от JS такой подляны как-то не ожидаешь (пока не знаешь истории его создания).