RSS лента

Protez1999

Arduino свет авто

Оценить эту запись
05.06.2012 в 18:53 (3597 Показов)
Было у меня желание сделать свет в модель чтоб в темное время не теряться где перед где зад. Поставил диоды запитал от балансировочно разьема все горит Классно. Потом захотеллсь все это дела включать 3 каналом, поколупался в серве разобрал поставил реле вместо мотора заработало но не стабильно. Потом решил сделать свет как в авто 1-1 с поворотами стопами. не получилось забросил. Потом в руки попаласт чудная платка arduino на которой все и вышло. Режим можно сделать какой душе угодно.

Категории
Без категории

Комментарии

  1. Аватар для Миктор
    А где самое главное - код?
  2. Аватар для Protez1999
    /* Легенда: if((RCval1<1300)&&(RCval1>1)and (RCval2>200))
    1 когда стоит горит аварийка и горят фары
    2 когда поворачивает горят повороты
    3 когда едит 50% горяд фары когда больше 50 стробы когда остановилась горят стопы
    strob2 - Мигают 2 левых потом 2 правых
    strob1 - Мигает через 1
    if (RCval1<1){TurnRight();TurnLeft();}
    4 Avariika()-- Аварийка
    5 Stoim() - Огни когда машинка стоит все фары горят повороты мигают
    6 PovorotLevo() // поворот лево
    7 PovorotPravo() // Поворот право
    8 StrobEdy() // стробы во время езды
    9 ZadXod() // Задний ход 2 синих впереди горит горят белые сзади
    10 EdystrobPovorlevo() // еду горит строб и левый поворот
    11 EdystrobPovorPravo() // еду горит строб и правый поворот
    12 svetfar чем быстрее едит тем ярче горят фары
    13 stop1 стоп огонь*/
    int svet;
    int svet2=4;
    int PPMin1 = 2;//сигнал с пульта повороты 1470-1490
    int PPMin2 = 3; // Сигнал с пульта газ 1490-1510 нетрал
    int PPMin3 = 12;/* Сигнал с 3 канала 919 лево 120% - 1570лево 0%
    2107 право 120% 1507 право 0*/
    int ledPin4 = 4; //поворот право перед и зад
    int ledPin5 = 5;// поворот лево перед и зад
    int ledPin6 = 6;// фары перед белый огонь право
    int ledPin7 = 7;// фары перед белей огонь лево
    int ledPin8 = 8;// перед синий огонь право
    int ledPin9 = 9;// перед синий огонь лево
    int ledPin10=10;// зад стопы право
    int ledPin11=11; // Зад белый огонь
    int ledPin13 = 13;// зад красный
    int RCval1; // длительность импульса
    int adj_val1; // назначает что значение должно быть 0-255
    int RCval2; // длительность импульса
    int adj_val2; // назначает что значение должно быть 0-255
    int RCval3; // длительность импульса
    int adj_val3; // назначает что значение должно быть 0-255

    void setup()

    {
    Serial.begin(9600); //serial library start
    pinMode(ledPin4, OUTPUT); // выходы на диоды
    pinMode(ledPin5, OUTPUT);
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT);
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT);
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT);
    pinMode(ledPin13, OUTPUT);
    pinMode(PPMin3,INPUT);// вход1 3 канал пульта вкл выкл
    pinMode(PPMin1, INPUT); //вход пульт 2 порт повороты
    pinMode(PPMin2, INPUT); //вход пульт 3 порт газ
    }



    void loop()
    {
    {
    RCval1 = pulseIn(PPMin1, HIGH, 20000); //руль
    adj_val1 = map(RCval1, 1080, 1880, 0, 255); //

    RCval2 = pulseIn(PPMin2, HIGH, 20000); //руль
    adj_val2 = map(RCval2, 1080, 1880, 0, 255);

    RCval3 = pulseIn(PPMin3, HIGH, 20000); //руль
    adj_val3 = map(RCval3, 1080, 1880, 0, 255);


    }

    {
    if (RCval1<1){Stoim();} // пульт выключен +
    }
    { Serial.print ("val1: ");
    Serial.print (RCval1);
    Serial.print (" ");
    Serial.print ("adjusted: ");
    Serial.print (adj_val1);
    Serial.println (" ");
    delay(100);
    }
    //Машинка стоит никуда не едит +
    {
    if ((RCval1>1470)&&(RCval1<1530)and(RCval2>1490)&&(RCval2<1510)){Avariika();}
    }
    //Едит поворот лево +
    {
    if ((RCval1<1469)&&(RCval1>2)and(RCval2>1650)){EdystrobPovorlevo();}
    }
    //Eдит поворот право +
    {
    if ((RCval1>1530)and(RCval2>1650)){EdystrobPovorPravo();}
    }
    //едит без поворотов +
    {
    if ((RCval1>1475)&&(RCval1<1520)and(RCval2>1550)){StrobEdy();}
    }
    {
    if (RCval2<1400){stop1();}
    }
    }
    void Stoim()// повороты мигают все остально не горит
    {
    digitalWrite(5, 1);
    digitalWrite(4, 1);
    delay(250);
    digitalWrite(5, 0);
    digitalWrite(4, 0);
    delay(250);
    }

    void Avariika() // повороты + фары
    {
    digitalWrite(5, 1);
    digitalWrite(4, 1);
    digitalWrite(6,1);
    digitalWrite(7,1);
    digitalWrite(8,1);
    digitalWrite(9,1);
    analogWrite(10,40);
    digitalWrite(11,0);
    delay(250);
    digitalWrite(5, 0);
    digitalWrite(4, 0);
    delay(250);
    }
    void PovorotLevo() // поворот лево
    {
    digitalWrite(5, 1);
    delay(250);
    digitalWrite(5, 0);
    delay(250);
    }

    void PovorotPravo() // Поворот право
    {
    digitalWrite(4, 1);
    delay(250);
    digitalWrite(4, 0);
    delay(250);
    }
    void StrobEdy() // стробы во время езды
    {

    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    delay(150);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    delay(200);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    delay(150);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    delay(200);
    }
    void ZadXod() // Задний ход 2 синих впереди горит горит белые сзади
    {
    digitalWrite(8,1);
    digitalWrite(9,1);
    digitalWrite(10,1);

    }

    void EdystrobPovorlevo() // еду горит строб и левый поворот
    {
    digitalWrite(5,1);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    delay(150);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(5,0);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    delay(200);
    digitalWrite(5,1);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    delay(150);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(5,0);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    delay(200);
    }

    void EdystrobPovorPravo() // еду горит строб и левый поворот
    {
    digitalWrite(4,1);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    delay(150);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(4,0);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    delay(200);
    digitalWrite(4,1);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    delay(150);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(4,0);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    delay(200);
    }

    void strobavariika()

    {
    digitalWrite(4,1);
    digitalWrite(5,1);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    delay(150);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(4,0);
    digitalWrite(5,0);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
    delay(200);
    digitalWrite(4,1);
    digitalWrite(5,1);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    delay(150);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(4,0);
    digitalWrite(5,0);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    delay(200);
    }

    void fariPovorotLevo()
    {
    digitalWrite(6,1);
    digitalWrite(7,1);
    digitalWrite(8,1);
    digitalWrite(9,1);
    digitalWrite(5, 1);
    delay(250);
    digitalWrite(5, 0);
    delay(250);
    }

    void fariPovorotPravo()
    {
    digitalWrite(6,1);
    digitalWrite(7,1);
    digitalWrite(8,1);
    digitalWrite(9,1);
    digitalWrite(4, 1);
    delay(250);
    digitalWrite(4, 0);
    delay(250);
    }

    void strob2()//Мигают 2 левых потом 2 правых
    {

    digitalWrite(9, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(7, LOW);
    delay(150);
    digitalWrite(9, HIGH);
    digitalWrite(7, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(7, LOW);
    delay(200);
    digitalWrite(6, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(6, LOW);
    digitalWrite(8, LOW);
    delay(150);
    digitalWrite(6, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(6, LOW);
    digitalWrite(8, LOW);
    delay(200);}

    void strob1()
    {
    digitalWrite(9, HIGH);
    digitalWrite(6, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(6, LOW);
    delay(150);
    digitalWrite(9, HIGH);
    digitalWrite(6, HIGH);
    delay(25);
    digitalWrite(9, LOW);
    digitalWrite(6, LOW);
    delay(200);
    digitalWrite(7, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(7, LOW);
    digitalWrite(8, LOW);
    delay(150);
    digitalWrite(7, HIGH);
    digitalWrite(8, HIGH);
    delay(25);
    digitalWrite(7, LOW);
    digitalWrite(8, LOW);
    delay(200);}

    void stop1()
    {
    digitalWrite(8,1);
    digitalWrite(9,1);
    digitalWrite(10,1);
    digitalWrite(11,1);
    digitalWrite(6,0);
    digitalWrite(7,0);

    }
  3. Аватар для Protez1999
  4. Аватар для Protez1999
  5. Аватар для Yuriy909
    Здравствуйте Вадим! Чего-то я залил Ваш код в ардуино и ни чего не пашет. Можете пояснить, правда я это первый раз делаю... Мигает только аварийка, на пульт не реагирует, остальные либо постоянно горят либо вообще не светятся.
  6. Аватар для Protez1999
    посмотрите чтоб все было пожключено к тому к чему должно быть. Каждый канал пульта к своему контакту на ардуино
  7. Аватар для Yuriy909
    Почему-то стопы не светятся и вопросик, можно написать код для 2х каналов газ-тормоз, повороты и головной свет?
  8. Аватар для VladimirD89
    сделал так - и мой 27МГц приемник начал ловить сатану просто(( Вы испытывали свой блок света на ходу вообще? мне кажется ардуино генерирует какие-то непонятные сигналы, которые антенна ловит, хотя может они и через питание проникают, но - делал всяческие фильтры - не помогает. Даже отдельное питание не помогает. Даже просто ардуино рядом с приемником если - начинается черти что
  9. Аватар для Protez1999
    Я лет 5 назад забыл про эту частоту. На 2.4 все работает без проблем.