Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > ЧПУ, 3D принтеры, CNC

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.03.2014, 10:53   #1
Murkur
Member
 
Регистрация: 13.12.2013
Сообщений: 50
Вес репутации: 0
Murkur is an unknown quantity at this point
По умолчанию Станок для сетки Рабица

Всем привет. Пробую сделать автоматическое управление станком для сетки Рабица и может кто подскажет по некоторым вопросам...
С дисплеем, меню и управлением трёх-фазными двигателями вроде бы разобрался, но есть вопросы по написанию скетча.
Логика такая:
1. нажимаем кнопку Старт - запускается первый двигатель, отматывает нужное количество витков, которое считает на валу датчик Холла и за 2 витка до конца посылаем сигнал для остановки, отключаем первый двигатель полностью;
2. запускаем второй двигатель, который через редуктор отрезает проволоку, передвигает сетку и перемещает стол с намоточным шнеком на один виток назад и через концевик передаёт сигнал об успешном перемещении;
3. повторяем первый пункт, кроме нажатия кнопки Старт (так как всё происходит по кругу) плюс намотка идёт на один виток больше;
4. и опять идёт 2-й пункт, но стол перемещается ближе к сетке - отключается один концевик и включается другой.

Скетч я кое-какой написал, но пока не могу понять, как заставить программу ожидать сигнала от концевика, а не продолжать выполнение дальше.
Принцип работы можно посмотреть на этом видео:
www.youtube.com/watch?v=ouvaN89FUIs
(что-то не понял, как видео тут вставить через теги)

Код приблизительно такой:
PHP код:
if (digitalRead(LedStart) == HIGH && p2 != 0// Если нажата кнопка СТАРТ и кол-во витков не равно нулю
{
  for (
int i=0i<p2i++) //тогда запускаем цикл
     
{
       if (
digitalRead(RowsCounterInput) == LOW// счётчик импульсов от датчика Холла
       
{
         
Round_counter++;
         
delay (500);
       }
       else { 
digitalWriteledPinRedLOW ); }
     }
     
     if (
Round_counter p2-=2)        // Если кол-во витков равно общее к-во минус 2 витка
     

       
digitalWriteChastStopHIGH );  // Начало торможения двигателя №1 за 2 витка до конца
       
delay (2000);
       
digitalWriteStarter1LOW );     // Выключаем пускатель №1
     
}
     else if (
Round_counter p2)        // Если счётчик витков равен кол-ву заданных витков
     
{
       
// Остановка двигателя №1
     
}
     
delay (ReductorDelay*1000); // Пауза перед запуском редуктора

    
if (digitalReadReduktorInput == HIGH )) // Если концевик включения редуктора включён
     
{
       
lcd.clear (); lcd.setCursor0); lcd.print( "Reduktor OK" ); //выводим на дисплей

       
delay (1000);
     }
     else {
       
lcd.clear (); lcd.setCursor0); lcd.print( "Reduktor Error" ); // или ошибка редуктора
       
delay (1000);
                             
//тогда полная остановка станка
     
}                           
     
     if (
TableInput == HIGH// Получаем сигнал о передвижении стола назад
     
{
       
p2+=1;  // и увеличиваем кол-во витков для второй струны +1 виток
       
lcd.clear (); lcd.setCursor0); lcd.print( "Perevod Stola" );
       
delay (1000);
     }   
     else 
     {
       
p2=p2;
       
digitalWrite(LedStartLOW);
       
lcd.clear (); lcd.setCursor0); lcd.print( "Table Error" );
       
delay (1000);
     }

Так вот, загвоздка в том, как мне ожидать команды от концевика if (digitalRead( ReduktorInput == HIGH )) ?

Буду рад помощи. Спасибо.

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

Последний раз редактировалось Murkur; 25.03.2014 в 10:56.
Murkur вне форума   Ответить с цитированием
 


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:59. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика