Управление приводом

egor-mav

Доброго времени суток. Имеется привод (см. вложение), необходима схема управления приводом с трёх кнопок, желательно на avr. Принцип работы следующий:

1 кнопка - ведёт привод в крайнее верхнее положение (открыть);

2 кнопка - ведёт привод в крайнее нижнее положение (закрыть);

3 кнопка - в открытом положении плавно закрывает привод, пока нажата кнопка;

Подскажите пожалуйста в какую сторону смотреть, может есть уже готовые похожие решения.

Заранее спасибо!

Dinotron

На ардуино можно легко сделать. Нужен только мост для моторчика. Его на шим повесить, а переменный резистор на один из аналоговых портов. Скетч на пол-странички получится.

leons

а может с сервы сделать проще

Dinotron

Конечно проще. Ну тут-то недосерва. Без электроники. То и посоветовал. А так ещё и динамику этого редуктора лови и калмана вкрячивай. Весело, но не продуктивно. Проще а может с сервы сделать проще

leons

Могу посоветовать интересный драйвер l298n . на ютубе есть много обзоров на него

Dinotron
leons:

Могу посоветовать интересный драйвер l298n

Ну правильно. Хоть этот мостик на шим ардуинки и чуять резистором. Мы хоть помогли ТСу?

И кстати, в сотый раз. bobblick.com/techref/projects/…/hbridge.html

4 транзистора 5 резисторов. От китайской машинки подобное оторвал. А то целую микросхему!

egor-mav

Все спасибо за помощь, пока сижу и разбираюсь.
Изначально конечно хотел вытряхнуть потроха из сервомашинки, и подключить все это дело через сервотестер… Но мне кажется нелогично несколько раз кодировать и разкодировать сигнал…
Сейчас смотрю в сторону проекта OpenServo но пока не разобрался в нем…

Dinotron

Ещё в тему. Попался мне под руку редуктор от китайской игрушки. Согласитесь, похож на серву. Ну и стал я в эту сторону экспериментировать. В том числе подключением к оному потрохов из сервомашинки. Что сказать - работает, только перед тем как займёт нужную позицию раз пять туда-сюда промотыляется. Инерционность дикая. Учитывайте это в своём проекте.

egor-mav

Решил кстати узнать, сколько будет стоить разработка данного устройства, создал тему на форуме радиокот, все описал… и маленько обомлел!!!
За разработку ПО просят 2000р.
За разработку схемы 5000р.!!!

Это реальные цены? или я чего-то не понимаю…

Dinotron

Ну если фабричная реализация, со всеми отлаживаниями прошивок, многослойными заказными платами, то возможно. А так я могу вам прям тут скетч для ардуины навалять из пары строк. Но за результат не ручаюсь. 😃

egor-mav

В том то и дело что не фабричная сборка. Сборка на макетке, и без отладки…

leons

тоже набросал ,для так поигратса ,написано на базе VarSpeedServo эта библиотека должна быть в IDE

Цибульский_Андрей

Решение очень простое. Нужно взять электронику от мощной рулевой машинки и встроить в редуктор. Если диапазон работы вашего редуктора с резистором обратной связи будет не в “рамках”, то необходимо будет добавить резисторы (методом подбора) с двух сторон вашего встроенного резистора.

leons
egor-mav:

Решил кстати узнать, сколько будет стоить разработка данного устройства, создал тему на форуме радиокот

интересно что там написали, иногда страшно что-то спрашивать у этих сумошедших программистов

7 days later
egor-mav

Мда… Думал микроконтроллеры проще освоить… Скачал Atmel Studio 7.0, смотрел уроки… Но пока только примерно понял как ШИМ генерировать на attiny2313…

#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
DDRB = 0xff; // все выводы порта B сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы

PORTD = 0xff; // установить “1” на всех выводах порта D,

// включаем подтягивающие резисторы

while (1)
{
if (!(PIND & (1<<PIND1))) // проверить “0” на линии 1 порта D
{
TCCR1A = (1<<COM1B1) | (1<<WGM10);
TCCR1B = (1<<WGM12) | (1<<CS10);
OCR1B = 240;
DDRB |= (1<<PB4);
}
else
{
TCCR1A = (1<<COM1B1) | (1<<WGM10);
TCCR1B = (1<<WGM12) | (1<<CS10);
OCR1B = 10;
DDRB |= (1<<PB4);
}
}
}

Но вот с подключением резистора и написание кода под него вообще не поддается.
Кто готов помочь?

Dinotron
egor-mav:

Но вот с подключением резистора и написание кода под него вообще не поддается. Кто готов помочь?

Мда. Так правильней. extremeelectronics.co.in/…/servo-motor-control-by-… Ну там с азов надо начинать, да и у 2313 нету ADC. Можно, но надо заморочиться. Может всё-таки так проще

doc.arduino.ua/ru/prog/AnalogWrite Под ваш привод точно пойдёт. Пару строк дописать 😃
P. S. Из нужного вам вооружения на борту 2313 только компаратор. Может только сравнивать 2 напряжения и говорить выше или ниже. Либо ваяйте каким-нибудь ШИМом на резистор пилу и теми же таймерами мерить время, или транзистор с конденсатором и… тоже.

V_Alex

Любая задача должна начинаться с техзадания. Оно как-бы было озвучено в первом пункте:

egor-mav:

Имеется привод (см. вложение), необходима схема управления приводом с трёх кнопок, желательно на avr. Принцип работы следующий…

Там было три кнопки, сейчас в схеме откуда-то появился переменный резистор. Еще в ТЗ не отображено, как должен вести себя мотор-редуктор при не нажатых кнопках - просто обесточиваться или удерживать текущее положение. Если первый вариант, то никакого контроллера там не нужно, можно оттолкнуться от этой схемы: rcopen.com/forum/f68/topic138133/36242 В вашем случае нарисованный на схеме регулятор не нужен, все подключается прямо к источнику питания. Концевики шунтируются управляющими кнопками крест-накрест, третья кнопка для медленного хода должна подключаться параллельно одной их первых двух, но последовательно со своим балластным резистором.