Показано с 1 по 5 из 5
  1. #1
    Пользователь Аватар для Skanch
    Регистрация
    02.01.2010
    Возраст
    58
    Сообщений
    37
    Вес репутации
    184

    По умолчанию Управление моторизированным монитором

    Управление монитором с использованием шагового двигателя и стандартного сервопривода.Драйвер шагового двигателя. http://compcar.ru/forum/attachment.p...7&d=1284476967
    Планируется использование в Mitsubishi Lancer X с сохранением родной панели управления и перепрограмированием кнопок на ней.
    Вот два скетча.

    С использованием кнопки и управления по АСС.
    При включении АСС и нажатии кнопки монитор раскладывается. При повторном нажатии кнопки монитор складывается. А также и при отключении АСС происходит закрытие монитора.
    Схема компановки.
    Нажмите на изображение для увеличения. 

Название:	1.png 
Просмотров:	585 
Размер:	112.7 Кб 
ID:	10116


    PHP код:
    #include <AFMotor.h>
    #include <EEPROM.h>
    #include <Servo.h>
    int ACC 11;// ААС подключен к 11 пину
    AF_Stepper motor(2002);//Создаем объект для шагового двигателя на 2 канале
                             //Motor Shield v2 - силовой модуль управления двигателями
    Servo myservo;// Создаём объект для контроля сервы 
    int pos 0// Переменная для хранения позиции сервы
    int inPin 2// контакт, к которому подключена кнопка
    int outPin 3// контакт, к которому подключен управляющий блок реле

    int state LOW// the current state of the output pin
    int reading// the current reading from the input pin
    int previous HIGH// the previous reading from the input pin
    long time 0// the last time the output pin was toggled
    long debounce 200// the debounce time, increase if the output flickers


    void setup()
    {
    pinMode(inPinINPUT);
    pinMode(outPinOUTPUT);

    pinMode(ACCINPUT);
    motor.setSpeed(100); // 100 оборотов в минуту
    myservo.attach(10);  // Серва подключена к 10-му пину
    myservo.writeMicroseconds(500); // Устанавливаем серву в крайнее левое положение
    }

      
    void loop()
    {
    int value EEPROM.read(0); // Прочитать положение монитора до задержки 
    delay(2000);// Задержка 2 секунды                
    if ((value==0) && (EEPROM.read(0)==0) && (digitalRead(ACC)==HIGH)) //Если АСС включен и положение
      
    {                                                                // "монитор закрыт", то открыть монитор
    motor.step(860FORWARDSINGLE); // Движение шагового двигателя вперед
    for(pos 0pos 180pos += 1// Поворот сервы от 0 до 180 градусов
      
    {                               // с шагом в 1 градус
    myservo.write(pos);              
    delay(5);// Ждём  пока серва займёт новое положение
      
    }
    EEPROM.write(0255);// Сохраняем положение "монитор открыт"
      
    }
    if ((
    value==255) && (EEPROM.read(0)==255) && (digitalRead(ACC)==LOW)) // Если ACC выключен и положение "монитор 
      
    {                                                                   // открыт", то закрыть монитор  
    for(pos 180pos>=1pos-=1)// Поворот сервы от 180 до 0 градусов
      
    {
    myservo.write(pos);
    delay(5);// Ждём  пока серва займёт новое положение
      
    }
    motor.step(860BACKWARDSINGLE); // Движение шагового двигателя назад
    motor.release(); // Отключение шагового двигателя 
    EEPROM.write(00);// Сохраняем положение "монитор закрыт"
      
    }
    reading digitalRead(inPin);
    if (
    reading == LOW && previous == HIGH && millis() - time debounce
    {
    if (
    state == LOW)
    state HIGH;
    else
    state LOW
    time millis();
    }
    digitalWrite(outPinstate);
    previous reading;


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

Название:	2.png 
Просмотров:	315 
Размер:	272.2 Кб 
ID:	10118

    PHP код:
    #include <AFMotor.h>
    #include <EEPROM.h>
    #include <Servo.h>
    int ACC 11;// ААС подключен к 11 пину
    AF_Stepper motor(2002);//Создаем объект для шагового двигателя на 2 канале
                             //Motor Shield v2 - силовой модуль управления двигателями
    Servo myservo;// Создаём объект для контроля сервы 
    int pos 0// Переменная для хранения позиции сервы 

    void setup()
    {
    pinMode(ACCINPUT);
    motor.setSpeed(100); // 100 оборотов в минуту
    myservo.attach(10);  // Серва подключена к 10-му пину
    myservo.writeMicroseconds(500); // Устанавливаем серву в крайнее левое положение
    }

    void loop()
    {
    int value EEPROM.read(0); // Прочитать положение монитора до задержки 
    delay(2000);// Задержка 2 секунды                
    if ((value==0) && (EEPROM.read(0)==0) && (digitalRead(ACC)==HIGH)) //Если АСС включен и положение
      
    {                                                                // "монитор закрыт", то открыть монитор
    motor.step(860FORWARDSINGLE); // Движение шагового двигателя вперед
    for(pos 0pos 180pos += 1// Поворот сервы от 0 до 180 градусов
      
    {                               // с шагом в 1 градус
    myservo.write(pos);              
    delay(5);// Ждём  пока серва займёт новое положение
      
    }
    EEPROM.write(0255);// Сохраняем положение "монитор открыт"
      
    }
    if ((
    value==255) && (EEPROM.read(0)==255) && (digitalRead(ACC)==LOW)) // Если ACC выключен и положение "монитор 
      
    {                                                                   // открыт", то закрыть монитор  
         
    for(pos 180pos>=1pos-=1)// Поворот сервы от 180 до 0 градусов
      
    {
    myservo.write(pos);
    delay(5);// Ждём  пока серва займёт новое положение
      
    }
    motor.step(860BACKWARDSINGLE); // Движение шагового двигателя назад
    motor.release(); // Отключение шагового двигателя 
    EEPROM.write(00);// Сохраняем положение "монитор закрыт"
      
    }


    Параметры количества шагов ШД и угол поворота сервы определяются эксперементально по мере интеграции девайса в машину. Часть кода управления по АСС взята из скетча http://www.compcar.ru/forum/showthread.php?t=4984 Chipa, за что ему спасибо.

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Управление моторизированным монитором

    Уже интегрировал в автомобиль?

  3. #3
    Пользователь Аватар для Skanch
    Регистрация
    02.01.2010
    Возраст
    58
    Сообщений
    37
    Вес репутации
    184

    По умолчанию Re: Управление моторизированным монитором

    Все еще в процессе изготовления.Была сложность в системе перемещения коретки с монитором.Да и сам монитор на подходе. Придет - буду собирать в кучу.

  4. #4
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Управление моторизированным монитором

    Как установишь сними видео, интересно посмотреть что получилось.
    Последний раз редактировалось Chip; 24.10.2010 в 23:57.

  5. #5
    Пользователь Аватар для Skanch
    Регистрация
    02.01.2010
    Возраст
    58
    Сообщений
    37
    Вес репутации
    184

    По умолчанию Re: Управление моторизированным монитором

    Установлю-обязательно выложу проект.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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