PCCar.ru - Ваш автомобильный компьютер


Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка устройств

Ответ
 
Опции темы
Старый 02.07.2016, 20:08   #1
T3CHNIK
Новый Пользователь
 
Регистрация: 12.12.2011
Возраст: 27
Город: Сороки
Регион: другой - для добавления сообщить ab
Машина: Mercedes w210 e230 95"
Сообщений: 25
T3CHNIK is on a distinguished road
По умолчанию стеклоподемники на Arduino

Всем привет!

Мои попытки изучить программирование закончились есче в школе на уровне HELLO WORLD в паскале,

Изучил основы ардуинки, по большому счету скачивал скетчи разных проектов и читал их а потом гуглил не понятные для меня моменты…

Ну вот, кое чему я научился...
В моей машине автоматического режима открытия/закрытия окон не имеется, хотя имеется частично только на передних окон и только вниз )) меня это не устраивает...
Конечно можно поставить блок комфорта от машины которая имеет весь функционал и не парится но это легкий путь...
Я решил частично а то и полностью функционал блока комфорта перекинуть на Arduino MEGA )))))

Маленкий ролик работы программы
https://www.youtube.com/watch?v=xVHRYyjC60w


В программе добавлен весь функционал для 4ех окон но код написан пока что только для водительской...
Остановка авторежима происходит пока что по таймеру а в будущем будет по нагрузке...

Код HTML:
//Используются 2х ступенчятые кнопки (при первой ступени нажатия соеденяется контакт 1 с 2 а при второй ступени контакты 1и3 с 2
//Первая ступень поднимает окно столько сколько нажата кнопка а вторая поднимает автоматически. Все как у всех )))
//Функция "Запретить ручной режим" используется против ложного срабатывания ибо кнопка из второй ступени возвращается сначало в первую а потом в 0
//таким образом каждый раз при активации авто режима а потом при отпускании кнопки сработал бы ручной режим (то есть авторежима небыло бы совсем)

#define motFLup 51                      //Пин на закрывание переднего левого окна
#define motFLdn 53                      //Пин на открывание переднего левого окна
#define motFRup 47                      //Пин на закрывание переднего правого окна
#define motFRdn 49                      //Пин на открывание переднего правого окна
#define motRLup 43                      //Пин на закрывание заднего левого окна
#define motRLdn 45                      //Пин на открывание заднего левого окна
#define motRRup 39                      //Пин на закрывание заднего правого окна
#define motRRdn 41                      //Пин на открывание заднего правого окна

int flk_pin=A0;                         //Пин для резистивных кнопок переднего левого окна
int flk;                                //Переменная для резистивных кнопок переднего левого окна
long MillisFL = 0;                      //Таймер для авто режима резистивных кнопок переднего левого окна
unsigned long flagFLm = 0;              //Антидребезг для ручного режима резистивных кнопок переднего левого окна
unsigned long flagFLa = 0;              //Антидребезг для авто режима резистивных кнопок переднего левого окна


int frk_pin=A1;                         //Пин для резистивных кнопок переднего правого окна
int frk;                                //Переменная для резистивных кнопок переднего правого окна
unsigned long flagFRm = 0;              //Антидребезг для ручного режима резистивных кнопок переднего правого окна
unsigned long flagFRa = 0;              //Антидребезг для авто режима резистивных кнопок переднего правого окна
long previousMillisFR = 0;              //Таймер для авто режима резистивных кнопок переднего правого окна
unsigned long currentMillisFR = 0;      //Таймер для авто режима резистивных кнопок переднего правого окна

int rlk_pin=A2;                         //Пин для резистивных кнопок заднего левого окна
int rlk;                                //Переменная для резистивных кнопок заднего левого окна
unsigned long flagRLm = 0;              //Антидребезг для ручного режима резистивных кнопок заднего левого окна
unsigned long flagRLa = 0;              //Антидребезг для авто режима резистивных кнопок заднего левого окна
long previousMillisRL = 0;              //Таймер для авто режима резистивных кнопок заднего левого окна
unsigned long currentMillisRL = 0;      //Таймер для авто режима резистивных кнопок заднего левого окна

int rrk_pin=A3;                         //Пин для резистивных кнопок заднего правого окна
int rrk;                                //Переменная для резистивных кнопок заднего правого окна
unsigned long flagRRm = 0;              //Антидребезг для ручного режима резистивных кнопок заднего правого окна
unsigned long flagRRa = 0;              //Антидребезг для авто режима резистивных кнопок заднего правого окна
long previousMillisRR = 0;              //Таймер для авто режима резистивных кнопок заднего правого окна
unsigned long currentMillisRR = 0;      //Таймер для авто режима резистивных кнопок заднего правого окна


void setup() 
{
 pinMode(motFLup, OUTPUT);              //Назначить пин на закрывание переднего левого окна как выход
 pinMode(motFLdn, OUTPUT);              //Назначить пин на открывание переднего левого окна как выход
 pinMode(flk_pin, INPUT);               //Назначить пин для резистивных кнопок переднего левого окна как вход
 digitalWrite(flk_pin, HIGH);           //Включить подтягивающий резистор для резистивных кнопок переднего левого окна 

 pinMode(motFRup, OUTPUT);              //Назначить пин на закрывание переднего правого окна как выход
 pinMode(motFRdn, OUTPUT);              //Назначить пин на открывание переднего правого окна как выход
 pinMode(frk_pin, INPUT);               //Назначить пин для резистивных кнопок переднего правого окна как вход
 digitalWrite(frk_pin, HIGH);           //Включить подтягивающий резистор для резистивных кнопок переднего правого окна 
 
 pinMode(motRLup, OUTPUT);              //Назначить пин на закрывание заднего левого окна как выход
 pinMode(motRLdn, OUTPUT);              //Назначить пин на открывание заднего левого окна как выход
 pinMode(rlk_pin, INPUT);               //Назначить пин для резистивных кнопок заднего левого окна как вход
 digitalWrite(rlk_pin, HIGH);           //Включить подтягивающий резистор для резистивных кнопок заднего левого окна 

 pinMode(motRRup, OUTPUT);              //Назначить пин на закрывание заднего правого окна как выход
 pinMode(motRRdn, OUTPUT);              //Назначить пин на открывание заднего правого окна как выход
 pinMode(rrk_pin, INPUT);               //Назначить пин для резистивных кнопок заднего правого окна как вход
 digitalWrite(rrk_pin, HIGH);           //Включить подтягивающий резистор для резистивных кнопок заднего правого окна 
 Serial.begin(9600);
}

void motFLstop() {digitalWrite(motFLup, LOW); digitalWrite(motFLdn, LOW);}   //Окно стоп
void motFLupf() {digitalWrite(motFLup, HIGH); digitalWrite(motFLdn, LOW);}   //закрыть окно
void motFLdnf() {digitalWrite(motFLdn, HIGH); digitalWrite(motFLup, LOW);}   //открыть окно


void loop() 
{
  flk=analogRead(flk_pin);             //Переменная flk читает данные из пина для резистивных кнопок переднего левого окна
  frk=analogRead(frk_pin);             //Переменная frk читает данные из пина для резистивных кнопок переднего правого окна
  rlk=analogRead(rlk_pin);             //Переменная rlk читает данные из пина для резистивных кнопок заднего левого окна
  rrk=analogRead(rrk_pin);             //Переменная rrk читает данные из пина для резистивных кнопок заднего правого окна

 // Serial.println(flk);



// Переднее левое окно /////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////

// Стоп  //
if(flk>1000) {flagFLm = 0;}  //Если кнопки опущены разрешить ручной режим
 if(flk>1000 && flagFLa == 0) {motFLstop();} //Если кнопки опущены и не активирован авто режим "ОКНО СТОП"

// закрытие  //
if(flk>415 && flk<430 && flagFLm == 0 && !flagFLa == 0) { flagFLa = 0; flagFLm = 1; motFLstop();} //Если активно автозакрытие/открытие кнопка "закрыть" завершает авторежим
 if(flk>415 && flk<430 && flagFLm == 0 && flagFLa == 0) {motFLupf(); } //Если нажата кнопка "закрыть" и разрешен ручной режим "Отменить Авто закрытие" и "закрыть окно в ручную"
  
// автозакрытие //
if(flk>320 && flk<340) { flagFLm = 1; flagFLa = 1; MillisFL = millis();} //Если нажата кнопка "закрыть автоматически" "Запретить ручной режим" "активировать автозакрытие" "Запомнить время начала"
 if(flagFLa == 1){motFLupf();}  // если активировано автозакрытие "закрыть окно автоматически"
  if(millis() - MillisFL > 5000) {flagFLa = 0;} //Если с момента начало авто режима прошло 5сек "Завершить Авто закрытие"
  
// открытие //
if(flk>575 && flk<590 && flagFLm == 0 && !flagFLa == 0) { flagFLa = 0; flagFLm = 1; motFLstop();} //Если активно автозакрытие/открытие кнопка "открыть" завершает авторежим
 if(flk>575 && flk<590 && flagFLm == 0 && flagFLa == 0) {motFLdnf();} //Если нажата кнопка "открыть" и разрешен ручной режим "Отменить Авто открытие" и "открыть окно в ручную"
   
// автооткрытие //
if(flk>260 && flk<280) { flagFLm = 1;  flagFLa = 2; MillisFL = millis();} //Если нажата кнопка "открыть автоматически" "Запретить ручной режим" "активировать автооткрытие" "Запомнить время начала"
 if(flagFLa == 2){ motFLdnf(); } // если активировано автооткрытие "открыть окно автоматически"
  if(millis() - MillisFL > 5000) {flagFLa = 0;} //Если с момента начало авто режима прошло 5сек "Завершить Авто открытие"





// Переднее правое окно /////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////

}

Последний раз редактировалось admin; 20.03.2017 в 02:29.
T3CHNIK вне форума   Ответить с цитированием
Старый 08.12.2016, 22:10   #2
admipost
Новый Пользователь
 
Регистрация: 08.12.2016
Возраст: 40
Регион: 77, 97, 99, 177
Машина: volvo c30
Сообщений: 2
admipost is on a distinguished road
По умолчанию

код работает ?
admipost вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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



Часовой пояс GMT +4, время: 10:05.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Яндекс.Метрика