Прототип! Электронное управление омывателем фар.....анонс!

Автор: БаzzАЛЬТ♑
Опубликовано: 231 день назад (24 апреля 2017)
Бортовой журнал: Конструктор
Рубрика: Без рубрики
Редактировалось: 7 раз — последний 5 мая 2017
+13
Голосов: 13
Кому-то это покажется шизой, а меня затянуло новое увлечение, Ардуино! На выходных планирую инсталляцию этого безобразия (не в таком конечно виде — это стенд!) на авто и уже появилось решение некоторых вопросов по доработкам, которые давно застопорились. Но благодаря Ардуино я знаю как их реализовать!
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.


Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

Изображение уменьшено. Щелкните, чтобы увидеть оригинал.
Код PHP:
  1.  
  2. /* Скетч для приводов форсунок фароомывателей.
  3.   Приводы на основе драйверов и шаговых моторов делают сначала
  4.   поворот под углом в одну сторону, потом в другую,
  5.   поворачивая через систему рычагов форсунки омывателей.
  6.   Направление вращения у двигателей зеркальное.
  7.   Одновременно включается и выключается реле насоса омывателя
  8.   30.04.2017. Россия, Дедовск. Скетч заимствован со страницы http://codius.ru/articles/Arduino_Uno_шаговый_двигатель_28BYJ_48_5V_драйвер_ULN2003_на_модуле_SBT0811
  9.   Автор Кравченко Виктор
  10.   Редакция и подробные комментарии "БаzzАЛЬТ".
  11. */
  12. int pins[] = {2, 3, 4, 5, 8, 9, 10, 11}; //Задаем массив пинов на драйвера по порядку. 2-4 пины - правый мотор, 8-11 - левый мотор
  13. int RelayPin = 13; // Вывод реле насоса омывателя
  14. int buttonPin = 12; // Вывод кнопки включения омывателя
  15. int buttonState = 0; // Изначальное состояние кнопки
  16. int stepsR = 0; // Шаги правого мотора
  17. int stepsL = 0; // Шаги левого мотора
  18. int dirR = 1; // Переменная для смены направления вращения правого мотора. При изменении знака, на "-" изменяется направление вращения.
  19. int dirL = -1; // Переменная для смены направления вращения левого мотора. При изменении знака, на "-" изменяется направление вращения.
  20. int motorSteps[8][4] = { // [Step][pin] // Массив логических уровней полушагового режима для двигателя
  21. // Вывод драйвера 1 2 3 4
  22. // Цвет провода син роз жел ора
  23. { 1, 1, 0, 0}, // Шаг 0
  24. { 0, 1, 0, 0}, // Шаг 1
  25. { 0, 1, 1, 0}, // Шаг 2
  26. { 0, 0, 1, 0}, // Шаг 3
  27. { 0, 0, 1, 1}, // Шаг 4
  28. { 0, 0, 0, 1}, // Шаг 5
  29. { 1, 0, 0, 1}, // Шаг 6
  30. { 1, 0, 0, 0} // Шаг 7
  31. };
  32.  
  33. void setup() {
  34. for (int i = 0; i < 9; i++) pinMode(pins[i], OUTPUT); // Инициализация пинов драйверов как цифровых выходов
  35. pinMode(buttonPin, INPUT_PULLUP); // Вывод кнопки как цифровой вход с подтягивающим на "+" встроенным резистором
  36. pinMode(RelayPin, OUTPUT); // Вывод реле омывателя
  37. }
  38.  
  39. void loop() {
  40. buttonState = !digitalRead(buttonPin); // Чтение состояния кнопки омывателя
  41. if (buttonState == HIGH) { // Если кнопка нажата...
  42. digitalWrite(RelayPin, HIGH); // ...то включаем реле насоса омывателя...
  43. for (int c = 0; c < 1000; c++) { // ... и включаем полный цикл после однократного нажатия кнопки. От конечного значения цикла зависит угол поворота форсунок.
  44. if (c == 500) { // Если дошли до середины цикла то...
  45. dirR = - dirR; // ...меняем направление
  46. dirL = - dirL; // вращения моторов
  47. }
  48. stepsR += dirR; // Следующий шаг правого мотора
  49. stepsL += dirL; // Следующий шаг левого мотора
  50.  
  51. if (stepsR > 7) stepsR = 0; // 8 шагов из массива нумеруются
  52. if (stepsL > 7) stepsL = 0; // от 0 до 7. Вместо оператора FOR
  53. if (stepsR < 0) stepsR = 7; // используем оператор IF для
  54. if (stepsL < 0) stepsL = 7; // прохождения цикла 0-7
  55.  
  56. for (int i = 0; i < 4; i++) { // Цикл вывода логических уровней на пины драйверов
  57. digitalWrite(pins[i], ((motorSteps[stepsR][i] == 1) ? HIGH : LOW)); // Включаем мотор омывателя правой фары
  58. digitalWrite(pins[i + 4], ((motorSteps[stepsL][i] == 1) ? HIGH : LOW)); // Включаем мотор омывателя левой фары
  59. }
  60. delay(1); // Пауза на вращение на один полушаг. Увеличивая паузу уменьшаем скорость вращения форсунок
  61. }
  62. digitalWrite(RelayPin, LOW); // Выключаем реле насоса омывателя после завершения полного цикла
  63. for (int in = 0; in < 12; in++) { // Снимаем напряжение с обмоток,
  64. digitalWrite(in, LOW); // иначе они потребляют ток и греются!
  65. }
  66. dirR = 1; // Возвращаем исходное значение
  67. dirL = -1; // шаговых переменных
  68. }
  69. } // Возврат и ожидание следующего нажатия кнопки
  70.  
И видео! https://youtu.be/j3P1I_3cjf0
Омыватель фар за три копейки! Пора прозреть! | Красиво жрать не запретишь!
Создайте свой бортовой журнал, и вы сможете делиться с форумчанами своим мнением о Ларгусе, полезными наработками, установленным доп. оборудованием и тюнингом, поездками и путешествиями! Для создания бортового журнала необходимо зарегистрироваться на сайте.

Популярное в бортовых журналах

Дхо Путешествия на ларгусе Расход топлива Подлокотник Пробег Диски Магнитола То1 Первые впечатления Покупка ларгуса Электрика Чехлы на ларгус Сетка в бампер Доработки Гбо Динамики Камера заднего вида Дворники Освещение салона Стоп сигнал Тюнинг Шины и диски Обратный клапан Тюнинг фонари Шумоизоляция Зимние шины Коврики Ларгус Видеорегистратор Рки-19 Зимняя эксплуатация Бокс на крышу Птф Задние фонари Ижевск Автозвук Форсунки Брызговики Бачок омывателя Упоры капота Лампа ближнего света Установка салонного фильтра Парктроник Пороги Лада ларгус Светодиод Накладки на ковролин Плавают обороты холостого хода Освещение багажника Тонировка Полка багажника Поездка на море Уплотнитель капота Дтп Отзыв владельца Подкрылки Рация Дополнительная розетка Очечник Замена 5 передачи
Akmashi # 26 апреля 2017 в 00:08 +1
это тоже не плохо. ты лучше придумай как сделать фары с автооарректорами
Заречный # 28 апреля 2017 в 21:50 +1
Задолбали встречные мудаки(долбоё..бы) с 500 вольтовыми лампами zlo
dimon722 # 26 апреля 2017 в 11:06 +1
БаzzАЛЬТ&#9809;, давно слежу за твоими самоделками, так и знал, что ты кокда нибудь к ARDUINO подтянешься:).
БаzzАЛЬТ♑ # 26 апреля 2017 в 11:17 +1
laugh
Жаль, что этого раньше не произошло, вот я уже давно и конкретно развернулся бы!  car
dimon722 # 26 апреля 2017 в 12:00 +1
Я сейчас готовлю грандиозный проект, буду внедрять полноценный компьютер, будет и ARDUINO ( три датчика температуры, пульт ДУ, 8 релюшек для управления нагрузками, кренометр). Всё уже собрано и работает. Осталось дело за малым-инсталяция. laugh
Если интересно взгляни тыц
БаzzАЛЬТ♑ # 26 апреля 2017 в 14:16 +1
Да, установка самый трудоемкий момент!
Посмотрел - не проект, ПРОЕКТИЩЕ!!!
Виктор116 # 1 мая 2017 в 17:26 +1
Базуля рад безмерно, ждем испытаний на машине
Демон, рад твоему увлечению, не теряйся пожалуста
Извини за прозвище, Димонов много

Дополнительные комментарии: