Страница 50 из 57 ПерваяПервая ... 4044454647484950515253545556 ... ПоследняяПоследняя
Показано с 491 по 500 из 561
  1. #491
    Пользователь
    Регистрация
    04.12.2008
    Возраст
    47
    Сообщений
    75
    Вес репутации
    211

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    всё собрал,всё работает.но.. подскажите как две ардуины одновременно поставить? чего то не пойму.
    одна стоит на рулевые кнопки,вторая на реле-плагин на центрифугу. одну выдергиваешь,вторая работает...вместе нет...
    или подскажите,можно слиять два скетча?
    на плагине 8 реле,на рулевых кнопках 5 рэле.
    Последний раз редактировалось Beard; 09.03.2014 в 12:33.

  2. #492
    Пользователь
    Регистрация
    04.12.2008
    Возраст
    47
    Сообщений
    75
    Вес репутации
    211

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    #define PIN 5 //номер аналогового порта
    #define LIMIT 6 //предел погрешности сопротивления


    byte bytes[2];
    int res_dt1;
    unsigned long math_time,old_time,real_time;
    void setup()
    {
    pinMode(10,OUTPUT);
    pinMode(11,OUTPUT);
    pinMode(12,OUTPUT);
    pinMode(13,OUTPUT);



    Serial.begin(115200); // настроить скорость com порта
    }

    void loop()
    {
    old_time = real_time;
    math_time = 0;
    res_dt1 = analogRead(PIN); // прочитать данные АЦП
    while(math_time < 300 && (analogRead(PIN)>res_dt1-LIMIT && analogRead(PIN) < res_dt1+LIMIT ))
    {
    real_time = millis(); //получить реальное время
    math_time = real_time - old_time; //считаем длительность паузы
    }

    if( math_time > 80 ) //если нет дребезга
    {

    if (res_dt1>675 && res_dt1<685) digitalWrite(10,LOW );
    delay(30);
    digitalWrite(10, HIGH);

    if (res_dt1>105 && res_dt1<115) digitalWrite(11,LOW );
    delay(30);
    digitalWrite(11, HIGH);

    if (res_dt1>25 && res_dt1<35) digitalWrite(12,LOW );
    delay(30);
    digitalWrite(12, HIGH);

    if (res_dt1>410 && res_dt1<415) digitalWrite(13,LOW );
    delay(30);
    digitalWrite(13, HIGH);



    bytes[0] = res_dt1 & 255; // преобразовать в 2-байта
    bytes[1] = (res_dt1 & 768) >> 8;
    Serial.write( bytes,2); // отправить прочитаное значение компьютеру
    }
    }
    void setup()
    {
    // выходы управления реле
    for (int i=2; i < 10; i++)
    {
    pinMode(i,OUTPUT);
    digitalWrite(i, LOW);
    }

    // инициализация порта
    Serial.begin(9600);
    }

    void loop()
    {
    byte a, b, c;
    if (Serial.available() > 2) // ждем данные от плагина
    {
    a = Serial.read();
    b = Serial.read();
    c = Serial.read();
    if(a == 0xFF) //если данные от плагина, то выполим команду
    {
    digitalWrite(b+1, (c==0x01) ? HIGH : LOW); //выполнить
    } } }
    вот так не компилируется,выдает ошибку.

  3. #493
    Пользователь Аватар для lti1
    Регистрация
    15.10.2010
    Возраст
    48
    Сообщений
    78
    Вес репутации
    182

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Beard Посмотреть сообщение
    вот так не компилируется,выдает ошибку.
    И не будет. Изучите хоть поверхностно основы работы с ардуино http://arduino.ru/Reference/Setup и http://arduino.ru/Reference/Loop
    Так попробуйте:
    Код:
    #define PIN 5 //номер аналогового порта
    #define LIMIT 6 //предел погрешности сопротивления
    
    
    byte bytes[2];
    int res_dt1;
    unsigned long math_time,old_time,real_time;
    void setup()
    {
    pinMode(10,OUTPUT); 
    pinMode(11,OUTPUT); 
    pinMode(12,OUTPUT); 
    pinMode(13,OUTPUT);
    
    
    
    Serial.begin(115200); // настроить скорость com порта
    
    // выходы управления реле 
    for (int i=2; i < 10; i++) 
    { 
    pinMode(i,OUTPUT); 
    digitalWrite(i, LOW); 
    } 
    }
    
    void loop() 
    {
    relay(); // цикл void relay()
    
    old_time = real_time;
    math_time = 0;
    res_dt1 = analogRead(PIN); // прочитать данные АЦП
    while(math_time < 300 && (analogRead(PIN)>res_dt1-LIMIT && analogRead(PIN) < res_dt1+LIMIT ))
    {
    real_time = millis(); //получить реальное время
    math_time = real_time - old_time; //считаем длительность паузы
    }
    
    if( math_time > 80 ) //если нет дребезга
    {
    
    if (res_dt1>675 && res_dt1<685) digitalWrite(10,LOW );
    delay(30);
    digitalWrite(10, HIGH);
    
    if (res_dt1>105 && res_dt1<115) digitalWrite(11,LOW );
    delay(30);
    digitalWrite(11, HIGH);
    
    if (res_dt1>25 && res_dt1<35) digitalWrite(12,LOW );
    delay(30);
    digitalWrite(12, HIGH);
    
    if (res_dt1>410 && res_dt1<415) digitalWrite(13,LOW );
    delay(30);
    digitalWrite(13, HIGH);
    
    
    
    bytes[0] = res_dt1 & 255; // преобразовать в 2-байта
    bytes[1] = (res_dt1 & 768) >> 8;
    Serial.write( bytes,2); // отправить прочитаное значение компьютеру
    }
    } 
     
    
    void relay() 
    { 
    byte a, b, c; 
    if (Serial.available() > 2) // ждем данные от плагина 
    { 
    a = Serial.read(); 
    b = Serial.read(); 
    c = Serial.read(); 
    if(a == 0xFF) //если данные от плагина, то выполим команду
    { 
    digitalWrite(b+1, (c==0x01) ? HIGH : LOW); //выполнить
    } 
    } 
    }

  4. #494
    Пользователь
    Регистрация
    04.12.2008
    Возраст
    47
    Сообщений
    75
    Вес репутации
    211

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от lti1 Посмотреть сообщение
    Так попробуйте:
    залил на одну ардуину. работает только то,что первым запустить,для второй порт занят.

  5. #495
    Пользователь Аватар для lti1
    Регистрация
    15.10.2010
    Возраст
    48
    Сообщений
    78
    Вес репутации
    182

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Beard Посмотреть сообщение
    залил на одну ардуину. работает только то,что первым запустить,для второй порт занят.
    Это объединенный скетч для одной ардуины. А Вы что хотели объединив скетчи? Или Вы имеете ввиду программы которые к ним обращаются?
    Последний раз редактировалось lti1; 09.03.2014 в 17:35.

  6. #496
    Пользователь
    Регистрация
    04.12.2008
    Возраст
    47
    Сообщений
    75
    Вес репутации
    211

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от lti1 Посмотреть сообщение
    Это объединенный скетч для одной ардуины. А Вы что хотели объединив скетчи? Или Вы имеете ввиду программы которые к ним обращаются?
    у меня уже в авто стоит ардуина с плагином кнопок от ценрифуги.
    появилось желание рулевые кнопки прикрутить. не получается ни две ардуины запустить,ни два скейтча в одной.что бы и хоткей и центрифуга обращались только к своей ардуине. в центрифуге можно порт выставить....

  7. #497
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    392

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Beard, есть два варианта решения. первый: в каждой программе (плагине и обработчике кнопок на ПК) прописать порт для своей ардуины. второй: все повесить на одну ардуину и написать программу обрабатывающую и кнопки, и управление реле. нечто подобное делал тут, правда кнопки не резистивные (легко редактируется, все равно под ардуино переписывать).

  8. #498
    Пользователь
    Регистрация
    04.12.2008
    Возраст
    47
    Сообщений
    75
    Вес репутации
    211

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от manu_245 Посмотреть сообщение
    в каждой программе (плагине и обработчике кнопок на ПК) прописать порт для своей ардуины.
    как хоткею прописать порт?

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

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Программа сама ищет подключенное устройство "Joystik"
    с другими устройствами она не работает

  10. #500
    Пользователь
    Регистрация
    04.12.2008
    Возраст
    47
    Сообщений
    75
    Вес репутации
    211

    По умолчанию Re: Управление рулевыми кнопками при помощи Carduino.

    Цитата Сообщение от Chip Посмотреть сообщение
    Программа сама ищет подключенное устройство "Joystik"
    с другими устройствами она не работает
    в компе два ардуино,одно со скетчем из этой темы,второе со скетчем для центрифуги.
    перегружаем комп,и работает только плагин центрифуги,ибо наверное что порт ему известен.
    выдергиваем ардуину с центрифугой,сразу начинает видеть хоткей свою ардуину. втыкаем обратно ценрифужную,всё-хоткей не робит...

Страница 50 из 57 ПерваяПервая ... 4044454647484950515253545556 ... ПоследняяПоследняя

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

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

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

Ваши права

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