Страница 114 из 118 ПерваяПервая ... 1464104108109110111112113114115116117118 ПоследняяПоследняя
Показано с 1,131 по 1,140 из 1174
  1. #1131
    Продвинутый Аватар для wladkom53
    Регистрация
    07.03.2012
    Возраст
    70
    Сообщений
    254
    Вес репутации
    274

    По умолчанию Re: Панель приборов.

    Спасибо, буду пробовать через этот эмулятор. Вечером отпишусь.

  2. #1132
    Разработчик VENATOR Аватар для bfom
    Регистрация
    07.07.2008
    Возраст
    47
    Сообщений
    898
    Вес репутации
    640

    По умолчанию Re: Панель приборов.

    Создали новую отдельную тему о приборке. Вечером дооформим. Предлагаю перенести обсуждение ТУДА

  3. #1133
    Пользователь
    Регистрация
    07.05.2013
    Сообщений
    20
    Вес репутации
    139

    По умолчанию Re: Панель приборов.

    Цитата Сообщение от dshtarev Посмотреть сообщение
    Работает все на линуксе, вывод графики через фреймбуфер, прога на Qt/Qml, но я не умею особо рисовать, сделал как мог.
    Думал именно о такой конфигурации, но на кьюте без кумела. ИМХО на порядок эффективней, чем крутить флеши... Пока не разобрался, как без иксов поднять OpenGL контекст. Говорят пятый кьют умеет, но не понятно дрова для AMD Z430 отдают OGLES2 контекст без иксов или нет. получу плату - буду разбираться.

  4. #1134
    Местный
    Регистрация
    23.01.2011
    Возраст
    44
    Сообщений
    183
    Вес репутации
    236

    По умолчанию Re: Панель приборов.

    Цитата Сообщение от AL76 Посмотреть сообщение
    Думал именно о такой конфигурации, но на кьюте без кумела. ИМХО на порядок эффективней, чем крутить флеши... Пока не разобрался, как без иксов поднять OpenGL контекст. Говорят пятый кьют умеет, но не понятно дрова для AMD Z430 отдают OGLES2 контекст без иксов или нет. получу плату - буду разбираться.
    Вот и я на линуксе сижу. Сделал кое что уже. но пока не особо

  5. #1135
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    219

    По умолчанию Re: Панель приборов.

    Отрабатывал два варианта кода тахометра, обоим нужны усреднения параметром, так как в переменной Taho проскакивают завышенные значения
    Как бы это реализовать? Да и вообще может я не оптимальные решения нашел самих кодов?

    Вариант 1 (с прерыванием)
    Код:
    pinMode(TahometrPin, INPUT); // Контакт для тахометра !!!!!!!!!ПРЕРЫВАНИЕ 5
    digitalWrite(TahometrPin, HIGH); //внутренняя подтяжка входа тахометра 
    attachInterrupt(5, TahometrImpulse_on, FALLING); //RISING);// настройка прерывания и функции на него
    ...
    void  TahometrImpulse_on() 
    { 
    Tahometr_impulse_count++; //увеличить счетчик импульсов
    if (Tahometr_impulse_count >=4) //2имп=1 оборот коленвала
      {
    Taho_ImpulseTime = micros()-Taho_time;  //время прихода между импульсами
    Taho_time = micros(); //обнулить
    Taho=((Tahometr_impulse_count*60*1000000)/(2*Taho_ImpulseTime));   // перевод в об/мин
    Tahometr_impulse_count = 0;
      } 
    }
    Вариант 2 (с прерыванием и таймером)
    Код:
    #include <TimerThree.h>
    
    long Timer_Time=500000; //mcsec
    
    Timer3.initialize(Timer_Time);//(Timer_Time*1000);      // initialize timer3, and set a 1/2 second period
    Timer3.pwm(2, 512);  
    Timer3.pwm(3, 512);
    Timer3.pwm(5, 512);
    Timer3.attachInterrupt(Timer3_Timer);
    ...
    pinMode(TahometrPin, INPUT); // Контакт для тахометра !!!!!!!!!ПРЕРЫВАНИЕ 5
    digitalWrite(TahometrPin, HIGH); //внутренняя подтяжка входа тахометра 
    attachInterrupt(5, TahometrImpulse_on, FALLING); //RISING);// настройка прерывания и функции на него
    ...
    void  TahometrImpulse_on() 
    { 
    Tahometr_impulse_count++; //увеличить счетчик импульсов
    }
    
    void Timer3_Timer() //обработка событий в таймере
    {
    Taho=(Tahometr_impulse_count*1000000*60)/(2*Timer_Time); //  - 2 импульса на 1 оборот
    Tahometr_impulse_count = 0;
    }
    Недостаток первого кода - при 0 об/мин в переменной Taho сидит последнее значение оборотов, а не 0.
    Последний раз редактировалось kadushkin; 26.05.2013 в 00:30.

  6. #1136
    Разработчик VENATOR Аватар для Venator
    Регистрация
    27.01.2013
    Сообщений
    90
    Вес репутации
    279

    По умолчанию Re: Панель приборов.

    Рабочий код тахометра
    Код:
    //********************************************************************
    unsigned long micros_th;
    volatile int tz;                           //счетчик обнуления
    volatile int th;                           //импульсы тахометра
    //********************************************************************
    void setup(){ 
       Serial.begin(115200);                    //инициализация ком порта 
       attachInterrupt(1, tahometr,   RISING);  //прерывание тахометра по фронту импульса
    } 
    //********************************************************************
    void loop(){
      Serial.print (th);
      tz = tz - 1;
      if (tz == 0){
        th = 0;
      }
      delay(50);
    }
    //********************************************************************
    void tahometr(){                            //измеряем частоту на входе тахометра по прерыванию
      th=(900000.0/(micros() - micros_th));
      micros_th = micros();
      tz = 30;
    }
    Последний раз редактировалось Venator; 28.05.2013 в 00:24.

  7. #1137
    Новичок
    Регистрация
    24.02.2008
    Возраст
    44
    Сообщений
    14
    Вес репутации
    200

    По умолчанию Re: Панель приборов.

    super - штука

  8. #1138
    Новичок Аватар для Unlim
    Регистрация
    01.04.2010
    Возраст
    33
    Сообщений
    18
    Вес репутации
    176

    По умолчанию Re: Панель приборов.

    Что бы сделать адекватный тахометр без дребезга использовал этот код.
    На хонде два импульса на оборот! единственно, что не понял, от куда хаотично появляется значение "9632" в виде единого скачка в процессе работы.
    Код:
    void loop()  {
    
    if (timer < millis()){
          timer = millis()+100;
    if (M == 5){
     m5 = rpm3;
     M = 0;}
    if (M == 4){
     m4 = rpm3;
     M = 5;}
    if (M == 3){
     m3 = rpm3;
     M = 4;} 
    if (M == 2){
     m2 = rpm3;
     M = 3;} 
    if (M == 1){
     m1 = rpm3;
     M = 2;}
    if (M == 0){
     m0 = rpm3;
     M = 1;}
    if (m0 == m1 && m0 == m2 && m0 == m3 && m0 == m4 && m0 == m5){
    rpm3 = 0;} 
    
    if (rpm3 == 9632){}
    else{Serial.println(rpm3, DEC);}}
    
    void RPM (){
    
         rpm2 = rpm;
         rpm = (1000000.0/(micros() - microsold))*60/2;
         microsold = micros();
      
     if  (rpm2 > rpm-200 && rpm2 < rpm+1000){
         rpm3 = rpm;}}
    жду критику... я учусь сам.. и пока могу код писать коряво.ткните что ли)

  9. #1139
    Новичок
    Регистрация
    28.05.2014
    Сообщений
    11
    Вес репутации
    124

    По умолчанию Re: Панель приборов.

    Пояснте пожалуйста по поводу подключения габаритов, фар... там понятно, всё через "+". А двери по "-" же идут. как там быть ?

  10. #1140
    Разработчик VENATOR Аватар для bfom
    Регистрация
    07.07.2008
    Возраст
    47
    Сообщений
    898
    Вес репутации
    640

    По умолчанию Re: Панель приборов.

    Цитата Сообщение от Permyak Посмотреть сообщение
    Пояснте пожалуйста по поводу подключения габаритов, фар... там понятно, всё через "+". А двери по "-" же идут. как там быть ?
    Тема продолжена ЗДЕСЬ. Ответ на вопрос ЗДЕСЬ.

Страница 114 из 118 ПерваяПервая ... 1464104108109110111112113114115116117118 ПоследняяПоследняя

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

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

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

Ваши права

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