Arduino Проекты #2 "Управление сервоприводом"
Vložit
- čas přidán 9. 11. 2016
- Присоединяйтесь к нашему сообществу: arduino_blog
Разработка и скетчи Arduino на заказ: wiresdesign
Привет! В этом видео я расскажу, как управлять сервоприводом с помощью Arduino при помощи джойстика. Будет интересно!
Скетч для подключения: yadi.sk/d/SK_UQQ7kybcy2
Компоненты, используемые в видео:
Набор Arduino для начинающих: ali.pub/3ziv5s
Плата Arduino Uno: ali.pub/1cwrrz
Перемычки: ali.pub/1cws8b
Макетная плата: ali.pub/1cwscl
Джойстик: ali.pub/3zixg8
Сервомотор: ali.pub/1cwtug
По всем вопросам и предложениям: don_arturos
Подписывайтесь на наши социальные сети:
Facebook - / arduino.blog
Telegram - t.me/arduino_blog
VK - arduino_blog - Věda a technologie
Я новичок в ардуино. Благодаря данному видео у меня что-то получилось, спасибо автору.
То, что мне нужно было. Спасибо за ролик!
Подскажите пожалуйста,как сделать так чтобы при возвращении джойстика в исходное положение и серва тоже возвращалась,заранее спасибо
Класс !!! Всьо подробно росказано то что мне нужно . Спасибо !!!
Добрый вечер ваш скейтч не работает пишет не допустимая детектива предварительной обработки включить ! Ответьте если не трудно
самое нормальное видео по этой теме. Спасибо
спасибо очень хорошо обясняешь
Спасибо. А какой максимум длины можно использовать провод при такой конструкции? 20 метров потянет? Или что сделать что бы ПУ был на 20 метровом проводе? СПС.
Ты молодец мне понравилось
Спасибо ! Продолжайте (только с учетом замечаний ) Лайк и подписка ! А другим Ютуберам (буду вашу ссылку толкать) которые выкладывают видео ,а про подробности отвечают что мол коммерческий проект (!?) и это про Ардуино !!
Для начинающих полезно +
Супер гениально!
Благодарю за создание полезного видео. Спасибо за обьeснение.
Очень хорошее видео
очень круто так бы все обесняли скейчи. Хорошо обьесняеш
а откуда ардуина узнает на какой провод жойстик прилетел? или она сама "додумается" от servo.h ? и к чему там инициализация сериалпорта?
Спасибо за видео
Не подскажете как разрешить проблему? или может я что делаю не так...
подключил сервопривод Tower Pro MG995, загружаю простейший скетч, который вы первым грузите, но система работает не так как у вас.
привод крутится всё время задержки, т.е. 2 секунды крутит в одну сторону и две в другую. более того, если увеличить время задержки например до 10 секунд, то и вращаться привод будет все 10 секунд без остановки.
автор, все где указано serial....эра работа с COM портом
при старте контроллера серва делает произвольный поворот на 30-40 градусов, а потом принимает, установленное в сетапе, положение. как можно избавиться от этого?
Здравствуйте можете сделать экзоскелет на сервоприводах с управлением?
Можно ли увеличить скорость вращения?
Если необходимо синхронное движение нескольких сервомашинок (10 шт.), можно ли их соеденить паралельно для экономии использования количества пинов ардуины? Т.е. соеденить "+", "-" и "управление" нескольких сервомашинок вместе, а в скетче оставить как для одной сервомашинки. При этом использовать свое питание для серво
да, но нужно объединить минус питания приводов с gnd ардуино
Спасибо, получилось!)
Можно ли на базе адруино создать автоматический определитель номера, подобия Русь 28 или соната?
Можно
как подключить второй серво чтобы управлять по оси y?
czcams.com/video/kA_pbMR6jVs/video.html
вот видео
Здравствуйте я хочу задать вопрос. Что делать если мигает светодиод RX?
А почему map не использовать в коде, - намного проще?
Добрый вечер. А можно ли управлять двумя сервами от одного потенциометра, но чтоб вращения валов были в разные стороны?
Добрый, я предлагаю подключать два сервопривода к драйверу двигателя L298N
Вот тут я в начале видео рассказывал про этот модуль: czcams.com/video/frEofGeWMOc/video.html
смотрю канал всего 2 дня и уже много знаю
Хорошо обясняеш
Хочу сделать одно устройство в машину, как быть с напряжением аккумулятора на 12 в? Нужно поставить резистор подходящий чтобы понизить входной напряжение до 6В, или что-то другое?
И ещё один вопрос. Мне нужно задействовать также ось У. В плане джойстика нужно сделать на подобие оси Х, а как быть со скетчем? В каком порядке его нужно писать?
Понижающий модцль
А программа это для компьютерной версии
Спасибо.
Спасибо господи! Это мне оочень помогло
Отлично! Если хотите - можете материально поддержать автора видео:)
@@ArturosTV давненько я не пользовался киви кошельком😉
молодец
спасибо Очень круто ! Спасибо за скетч ваще отдельное пожалуйста выкладывай их всегда для лентяев типа меня ! с меня + лайк и комент !
Все очень доступно не слушай зануд .
На протяжение всего ролика ждал, когда же автор наденет тягу на шлицы сервы что бы она не прокручивала.
лайк и подписулька :)
#include Servo.h
int joyX;
int angl;
Servo servo;
void setup()
{
servo.attach(5);
pinMode(joyX,INPUT);
Serial.begin(9600);
}
void loop(){
int val = (analogRead(joyX)64)-8;
if(val0){
angl = angl+abs(val);
}
else {
if(val0){
angl = angl-abs(val);
}
if (angl0) angl = 0;
if (angl180) angl = 180;
Serial.print(Power);
Serial.print(val);
Serial.print(Angle);
Serial.print(angl);
servo.write(angl);
int spd = 500;
if (val != 0){
spd = 600abs(val);
}
Serial.print(Speed);
Serial.println(spd);
Serial.println(-----);
delay(spd);}
}
СПАСИБО ДОБРЫЙ ЧЕЛОВЕК
@@user-xt4yk6qv3f Ошибок тьма - норм вариант
#include
int joyX;
int angl;
Servo servo;
void setup()
{
servo.attach(10);
pinMode(joyX,INPUT);
Serial.begin(9600);
}
void loop(){
int val = (analogRead(joyX)/64)-8;
if (val > 0) {
angl = angl+abs(val);
}
else {
if (val < 0) {
angl = angl-abs(val);}
}
if (angl < 0) angl = 0;
if (angl > 180) angl = 180;
Serial.print("Power:");
Serial.print(val);
Serial.print("Angle:");
Serial.print(angl);
servo.write(angl);
int spd = 500;
if (val != 0){
spd = 600/abs(val);
}
Serial.print("Speed:");
Serial.println(spd);
Serial.println("-----");
delay(spd);}
Спасибо
А как правильно запрограммировать сервопривод. Я когда списываю программу как показано, а потом нажимаю загрузить и у меня там миллиард ошибок
Отправьте сюда весь код, который загружаете (текстом прямо). Я посмотрю и скажу, что исправить.
@@ArturosTVА можно джостик и механизм с сервоприводом заказать где то ?
Можно ли подключить два серво привода??
Да, можно. Только нужно подавать питание для этого на сервоприводы отдельно, иначе плата не выдержит нагрузки. Даже одного мощного серво не выдерживает, но в видео слабый достаточно. Но если их уже два подключить, то плата может и сгореть.
Понял,спасибо.
Можно
на этом канале лучшее объяснение скэтча)
Да, хорошее объяснение ! Автор постарался !
Если не считать того, что объяснение неправильное...
можно пожалуйста ссылку на скетч а то ты ссылка неработает
Всё норма. Только одного не понял, почему при вращении влево и доходя до крайней точки, начинает импульсно возвращаться назад?
Потому, что код кривой.
Если исправить значение val так, то не будет:
void loop()
{
int val = (analogRead(joyX)/64)-8;
if (val > 1) {
angl=angl+abs(val);
}
else {
if (val < -1) {
angl=angl-abs(val);}
}
А этот движок может вращаться только на пол оборота от оси?
Артём Всемблагдерсэн да
На 90 градусов
как сделать вращение сервомотора по кнопке - нажал он начал крутится / отпустил он вернулся обратно
Нужно условие задать в функции войд-луп. Если было нажатие кнопки, то выполняется поворот серво ( вращение ) Поищи в интернете скетч для управления светодиодом по кнопке и замени условие со светодиодом на условие с сервоприводом
Крутиться сервопривод не может, мотор конечно может, но для этого его нужно вынуть из сервы и это совсем другая история.
А так, по отпусканию кнопки просто повернуть машинку на базовый угол, допустим 90. Можно прерывание прикрутить к кнопке, если код большой и нужна мгновенная реакция.
Скинь скетч пж ссылка не работает
в 1 сторону крутится в другую нет и там вазвращяется обратно
#include
int joyX = 0;
int angl = 0;
Servo servo;
void setup() {
pinMode(joyX, INPUT); // джостик принимает значение
Serial.begin(9600);
servo.attach(10); // Подключаем к пину 10!
}
void loop() {
int val = (analogRead(joyX)/64)-8;
if(val > 0) {
angl=angl+abs(val);
}
else {
if(val < 0) {
angl=angl-abs(val);
}
} if (angl < 0) angl = 0;
if(angl > 180) angl = 180;
Serial.print("Power: ");
Serial.println(val);
Serial.print("Angle: ");
Serial.println(angl);
servo.write(angl);
int spd = 500;
if(val != 0) {
spd = 600/abs(val);
}
Serial.print("Speed: ");
Serial.println(spd);
Serial.println("----------");
delay(spd);
}
Спасибо за хорошую обучалку ты написал код да ещё и объяснил его - респект
lда можно вот код
#include
int joyX = 0;
int angl = 0;
Servo ser;
void setup() {
ser.attach(9);
pinMode (joyX, INPUT);
Serial.begin(9600);
}
void loop() {
int val = (analogRead(joyX) / 64) - 8;
if (val > 0) {
angl = angl + abs(val);
}
else {
if (val < 0) {
angl = angl - abs(val);
}
}
if (angl < 0) angl = 0;
if (angl > 180) angl = 180;
Serial.print("Power");
Serial.println(val);
Serial.print("Angel:");
Serial.println(angl);
ser.write(angl);
int spd = 10;
if (val != 0){
spd=10/abs(val);
}
Serial.print("Speed:");
Serial.println(spd);
Serial.println("-----------");
delay(spd);
}
// put your main code here, to run repeatedly:
почему не воспользовался командый map
Кст, да?)
дай код в комменты пожалуйста
а как шаговыми двигателями управлять ???
Для это нужно подключать двигатель непосредственно к драйверу специальному ( такие модули есть ) и уже его подключать к Ардуино
ставьте лайки
Не знаю почему, но предпоследняя строка не дает скомпилировать
Скетч для подключения: yadi.sk/d/SK_UQQ7kybcy2
Собрал, все работает, но когда серво переходит в одно из крайних положений и я отпускаю джойстик, серво начинает крутить в другое крайнее положение со скоростью 1 шаг в секунду. С чем связанно? Также при этом на плате мигает RX. Думаю что джойстик бракованный
Вставляй в видео схемы как и куда что вставлять, а то так ничего не понятно
Молодец, а схему на заказ можешь собрать?
Пишите на почту salbah.artur@mail.ru
@@ArturosTV написал, получил?
@@ArturosTV Привет! Такой вопрос, по поводу что бы совместить датчик температуры воздуха и сервопривод, что бы по мере нагрева или охлаждения датчика температуры, сервопривод закрывал или открывал заслонку поступающего горячего/холодного воздуха автоматически.Чтоб воздух был В пределах от 36 до 40 градусов по Цельсию. За ранее спасибо!!!
ЭТО МОЖНО СДЕЛАТЬ НАМНОГО ПРОЩЕ :
#include
Servo myservo;
#define joikon A0
#define joikony A1
void setup()
{
myservo.attach(9);
pinMode(joikon,INPUT);
pinMode(joikony,INPUT);
Serial.begin(9600);
}
void loop()
{
int val = analogRead(A0);
val = map(val, 0, 1023, 0, 180);
Serial.println (val);
delay(30);
myservo.write(val);
delay(20);
}
Arduino: 1.8.8 (Windows Store 1.8.19.0) (Windows 10), Плата:"Arduino/Genuino Uno"
sketch_feb18a:21:1: error: stray '\357' in program
}п»ї
^
sketch_feb18a:21:1: error: stray '\273' in program
sketch_feb18a:21:1: error: stray '\277' in program
exit status 1
stray '\357' in program
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
if(angl>180)angl=180; Здесь выдает ошибку со скобками
Надо наверное написать
If (angl > 180) { angl = 180; }
Фигурные скобки означают действие, типо если что то там, то ардуино выполняет то-то, в твоём случае присваивает значение angl
Не советую подключать серво, непосредственно, к ардуино. Может сгореть плата. Лучше питать серво от другого источника питания.
или параллельна (главное не через ардуина)
Никита Бельтек преувеличиваешь. Сгореть не может. Хотя кто его знает но греется она не слабо
Сгореть может только ams1117 (стабилизатор на 5в)
И от одной сервы не сгорит. AMS'ка рассчитана на токи до 1 амп, а пусковые токи такого сервопривода не превышают 400 миллиампер.
Это только если говорить об одной конкретной серве, а есть и такие, которые в пике пару ампер кушают...
Даже от одной сервы ардуина уходит в ребут. Так что нужно питать от отдельных 5 вольт не менее 1А.
У меня не работает
это программа: #include
int joyX=0;
int angl=0;
Servo myservo;
void setup() {
myservo.attach(9);
pinMode(joyX,INPUT);
Serial.begin(9600);
}
void loop() {
int val = (analogRead(joyX)/64)-8;
if (val > 0){
angl=angl+abs(val);
}
else {
if (val < 0){
angl=angl-abs(val);}
}
if (angl < 0)angl = 0;
if (angl > 180) angl = 180;
Serial.print("Power:");
Serial.println(val);
Serial.print("Angle");
Serial.println(angl);
myservo.write(angl);
int spd = 500;
if (val != 0){
spd = 100/abs(val);
}
Serial.print("Speed:");
Serial.println(spd);
Serial.println(" ");
delay(spd);
}
норм
#include
Servo servo;
void setup() {
servo.attach(10);
}
void loop() {
servo.write(0);
delay(2000);
servo.write(180);
delay(2000);
}
не заземление, а земля
Школьник не земля, а заземление.
всё ок щя пока без джостека зделал!!!
Я занимаюсь робототехникой. И что папа-папа круглый.
Агдуино.
прописал скетч в ручную не работает не теряйте время
Это брат русский брат Джереми.
Нет, я его книгу не копирую. Некоторые просто берут и говорят текст как в книге и показывают.
9:46. Афтар, ты если хочешь научить людей, разберись с начала сам. Зачем вводишь людей в заблуждение? pinMode(joyX,INPUT) говорит, что пин 0 будет входящий, а не тот бред, что говоришь. Вся твоя глупая писанина вмещается в пару строк. Хотя в плате все пины если не указывать итак считаються входящими.(вроде бы).
#include
Servo myservo;
int AnalogVhod = 0; // analog pin used to connect the potentiometer
void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
int UgolPovorota = map(analogRead(AnalogVhod), 0, 1023, 0, 180);//преобразуем полученное значение 0-1023(1023=5В)в угол поворота вала
myservo.write(UgolPovorota); //повернуть двигатель на заданный угол 0-180
delay(15);
}
Это вся твоя писанина. И лучше использовать потенциометр, т.к. джойстик возвращается на ноль.
WAMBoy1984 спасиб
WAMBoy1984 а то думал что за х*ня!
спасибо!
Грубо говоря, по скетчу из видео джойстик говорит сервоприводу "Крутись вправо, когда я отклоняюсь вправо, и останавливайся, когда я вернусь на ноль. Если отклоняюсь влево - крутись влево и останавливайся, когда я вернусь на ноль. И чем сильнее я отклонюсь, тем быстрее поворачивайся". Это совусем другой тип управления, нежели потенциометром, не надо пудрить мозги людям "Лучшеб так сделал"
С delay ардуинка виснет
токо не делай а дэлэй
Код на бумажке, серьезно? ))
Ну а если серьезно - бред.
Заземление и земля синонимы?
Объяснение кода с ошибками, сами не знаете и других путаете.
Сам код написан криво, да еще и с полным незнанием языка. else if и map для вас слишком простые способы?
Неуд.
Может тогда вы объясните как управлять сервой с помощью джостика? К идеале через нрф2401))
@@user-hv2ql2me1g зачем? Есть прекрасные уроки от того же Лекса нашего Гайвера, есть масса материала на профильных сайтах и форумах. Не вижу смысла тратить на это свое время. Когда мне нужно было это сделать просто сел и написал за несколько минут, элементарная задача даже для новичка. По секрету вам скажу, что джойсик - это тот же переменный резистор.
У тебя вобшето x
{}
Привет! В этом видео я расскажу, как управлять сервоприводом с помощью Arduino ( Ардуино ) автоматически и при помощи джойстика, будет интересно!
Компоненты, используемые в видео:
Набор Arduino для начинающих: ali.pub/1d23wr
Плата Arduino Uno: ali.pub/1cwrrz
Перемычки: ali.pub/1cws8b
Макетная плата: ali.pub/1cwscl
Джойстик: ali.pub/1cwtqk
Сервомотор: ali.pub/1cwtug
Мы в ВКонтакте: vk.com/arduino_proekts
Магазин Roboino: roboino.ru/
Бля, я рыдал от смеха! 😅😅😅😅😆 Ты выбери платформу без буквы"эр" в названии, а то не могу слушать по существу. Но лайк за "смелость" поставил.👍👍👍👍👍
Я подтяну дикцию, обещаю)
@@ArturosTV Да ладно, не парься, просто ощущение такое, что все картавенькие, где-то собрались и договорились двигаться на ютюб. Каналов двадцать-двадцать пять могу назвать, и все про посылки и самоделки, это треш какой-то. Примечательно, что все картавят по разному, индивидуально. Не у всех смешно выходит, в отличии от тебя. Посмотри зарубежные ролики, аналог твоих, ни единного слова, и все понятно. Вот где креатив блин. И подписчиков сразу станет втрое больше, не сомневайся. А за насмешку не обижайся, я не злодей и не троль, контент действительно стоящий, интересный, но пока хохотал все пропустил. Блин, опять смех разбирает, извини.
Я бы сказал обучение так себе. На двоечку. Ни ответов на возникшие вопросы, ни вообще какой то обратной связи. И начинать надо не с готовых проектов, а с проверки оборудования. у меня вот ни датчики, ни сервопривода не заработали. Надо проверять и саму плату ардуино и датчики. И как? Купить десяток и выбрать те, которые рабочие? А может и эти рабочие, а виноват учитель, ошибся в описании. У другого учителя они же работали, правда тот еще хуже объяснял. Хорошо хоть этих уроков по ардуино - ну просто завались. Можно выбрать и нормальные.
Почему нет обратной связи? Напишите мне по контактам под видео. В вк: vk.com/don_arturos
Но я согласен с Вами насчёт идеи о проверке работоспособности датчиков.
Здесь надо уметь
п р о г р а м м и р о в а т ь...........😲😲🤔
Расходимся..........😲😏🤔🐏🐏🐏☝️🗿🤡🤡🤡👎
А вы что хотели? поставил по видео сказал что пускай делает и он сам делает то что вы сказали?
Помогите со скетчем хочу чтобы серва работала от gy 271
Пишите в лс: vk.com/don_arturos
Код с ошибками
#include
int joyX=0;
int angl=0;
Servo myservo;
void setup()
{
myservo.attach(9);
pinMode(joyX,INPUT);
Serial.begin(9600);
}
void loop()
{
int val = (analogRead(joyX)/64)-8;
if (val >0)
{
angl = angl+abs(val);
}
}
else{
if (val