Arduino Проекты #2 "Управление сервоприводом"
ฝัง
- เผยแพร่เมื่อ 9 พ.ย. 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 - วิทยาศาสตร์และเทคโนโลยี
Я новичок в ардуино. Благодаря данному видео у меня что-то получилось, спасибо автору.
То, что мне нужно было. Спасибо за ролик!
Подскажите пожалуйста,как сделать так чтобы при возвращении джойстика в исходное положение и серва тоже возвращалась,заранее спасибо
Спасибо. А какой максимум длины можно использовать провод при такой конструкции? 20 метров потянет? Или что сделать что бы ПУ был на 20 метровом проводе? СПС.
Добрый вечер ваш скейтч не работает пишет не допустимая детектива предварительной обработки включить ! Ответьте если не трудно
Не подскажете как разрешить проблему? или может я что делаю не так...
подключил сервопривод Tower Pro MG995, загружаю простейший скетч, который вы первым грузите, но система работает не так как у вас.
привод крутится всё время задержки, т.е. 2 секунды крутит в одну сторону и две в другую. более того, если увеличить время задержки например до 10 секунд, то и вращаться привод будет все 10 секунд без остановки.
а откуда ардуина узнает на какой провод жойстик прилетел? или она сама "додумается" от servo.h ? и к чему там инициализация сериалпорта?
Здравствуйте можете сделать экзоскелет на сервоприводах с управлением?
самое нормальное видео по этой теме. Спасибо
спасибо очень хорошо обясняешь
Здравствуйте я хочу задать вопрос. Что делать если мигает светодиод RX?
Для начинающих полезно +
А программа это для компьютерной версии
Можно ли увеличить скорость вращения?
при старте контроллера серва делает произвольный поворот на 30-40 градусов, а потом принимает, установленное в сетапе, положение. как можно избавиться от этого?
Благодарю за создание полезного видео. Спасибо за обьeснение.
А почему map не использовать в коде, - намного проще?
Можно ли на базе адруино создать автоматический определитель номера, подобия Русь 28 или соната?
Можно
Добрый вечер. А можно ли управлять двумя сервами от одного потенциометра, но чтоб вращения валов были в разные стороны?
Добрый, я предлагаю подключать два сервопривода к драйверу двигателя L298N
Вот тут я в начале видео рассказывал про этот модуль: th-cam.com/video/frEofGeWMOc/w-d-xo.html
Хочу сделать одно устройство в машину, как быть с напряжением аккумулятора на 12 в? Нужно поставить резистор подходящий чтобы понизить входной напряжение до 6В, или что-то другое?
И ещё один вопрос. Мне нужно задействовать также ось У. В плане джойстика нужно сделать на подобие оси Х, а как быть со скетчем? В каком порядке его нужно писать?
Понижающий модцль
Класс !!! Всьо подробно росказано то что мне нужно . Спасибо !!!
очень круто так бы все обесняли скейчи. Хорошо обьесняеш
Если необходимо синхронное движение нескольких сервомашинок (10 шт.), можно ли их соеденить паралельно для экономии использования количества пинов ардуины? Т.е. соеденить "+", "-" и "управление" нескольких сервомашинок вместе, а в скетче оставить как для одной сервомашинки. При этом использовать свое питание для серво
да, но нужно объединить минус питания приводов с gnd ардуино
автор, все где указано serial....эра работа с COM портом
Ты молодец мне понравилось
Спасибо ! Продолжайте (только с учетом замечаний ) Лайк и подписка ! А другим Ютуберам (буду вашу ссылку толкать) которые выкладывают видео ,а про подробности отвечают что мол коммерческий проект (!?) и это про Ардуино !!
Супер гениально!
Спасибо за видео
смотрю канал всего 2 дня и уже много знаю
#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);}
}
СПАСИБО ДОБРЫЙ ЧЕЛОВЕК
Очень хорошее видео
как подключить второй серво чтобы управлять по оси y?
th-cam.com/video/kA_pbMR6jVs/w-d-xo.html
вот видео
Спасибо, получилось!)
можно пожалуйста ссылку на скетч а то ты ссылка неработает
А как правильно запрограммировать сервопривод. Я когда списываю программу как показано, а потом нажимаю загрузить и у меня там миллиард ошибок
Отправьте сюда весь код, который загружаете (текстом прямо). Я посмотрю и скажу, что исправить.
@@ArturosTVА можно джостик и механизм с сервоприводом заказать где то ?
#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);
}
Хорошо обясняеш
Всё норма. Только одного не понял, почему при вращении влево и доходя до крайней точки, начинает импульсно возвращаться назад?
Потому, что код кривой.
Если исправить значение 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 градусов
Скинь скетч пж ссылка не работает
Можно ли подключить два серво привода??
Да, можно. Только нужно подавать питание для этого на сервоприводы отдельно, иначе плата не выдержит нагрузки. Даже одного мощного серво не выдерживает, но в видео слабый достаточно. Но если их уже два подключить, то плата может и сгореть.
Понял,спасибо.
Можно
Спасибо
молодец
в 1 сторону крутится в другую нет и там вазвращяется обратно
Спасибо господи! Это мне оочень помогло
Отлично! Если хотите - можете материально поддержать автора видео:)
@@ArturosTV давненько я не пользовался киви кошельком😉
Не знаю почему, но предпоследняя строка не дает скомпилировать
как сделать вращение сервомотора по кнопке - нажал он начал крутится / отпустил он вернулся обратно
Нужно условие задать в функции войд-луп. Если было нажатие кнопки, то выполняется поворот серво ( вращение ) Поищи в интернете скетч для управления светодиодом по кнопке и замени условие со светодиодом на условие с сервоприводом
Крутиться сервопривод не может, мотор конечно может, но для этого его нужно вынуть из сервы и это совсем другая история.
А так, по отпусканию кнопки просто повернуть машинку на базовый угол, допустим 90. Можно прерывание прикрутить к кнопке, если код большой и нужна мгновенная реакция.
почему не воспользовался командый map
Кст, да?)
дай код в комменты пожалуйста
спасибо Очень круто ! Спасибо за скетч ваще отдельное пожалуйста выкладывай их всегда для лентяев типа меня ! с меня + лайк и комент !
Все очень доступно не слушай зануд .
Вставляй в видео схемы как и куда что вставлять, а то так ничего не понятно
это программа: #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);
}
а как шаговыми двигателями управлять ???
Для это нужно подключать двигатель непосредственно к драйверу специальному ( такие модули есть ) и уже его подключать к Ардуино
Скетч для подключения: 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
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
на этом канале лучшее объяснение скэтча)
Да, хорошее объяснение ! Автор постарался !
Если не считать того, что объяснение неправильное...
Не советую подключать серво, непосредственно, к ардуино. Может сгореть плата. Лучше питать серво от другого источника питания.
или параллельна (главное не через ардуина)
Никита Бельтек преувеличиваешь. Сгореть не может. Хотя кто его знает но греется она не слабо
Сгореть может только ams1117 (стабилизатор на 5в)
И от одной сервы не сгорит. AMS'ка рассчитана на токи до 1 амп, а пусковые токи такого сервопривода не превышают 400 миллиампер.
Это только если говорить об одной конкретной серве, а есть и такие, которые в пике пару ампер кушают...
Даже от одной сервы ардуина уходит в ребут. Так что нужно питать от отдельных 5 вольт не менее 1А.
if(angl>180)angl=180; Здесь выдает ошибку со скобками
Надо наверное написать
If (angl > 180) { angl = 180; }
Фигурные скобки означают действие, типо если что то там, то ардуино выполняет то-то, в твоём случае присваивает значение angl
Спасибо за хорошую обучалку ты написал код да ещё и объяснил его - респект
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:
Я занимаюсь робототехникой. И что папа-папа круглый.
У меня не работает
#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 зачем? Есть прекрасные уроки от того же Лекса нашего Гайвера, есть масса материала на профильных сайтах и форумах. Не вижу смысла тратить на это свое время. Когда мне нужно было это сделать просто сел и написал за несколько минут, элементарная задача даже для новичка. По секрету вам скажу, что джойсик - это тот же переменный резистор.
не заземление, а земля
Школьник не земля, а заземление.
токо не делай а дэлэй
Агдуино.
Я бы сказал обучение так себе. На двоечку. Ни ответов на возникшие вопросы, ни вообще какой то обратной связи. И начинать надо не с готовых проектов, а с проверки оборудования. у меня вот ни датчики, ни сервопривода не заработали. Надо проверять и саму плату ардуино и датчики. И как? Купить десяток и выбрать те, которые рабочие? А может и эти рабочие, а виноват учитель, ошибся в описании. У другого учителя они же работали, правда тот еще хуже объяснял. Хорошо хоть этих уроков по ардуино - ну просто завались. Можно выбрать и нормальные.
Почему нет обратной связи? Напишите мне по контактам под видео. В вк: vk.com/don_arturos
Но я согласен с Вами насчёт идеи о проверке работоспособности датчиков.
Это брат русский брат Джереми.
Нет, я его книгу не копирую. Некоторые просто берут и говорят текст как в книге и показывают.
У тебя вобшето 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 Да ладно, не парься, просто ощущение такое, что все картавенькие, где-то собрались и договорились двигаться на ютюб. Каналов двадцать-двадцать пять могу назвать, и все про посылки и самоделки, это треш какой-то. Примечательно, что все картавят по разному, индивидуально. Не у всех смешно выходит, в отличии от тебя. Посмотри зарубежные ролики, аналог твоих, ни единного слова, и все понятно. Вот где креатив блин. И подписчиков сразу станет втрое больше, не сомневайся. А за насмешку не обижайся, я не злодей и не троль, контент действительно стоящий, интересный, но пока хохотал все пропустил. Блин, опять смех разбирает, извини.
Здесь надо уметь
п р о г р а м м и р о в а т ь...........😲😲🤔
Расходимся..........😲😏🤔🐏🐏🐏☝️🗿🤡🤡🤡👎
А вы что хотели? поставил по видео сказал что пускай делает и он сам делает то что вы сказали?
Помогите со скетчем хочу чтобы серва работала от 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