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

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

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


PHP код:
#include <AFMotor.h>
#include <EEPROM.h>
#include <Servo.h>
int ACC = 11;// ААС подключен к 11 пину
AF_Stepper motor(200, 2);//Создаем объект для шагового двигателя на 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(inPin, INPUT);
pinMode(outPin, OUTPUT);

pinMode(ACC, INPUT);
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(860, FORWARD, SINGLE); // Движение шагового двигателя вперед
for(pos = 0; pos < 180; pos += 1) // Поворот сервы от 0 до 180 градусов
  
{                               // с шагом в 1 градус
myservo.write(pos);              
delay(5);// Ждём  пока серва займёт новое положение
  
}
EEPROM.write(0, 255);// Сохраняем положение "монитор открыт"
  
}
if ((
value==255) && (EEPROM.read(0)==255) && (digitalRead(ACC)==LOW)) // Если ACC выключен и положение "монитор 
  
{                                                                   // открыт", то закрыть монитор  
for(pos = 180; pos>=1; pos-=1)// Поворот сервы от 180 до 0 градусов
  
{
myservo.write(pos);
delay(5);// Ждём  пока серва займёт новое положение
  
}
motor.step(860, BACKWARD, SINGLE); // Движение шагового двигателя назад
motor.release(); // Отключение шагового двигателя 
EEPROM.write(0, 0);// Сохраняем положение "монитор закрыт"
  
}
reading = digitalRead(inPin);
if (
reading == LOW && previous == HIGH && millis() - time > debounce) 
{
if (
state == LOW)
state = HIGH;
else
state = LOW; 
time = millis();
}
digitalWrite(outPin, state);
previous = reading;
} 

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

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

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

void setup()
{
pinMode(ACC, INPUT);
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(860, FORWARD, SINGLE); // Движение шагового двигателя вперед
for(pos = 0; pos < 180; pos += 1) // Поворот сервы от 0 до 180 градусов
  
{                               // с шагом в 1 градус
myservo.write(pos);              
delay(5);// Ждём  пока серва займёт новое положение
  
}
EEPROM.write(0, 255);// Сохраняем положение "монитор открыт"
  
}
if ((
value==255) && (EEPROM.read(0)==255) && (digitalRead(ACC)==LOW)) // Если ACC выключен и положение "монитор 
  
{                                                                   // открыт", то закрыть монитор  
     
for(pos = 180; pos>=1; pos-=1)// Поворот сервы от 180 до 0 градусов
  
{
myservo.write(pos);
delay(5);// Ждём  пока серва займёт новое положение
  
}
motor.step(860, BACKWARD, SINGLE); // Движение шагового двигателя назад
motor.release(); // Отключение шагового двигателя 
EEPROM.write(0, 0);// Сохраняем положение "монитор закрыт"
  
}
} 

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