Страница 3 из 18 ПерваяПервая 12345678913 ... ПоследняяПоследняя
Показано с 21 по 30 из 178
  1. #21
    Пользователь
    Регистрация
    17.12.2009
    Возраст
    46
    Сообщений
    34
    Вес репутации
    182

    По умолчанию Re: Бортовой компьютер мотоцикла

    Если 70 градусов, то датчики не читаются. Проверяй подключение и инициализацию пинов.

  2. #22
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    136

    По умолчанию Re: Бортовой компьютер мотоцикла

    Комнатную температуру нормально показывает.

  3. #23
    Модератор Аватар для XsanderS
    Регистрация
    05.05.2008
    Возраст
    41
    Сообщений
    829
    Вес репутации
    389

    По умолчанию Re: Бортовой компьютер мотоцикла

    Датчик изолирован? Ищи причину по которой датчик не читается.
    хороший модем должен качать пиво!
    Мой проект

  4. #24
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    136

    По умолчанию Re: Бортовой компьютер мотоцикла

    Датчик работает, проверял цифровым термометром. Кипящая вода фиг с ней ... этот датчик будет показывать от 0 до 35, большие пределы мне не интересны.

    Нажмите на изображение для увеличения. 

Название:	2014-12-30 19-24-56.jpg 
Просмотров:	695 
Размер:	51.1 Кб 
ID:	18360

  5. #25
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    136

    По умолчанию Re: Бортовой компьютер мотоцикла

    Итак схема.

    A0 - Датчик уровня топлива
    А1 - Датчик температуры
    А4 - Герконы (повышение - понижение скорости)
    А5 - К замку зажигания клемма +15

    D4 - Минус датчика нейтрали для синхронизации канала (А4)
    D5 - Контроль работы вентилятора охлаждения
    D6 - Контроль работы топливной помпы
    D7,8 - Принудительное включение вентилятора охлаждения и помпы (частота включения 1Гц)
    D10 - Датчик температуры наружного воздуха
    D11 - Кнопка для меню
    D12 - Светодиод не исправности
    D13 - Датчик скорости
    SCL, SDA - правильно ?

    Нажмите на изображение для увеличения. 

Название:	Arduino.jpg 
Просмотров:	849 
Размер:	93.2 Кб 
ID:	18361

  6. #26
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    136

    По умолчанию Re: Бортовой компьютер мотоцикла

    Подскажите как сделать таймер например для светодиода (что бы мигал с интервалом 5/5 сенунд) используя millis(), всю голову сломал.

  7. #27
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    136

    По умолчанию Re: Бортовой компьютер мотоцикла

    Сегодня по паял не много, конструктивно все будет находится внутри корпуса от сигнализации ШЕРХАН.
    Пины от Ардуины не будут жестко связаны с платой, а подсоединены через шлейф.

    Нажмите на изображение для увеличения. 

Название:	2015-01-03 15-56-37.jpg 
Просмотров:	802 
Размер:	88.7 Кб 
ID:	18371
    Нажмите на изображение для увеличения. 

Название:	2015-01-03 15-50-08.jpg 
Просмотров:	696 
Размер:	113.0 Кб 
ID:	18372
    Нажмите на изображение для увеличения. 

Название:	2015-01-03 15-48-42.jpg 
Просмотров:	709 
Размер:	125.8 Кб 
ID:	18373
    Нажмите на изображение для увеличения. 

Название:	2015-01-03 15-52-41.jpg 
Просмотров:	687 
Размер:	139.9 Кб 
ID:	18374
    Нажмите на изображение для увеличения. 

Название:	2015-01-03 15-44-31.jpg 
Просмотров:	721 
Размер:	109.2 Кб 
ID:	18375
    Последний раз редактировалось Oleg_33; 03.01.2015 в 19:54.

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

    По умолчанию Re: Бортовой компьютер мотоцикла

    Цитата Сообщение от Oleg_33 Посмотреть сообщение
    Подскажите как сделать таймер например для светодиода (что бы мигал с интервалом 5/5 сенунд) используя millis(), всю голову сломал.
    Вот так:
    PHP код:
      static unsigned long time;
      
      if ((
    millis()-time)>5000//запуск процедуры Temp по таймеру каждые пять секунд
       

         
    time millis();
         
    Temp(); // замените на нужное Вам действие
       

    Последний раз редактировалось lti1; 08.01.2015 в 04:20.

  9. #29
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    136

    По умолчанию Re: Бортовой компьютер мотоцикла

    Да спасибо, так уже пробовал.
    У меня датчик температуры считывает показания и при достижении пограничной температуры срабатывания, реле (которым управляет датчик) начинает дребезжать, тк показания не успевают перевалить за пограничную температуру.
    Пришлось сделать не симметричный таймер 100мс/5000мс.

    У меня так получилось:
    PHP код:
    int ledPin 3;                
    unsigned long currentTime;
    unsigned long loopTime;
    int TEMP_CURENT;
    int Timer LOW;

    void setup()
    {
      
    pinMode(ledPinOUTPUT);
    }

    int _Timer(int lint h)
    {
      
    currentTime millis();                      
      if(
    currentTime >= (loopTime l) && (Timer != HIGH)){ //              
        
    digitalWrite(ledPinLOW);    
        
    loopTime currentTime;
        
    Timer HIGH;
      }
        if(
    currentTime >= (loopTime h) && (Timer HIGH)){ //              
        
    digitalWrite(ledPinHIGH);    
        
    loopTime currentTime;
        
    Timer LOW;
        
        
    Serial.println(TEMP_CURENT);
        return 
    1;
       }  
    }

    void loop()

    if (
    _Timer(1005000)) TEMP_CURENT analogRead(0);

    Последний раз редактировалось Oleg_33; 07.01.2015 в 17:38.

  10. #30
    Местный
    Регистрация
    07.12.2014
    Сообщений
    102
    Вес репутации
    136

    По умолчанию Re: Бортовой компьютер мотоцикла

    Сегодня написал первые строки ... жду дисплей.

    Выслушаю любую критику по поводу кода кстати он рабочий.

    PHP код:
    // Аналоговые пины
    const int ANALOG_TEMP_PIN 0;
    //

    // Цифровые пины
    const int DIGITAL_RELAY_PIN 3;
    const 
    int DIGITAL_LED_PIN 13;
    //

    // Глобальные переменные
    int RELAY_CURENT// Текущее состояние реле
    int TEMP_CURENT_ANALOG// Показания с АЦП 
    int TIMER_STOP false// ?
    //

    //_Timer()
    int Timer LOW;
    unsigned long currentTime;
    unsigned long loopTime;
    //

    //int TEMP_ARRAY[4] = {88,130,150}; // напряжение ацп [отключение, включение, перегрев]

    // Константы для вентилятора охлаждения
    const int   LOW_COLING_FAN 2;
    const 
    int  HIGH_COLING_FAN 3;
    const 
    int ERROR_COLING_FAN 4;

    int _Timer(int lint h// Возвращет 5 после времени 'l' и 10 после времени 'h', если 'l' и 'h' = -1 то останавливаем таймер
      
    {
       
    /* if (l == -1 && h == -1) 
        {
        TIMER_STOP = true;
        return -1;
        }
        else if (TIMER_STOP = true) return -1; // не выполняем таймер
        */ 
      
    currentTime millis();                      
      if(
    currentTime >= (loopTime l) && (Timer != HIGH)){ //                  
        
    loopTime currentTime;
        
    Timer HIGH;
        
    //digitalWrite(DIGITAL_LED_PIN, LOW) ;
        
    return 5;
      }
        if(
    currentTime >= (loopTime h) && (Timer HIGH)){ //                  
        
    loopTime currentTime;
        
    Timer LOW;
         
    //digitalWrite(DIGITAL_LED_PIN, HIGH);
        
    return 10;
       }
    }

    int _TempMonitoring(int adc// Считываем ацп указанного вывода
    {
      if (
    adc 150 
      {
      
    _RelayColingFan(ERROR_COLING_FAN); // Перегрев
      
    return ERROR_COLING_FAN;
      }  
      if (
    adc 130
      { 
      
    _RelayColingFan(HIGH_COLING_FAN); // Включаем
      
    return HIGH_COLING_FAN;
      }
      if (
    adc 80)
      {
      
    _RelayColingFan(LOW_COLING_FAN); // Выключаем
      
    return LOW_COLING_FAN;
      }
    }

    void _RelayColingFan(int atr)
    {
      switch (
    atr)
      {
        case 
    LOW_COLING_FAN// 80C
          
    digitalWrite(DIGITAL_RELAY_PINHIGH); // Выключено
          
    RELAY_CURENT digitalRead(DIGITAL_RELAY_PIN);
          break;
     
        case 
    HIGH_COLING_FAN// 100C 
          
    digitalWrite(DIGITAL_RELAY_PINLOW); // Включено
          
    RELAY_CURENT digitalRead(DIGITAL_RELAY_PIN);
          break; 
        
        case 
    ERROR_COLING_FAN// Перегрев
          
    break;
        
        default: 
    //
        //
        
    break;
      }
    }

    void setup()
    {
      
    Serial.begin(9600); 
      
    pinMode(DIGITAL_RELAY_PINOUTPUT);
    }
     
    void loop()
    {
      if (
    _Timer(1005000) == 10
      {
      
    TEMP_CURENT_ANALOG analogRead(ANALOG_TEMP_PIN); // Считываем температуру каждые 5 сек
      
    Serial.println(TEMP_CURENT_ANALOG);
      }
      
    _TempMonitoring(TEMP_CURENT_ANALOG);

    Последний раз редактировалось Oleg_33; 07.01.2015 в 17:41.

Страница 3 из 18 ПерваяПервая 12345678913 ... ПоследняяПоследняя

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

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

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

Ваши права

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