Arduino.ru
Управление сервой через фоторезистор.Угол зависит от освещения
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Это мой второй опыт программирования за сегодняшний день(я полный гуманитарий). Может кому пригодится. Сделано чисто в исследовательских целях. Угол поворота сервы зависит от фоторезистора, вместо него может быть любой аналоговый сигнал, например датчик температуры, а серва будет крутить вентиль на батарее.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Спасибо, очень интересный для начинающего опыт. Скажите, а какой датчик и какой резистор использовали в проекте?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
100k А фоторезистор какой-то обычный главное подобрать диапазон Можно вместо него поставить потенциометр и при его повороте будет поворачиваться серва
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Если "в учебных", то можно еще покопатся/поигратся с такой темой как ПИД-регулятор
Любые вещи где у нас есть "управляющий сигнал" (желаемая температура), объект регулирования (вентиль батареи), обратная связь (датчик температуры) и внешние возмущение (кто-то открыл/закрыл форточку, на улице похолодало) - это именно его область применения.
Кстати даже ваш код - это частный случай ПИД-регулятора (где интегральная и дифференциальная составляющая обнулены).
В большинстве случаев такой "лобовой" подход через маппинг работает и действительно больше ничего не нужно, но, иногда начинается либо "сильно много крутим сервой на "пару градусов"", либо система начала расскачиваться "как качели" (жарко - включили охлаждение, проскочили комфорт, включили нагрев, опять проскочили, охлаждение, снова мимо, но уже больше. )
В вике немного "страшно", для гуманитария описанно что это такое. Можно еще глянуть объяснение "что это такое" более простым языком на примере бака с водой (бачка унитаза :)
Опять-таки, в учебных - можно самому этот ПИД попытатся реализовать, а можно попытатся поигратся готовой библиотекой для этого http://playground.arduino.cc/Code/PIDLibrary
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Папа .. Ты о каких Пидах сейчас разговаривал :-)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Папа .. Ты о каких Пидах сейчас разговаривал :-)
Не переживайте, не о политиках :)
Я про тех ПИД-ы, которые Пропорционально-Интегрально-Дифференциальный регулятор.
Тут самое главное не пугатся "страшных слов", суть не такая уж и сложная :)
А понадобится они могут, как только вы от "сервка крутится на столе", перейдете к реальным датчикам, батареям отопления и проч.
Когда выяснится, что "датчик шумит", серва "все время дрожит", дуина питается от аккумулятора (и значит ее желательно выключать вермя от времени для экономии или что бы не шумела ночью), комната имеет "температурную инерцию", и вообще у сервы не хватает сил повернуть вентиль, поэтому будет DC-движок который умеет только "полностью открыть" или полностью "закрыть".
Вот тогда и понадобится ПИД. Можно конечно обойтись и без него. Без чтения "страшных слов". Обыкновенным здравым смыслом и рассуждениями. Только скорее всего, вы сами того не зная, в итоге все равно какой-то подвид ПИД-да реализуете. Только чуть более "корявый" или просто "дольше к этому идти будете" :)
Вообщем IMHO это полезный "теоретический фон". Хотите - читайте, хотите - нет :)
Лично мне он был интересен (область применения ПИД-дов довольно обширна, я с ним столкнулся при "удержании лодки на курсе по GPS". Когда нужно было "подруливать аккуратно").
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А теперь по серве вопросик. Какой ток идет через серву и ее управление(10 пин)? Не лучше ли серву к Vin прикрутить а не к 5V?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Даже хуже. Сервы, как правило, 5 вольтовые. Но чтобы избежать глюков, вполне можно запитать серву от отдельного источника 5 Вольт.
А через управляющий пин ток идет мизерный, значительно меньше допустимой нагрузки на пин.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Спасибо, я это и имел в виду.
Ну и еще тогда пара вопросов. Сколько может прогнать через себя ардуина на 5V выходе без последствий?
Даже при внешнем БП, земля должна быть общая. Есть ли смысл эту землю через кондей какой прилепливать?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ограничение не более 40 мА на пин. в идеале если хочется ограничить ток через пин и не думать о нагрузке можно подавать сигнал через сопротивление 200-250 Ом.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ограничение не более 40 мА на пин. в идеале если хочется ограничить ток через пин и не думать о нагрузке можно подавать сигнал через сопротивление 200-250 Ом.
эт то понятно. Там есь пин 5в. Так понимаю после понижения от входного сигнала, но еще до проца. У меня на нем висит радио(nrf24l01 с усилком), жпс(neo 6m), экран(lcd shield). Не задофига?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Если пин не перегревается то не дофига, пока блок питания "тянет" проблемы нет. сам по себе пин и пару ампер выдержит без проблем, даже значительно больше. Все эти устройства кушают очень не много, можно и не суетиться.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
кто потскажет как потключить к ОРДУИНО вот такой моторчик
Motor Size: 2858 RPM/V: 2630 kv Max Load: 38A Max volts: 14.8v 2
4s Max Watts: 700w Resistance: 0.0222
Diameter: 28mm Front Mounting Hole Distance: 16mm or 19mm Front Mount Thread Size: 16mm M2.5 / 19mm M3.0 Shaft Diameter: 3.17mm Shaft Length: 14mm Can Size: 380 Plug type: 3mm Bullet-connector Weight: 180g
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
кто потскажет как потключить к ОРДУИНО вот такой моторчик
Вам бы, для начала, надо научиться писать слова без ошибок, и понять разницу между сервой и мотором. А дальше - будет уже проще: поищете в гугле по ключевым словам "ардуино управление мощной нагрузкой постоянного тока" - и найдете все, что требуется.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Увы без ошибок никак. язык не родно. я так думаю что по нидерлански вы писать вообще не сможите. поэтому не спешите судить :-) А за ответ огромное спосибо ;-)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Увы без ошибок никак. язык не родно. я так думаю что по нидерлански вы писать вообще не сможите. поэтому не спешите судить :-) А за ответ огромное спосибо ;-)
Можно показать ссылку на моторчик?
И для выше . Серва необязательна, я пользовал обычный коллекторный мотор с редуктором, используя для калибровки начала и стопа концевики, а для положения метод энкодера, отлавливая броски тока на коллекторе компаратором - три импульса = один оборот. При этом главная проблема - вовремя остановиться, тк ротор имеет приличную инерцию, потому упреждение на остановку надо считать специально.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
кто потскажет как потключить к ОРДУИНО вот такой моторчик
Motor Size: 2858 RPM/V: 2630 kv Max Load: 38A Max volts: 14.8v 2
4s Max Watts: 700w Resistance: 0.0222
Diameter: 28mm Front Mounting Hole Distance: 16mm or 19mm Front Mount Thread Size: 16mm M2.5 / 19mm M3.0 Shaft Diameter: 3.17mm Shaft Length: 14mm Can Size: 380 Plug type: 3mm Bullet-connector Weight: 180g
Судя по описанию это вот такой безколлекторный двигатель он "трехфазный" и для его работы обязательно нужен любой регулятор скорости, или ESC(Electronic Speed Controler) например любой их этих, как это работает хорошо описано тут.
При выборе контроллера, рекомендую выбрать как минимум с двойным запасом по току, те 80-100А. Заявлено что у этого мотора обмотка держит до 38А, но при ее сопротивлении всего 0.0222(плюс сопротивление ключей в регуляторе), все равно при максимуме питания 14.8В, ток КЗ через обмотку может оказаться 500-600А.
Ардуино подключается к ESC аналогично любому сервомеханизму, для управления самый простой вариант использовать библиотеку "Servo"(вместо угла поворота, будет задаваться скорость вращения). Некоторыми ESC возможно управлять без всяких библиотек, напрямую ШИМ выходом Ардуины.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
кто потскажет как потключить к ОРДУИНО вот такой моторчик
Motor Size: 2858 RPM/V: 2630 kv Max Load: 38A Max volts: 14.8v 2
4s Max Watts: 700w Resistance: 0.0222
Diameter: 28mm Front Mounting Hole Distance: 16mm or 19mm Front Mount Thread Size: 16mm M2.5 / 19mm M3.0 Shaft Diameter: 3.17mm Shaft Length: 14mm Can Size: 380 Plug type: 3mm Bullet-connector Weight: 180g
Судя по описанию это вот такой безколлекторный двигатель он "трехфазный" и для его работы обязательно нужен любой регулятор скорости, или ESC(Electronic Speed Controler) например любой их этих, как это работает хорошо описано тут.
При выборе контроллера, рекомендую выбрать как минимум с двойным запасом по току, те 80-100А. Заявлено что у этого мотора обмотка держит до 38А, но при ее сопротивлении всего 0.0222(плюс сопротивление ключей в регуляторе), все равно при максимуме питания 14.8В, ток КЗ через обмотку может оказаться 500-600А.
Ардуино подключается к ESC аналогично любому сервомеханизму, для управления самый простой вариант использовать библиотеку "Servo"(вместо угла поворота, будет задаваться скорость вращения). Некоторыми ESC возможно управлять без всяких библиотек, напрямую ШИМ выходом Ардуины.
огромное спасибо за столь объёмный комент. ( для меня как новичка в этом деле просто золото :-)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Кому надо, совместил скетчи цифрового датчика DS18B20 и этого скетча
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Делал для детской комнаты, поэтому диапазон измерений такой узкий
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
И вновь доброго времени суток.
Хочю обратиться к вам за помошью. Проблемма такая : Есть два безколекторных двигателя ну и платы регулировки скорости конечно. потключить к ардуине у меня получяеться. Но тут стал вопрос как их синхронезировать. Тоесть ( управление джойстиком на основе двух потенциометров, Скажем один потенциометр ось Y второй ось X при подаче рычага джойстика в перёд показатели меняються с потенциометра Y при этом мне нужно чтоб оба двигателя кторые потключены на разные пины синхронно раскручивались в (скажем перёд) когда Y находиться в своём верхнем положении и оба двигателя работают на 100% Уважу рычаг джойстика в лево при этом показания Х будут расти а Y остаёться в том же диопозоне. В этом случае один двигатель должен плавно затухать а второй оставаться работать в соотвецтвии с положением Y Дайте хоть какойто пример на основе которого я мог бы продолжить..
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Как вариант, взять готовый адаптер V-Tail )) для авиамоделей. тогда с джойстика(пульта ДУ) можно просто подавать Газ и направление. эта штука их прекрасно месит, резльтат именно тот что ты хочешь. Вариант реализации программной сейчас поищем, было.
А вот и пример, вот еще, и еще, и совсем короткий скетчик
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
упс, не внимательно прочитал - мотор то не кол-ный, пардон
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Однако если через регулятор скорости рулить, то совершенно ни какой разницы нет какой там будет двигатель. разница только конструкции самого регулятора.
В твоем примере судя по всему управление коллекторником производится вообще без регулятора, два пина отвечают за направление - переключение моста из ключей, и два за скорость вращения-шим.
Для модельных регулей, что коллекторных, что безколлекторных нужно только один выход - ШИМ ))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
может примерчик поткините ?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
может примерчик поткините ?
Серво 1(Пин9) это будет мотор 1
Серво 2 (Пин 10) будет мотор 2
Пин 3 Это вход от потенциометра "ГАЗ"
Пин 4 будет Вход от потенциометра руля.
Используем библиотеку Servo сигнал управления сервами или регулями двигателей совершенно одинаковый стандарт сигнал ШИМ (PWM)
Для управления тебе нужно будет определиться с нейтральной позицией руля. - прямо это середина всего диаппазона. просто для вычисления желаемого результата, можно для начала сделать совсем по простому алгоритму, считал оба потенциометра Газ и Руль и дальше отправляешь моторам
для первого М1=Газ+К*Руль,
для второго М2=Газ-К*Руль
а коэффициэнтом пересчета К регулируешь чувствительность всего микса к шевелению рулем.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
может примерчик поткините ?
Серво 1(Пин9) это будет мотор 1
Серво 2 (Пин 10) будет мотор 2
Пин 3 Это вход от потенциометра "ГАЗ"
Пин 4 будет Вход от потенциометра руля.
Используем библиотеку Servo сигнал управления сервами или регулями двигателей совершенно одинаковый стандарт сигнал ШИМ (PWM)
Для управления тебе нужно будет определиться с нейтральной позицией руля. - прямо это середина всего диаппазона. просто для вычисления желаемого результата, можно для начала сделать совсем по простому алгоритму, считал оба потенциометра Газ и Руль и дальше отправляешь моторам
для первого М1=Газ+К*Руль,
для второго М2=Газ-К*Руль
а коэффициэнтом пересчета К регулируешь чувствительность всего микса к шевелению рулем.
Вот спасибо! Это уже похоже! На выходных попробую и отпишусь.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
В общем никак. сам никак нужна всётаки помощь.попробую описать что к чему.
к АРДУНИНЕ МЕГА на аналоговые пины 0 и 1 потключены потенциометры джойстика.
к pwm пинам 9 и 10 потключены моторы.(точнее говоря их регуляторы скорости.) Заострю внимание что моторы реверсные(тоесть:когда потенциометры находиться в диопозоне от 124 до132 ( а диопазон от 0-255) тоесть по центру то оба мотора молчат.)
И так имеем мы две оси Y (движение джойстика в перёдм шим ростёт от 128 -255) и (назад, шим падает от 128-0)
X (движение джойстика в лево шим падает от 128-0 и вправо шим ростёт от 128-255).
Идея такова: хочиться миксовать сигналы шим, тоесть : при подаче джойстика в перёд тоесть по оси Y ( оба pwm пина выдают рост шим импульса от128-255 ну и назад конечно от 128-0)
при подаче джойстика в лево тоесть по оси Х(при этом ось Y находиться в среднем положении около 128) левый мотор (pwm пин 9) шим импульс падаетот 128-0 а правый мотоор (pwm пин 10) шим импульс ростёт от 128-255.
при подаче джойстика в право всё наоборот.
Теперь самое интерестное :-) Говорю сразу в этом деле я делетант поэтому сильно не смейтесь :-)
Вот что у меня покачто получилось:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ребята, доброго времени суток.
спешу всем Вам выразить огромную благодарность за поддержку начинающих " програмистов". Без Вас нам было бы крайне сложно прогрызать тугой гранит данной науки)). да да. данное заявление выводит меня на чистую воду- я в данной теме полный профан(. Но с самого детства стремился и тихой сапой шел к этому делу, вот по случаю и приобрел " дуинку уно.
Теперь перейду к сути вопроса; у меня есть старенькая ваз 2109 (2001 г.в.), так вот: как многим известно, данный вид россавтопрома крайне плохо заводится без подсоса в холодное время года. цель- вместо тросика подсоса- серва; на корбюраторе.
коррекция оборотов по заданному алгоритму посредством термодатчика(штатный с подтяжкой через 10 к резистор к плюсу авто) и датчика холла(на маховике).
исходя из выше сказанного делаем вывод: обороты регулируются в определенном инетрвале гистерезис около 150об\м( дабы серва не находилась в постоянном напряжении и тем самым демпфировать разнос всей системы)
имеется прямая и линейная зависимость проворота сервы от температуры и оборотов,.
кратко опишу принцип работы . при повороте ключа зажигания подается через стабилизатор притание 5 вольт на всю схему, дуинка опрашивает датчик темперетуры, если температура больше или равна 70 град С , то никаких действий не предпринимает, если меньше , то прикрывает заслонку линейно чем выше темп тем меньше она закрывается.
после того как двигатель заведен датчик холла отслеживает обороты и приводит в движение ту же самую серву для коррекции оборотов на уровне 2500об\м на 2 секунды, после чего приоткрывая заслонку устанавливает обороты на уровне 1500об\м.
при прогреве двигателя до температуры 60С система приоткрывает заслонку еще больше приводя обороты в 1000об\м .
при температуре 70С заслонка полностью открывается и дуинка переходит в дежурный режим , опять таки дабы чрезмерно не нагружать серву.
Вот в принципе и вся тема. так вот ребята, мре нужна ваша помощь в совмещении двух разносигнальных датчиков( цифра и аналог) холл - цифра. и самое главное- всего скорее в данной теме без тех самы страшных ПИДов не обойтись, поскольку нужно по максимуму исключить рыскание сервы и всей системы в целом. заранее всем спасибо, жду ваших отзывав здесь и в личке [email protected] буду рад любой помощи, и ценному совету и готовому скетчу поскольку обучение мне дается крайне туго, даже джереми блюм утер пот со своего лба пытаясь меня научить крутить шаговый)))