Сделать схему и написать программу управления

morrom
Offline
Зарегистрирован: 01.08.2019

Есть модель канатной дороги.

Необходимо сделать так, чтобы тележка канатной дороги перемещалась из одной точки в другую, а потом возвращалась назад. И так в бесконечном цикле. В крайних точках тележка должна останавливать и время остановки можно менять. Остановка должна происходить при касании тележки микропереключателя (их должно быть по одному в крайних положениях).

Из компонентов есть маленький мотор-редуктор (проверяли, его мощности хватает для работы).

 

 

 

 

 

 

 

 

 

И плата управления этим мотором.

 

Фото взял в интернете, но они совпадают с тем, что есть у меня.

Управление при помощи Ардуино нано.

Предложения на почту morrom2007@yandex.ru

 

svm
Offline
Зарегистрирован: 06.11.2016

Немного непонятно. Вам нужно нарисовать схему и написать прошивку, или предоставить прошитую Ардуино нано? И какие концевики используются, обычные механические? Каким образом хотите менять время стоянки? Нужна-ли индикация?

morrom
Offline
Зарегистрирован: 01.08.2019

Нужно нарисовать схему и написать прошивку.

Ардуино есть. Концевики механические. Компоненты маленькие нужны, ограничен в месте размещения. Думал выбрать самые маленькие концевики с лапкой.

Время стоянки хотелось бы менять в секундах прямо в скетче, этот параметр мы настрим один раз и он будет постоянным, но нужно провести эксперимент по времени уже на готовой собраной схеме. Никакие экраны и кнопки настройки не нужны. Всё должно быть самое простое.

vvadim
Offline
Зарегистрирован: 23.05.2012
Onkel
Offline
Зарегистрирован: 22.02.2016

morrom пишет:

Нужно нарисовать схему и написать прошивку.

Ардуино есть. Конце/// нужны. Всё должно быть самое простое.


Пишите ydom@mail.ru  - сделаем. Напишу код, проверю на рабочем макете, так что вы получите на 100% проверенный рабочий код. По времени стоянки -  можно временно подключить к ардуине потенциометр, выставите какое нужно время потом внесете его в программу. Пишите ydom@mail.ru Сделаю за два часа.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015
svm
Offline
Зарегистрирован: 06.11.2016

morrom пишет:

Нужно нарисовать схему и написать прошивку.

Ардуино есть. Концевики механические. Компоненты маленькие нужны, ограничен в месте размещения. Думал выбрать самые маленькие концевики с лапкой.

Время стоянки хотелось бы менять в секундах прямо в скетче, этот параметр мы настрим один раз и он будет постоянным, но нужно провести эксперимент по времени уже на готовой собраной схеме. Никакие экраны и кнопки настройки не нужны. Всё должно быть самое простое.

Задача элементарная, если по колхозному (с делеями ), то рабочий скетч с комментариями - час работы. Я Вам на почту координаты сбросил Sergeev......... 

Еще раз пробежался по теме, и обратил внимание на год в почте ТС. Как можно с детей брать деньги? И по причине праздника и того что на улице +15 и в фонтаны лезть не фонтан, да и стар стал уже - набросал скетчик. Правда писал в лоб и под шафе, но работать должен.

С праздником всех!

// Концевики подключены между соответствующим пином и GND.
// Подтяжка пинов к питанию через резисторы 2-10 КОм (если длина  проводов < 1 М можно не ставить)
// Активное состояние (концевик сработал) - состояие LOW
byte VERH_STOP  =9;    //Верхний концевик подключен к пину 9
byte NIZ_STOP   =10;   //Нижний концевик подключен к пину 10
// Питание на драйвер и ардуино (Vin) 7-9 В. Если питание 5В, то на ардуино подавать на +5В
// Подключение драйвера MX1508.
//Двигатель подключен к Motor A 
byte MOT_VERH   =11;   //Подключается к IN1 драйвера MX1508
byte MOT_NIZ    =12;   //Подключается к IN2 драйвера MX1508
int T_stop=3000;       //Время стоянки 3000 мс (3 секунды)

void setup()  
{ 
Serial.begin(9600);  

pinMode(VERH_STOP,  INPUT);      //Пины концевиков устанавливаем на вход
pinMode(NIZ_STOP,   INPUT);
digitalWrite(VERH_STOP,HIGH);    //Включаем внутреннюю подтяжку пинов концевиков
digitalWrite(NIZ_STOP, HIGH);
pinMode(MOT_VERH,   OUTPUT);     //Пины управления драйвером устанавливаем на выход
pinMode(MOT_NIZ,    OUTPUT);

//На всякий случай останавливаем мотор
digitalWrite(MOT_VERH,LOW);
digitalWrite(MOT_NIZ, LOW);
// Прoверяем стартовую позицию
if (digitalRead(VERH_STOP)==HIGH && digitalRead(NIZ_STOP)==HIGH){// Если кабинка в промежутке - едем вверх
  digitalWrite(MOT_NIZ, LOW);
  digitalWrite(MOT_VERH,HIGH);
  Serial.println("Start motion");
}
}


void loop() 
{
// Проверяем состояние концевиков
if (digitalRead(VERH_STOP)==LOW && digitalRead(NIZ_STOP)==HIGH){// Если сработал верхний концевик
   digitalWrite(MOT_VERH,LOW);   // Стоп машина, ждем пассажиров
   digitalWrite(MOT_NIZ, LOW);
   Serial.println(" Pauza & Edem Vniz");
   delay(T_stop);
   digitalWrite(MOT_NIZ, HIGH);
   digitalWrite(MOT_VERH,LOW);
   delay(100);                   // Время на съезд с концевика (должно хватить)
}
if (digitalRead(NIZ_STOP)==LOW && digitalRead(VERH_STOP)==HIGH){// Если сработал нижний концевик
   digitalWrite(MOT_VERH,LOW);   // Стоп машина, ждем пассажиров
   digitalWrite(MOT_NIZ, LOW);
   Serial.println(" Pauza & Edem Vverh");
   delay(T_stop);
   digitalWrite(MOT_NIZ, LOW);
   digitalWrite(MOT_VERH,HIGH);
   delay(100);                   // Время на съезд с концевика (должно хватить)
}
if (digitalRead(VERH_STOP)==LOW && digitalRead(NIZ_STOP)==LOW){// Если заклинил концевик или КЗ
   digitalWrite(MOT_VERH,LOW);   // Стоп машина, проверить концевики
   digitalWrite(MOT_NIZ, LOW);
    Serial.println("Error");
}
}






 

rst
Offline
Зарегистрирован: 25.06.2018

svm пишет:
Еще раз пробежался по теме, и обратил внимание на год в почте ТС. Как можно с детей брать деньги?

Судя по грамотности текста сообщений ТС - он не малолетка. Для малолетки слишком грамотно пишет. :)

svm
Offline
Зарегистрирован: 06.11.2016

rst пишет:

svm пишет:
Еще раз пробежался по теме, и обратил внимание на год в почте ТС. Как можно с детей брать деньги?

Судя по грамотности текста сообщений ТС - он не малолетка. Для малолетки слишком грамотно пишет. :)

Может ботаник-отличник? 

dkg11
Offline
Зарегистрирован: 28.03.2016

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