Показано с 1 по 10 из 1174

Древовидный режим

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

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

    Выкладываю программу для дублирования параметров автомобильной панели приборов, написаную Urvin . Мной был подправлен только код для arduino. Обработку прерывания для одометра еще не успел поправить
    Программу скачиваем здесь
    Нажмите на изображение для увеличения. 

Название:	modest.jpg 
Просмотров:	10857 
Размер:	49.5 Кб 
ID:	6384

    Перед использованием программы совместно с arduino необходимо изменить следующие настройки (файл torpedo.ini)
    Код:
    [usb]
    useusb=false
    ...
    [com]
    name=Com#
    baudrate=9600
    parity=0
    flowcontrol=0
    databits=8
    stopbits=1
    DTR=false
    RTS=false
    Com# - имя com-порта, на котором работает ардуино. Например, Com4.

    Скетч для Arduino
    PHP код:
    #include <EEPROM.h> 
    // Массив значений по портам 
    byte resultInput[11]; 
    byte i

    void setup() 
    {     
        
    // Обнуление массива значений 
        
    for(i=0i<=10i++) 
          { 
            
    resultInput[i]=0;
          } 
         
        
    // Инициализация цифровых портов 
        
    for(i=2i<=13i++) 
          { 
            
    pinMode(i,INPUT); 
            
    digitalWrite(iHIGH); //Подключить внутренние подтягивающие резисторы
          

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

         
    // привязываем 0-е прерывание к функции interrupt() 
     //   attachInterrupt(0, interrupt, CHANGE); 


    void loop() 

        
    // Сбор данных с пяти АЦП, диапазон значений [0, 255] 
        // 0 - скорость 
        // 1 - тахометр 
        // 2 - температура охлаждающей жидкости 
        // 3 - уровень топлива 
        // 4 - напряжение автомобильной сети 
        
    for(i=0i<=4i++) 
          { 
            
    resultInput[i]=analogRead(i)/4;   
          } 

        
    // Чтение данных одометра из EEPROM 
        
    for(i=0i<=3i++) 
          { 
           
    // resultInput[i+7] = EEPROM.read(i); 
          

         
        
    // Перевод состояний на цифровых входах в общее число 
        // 5 - двоиный код включения лампочек ( 
        // 6 - двоичный код включения лампочек  
        //     + двоичный код включенной передачи (3 старших бита) 
        // 7-10 - текущее значение одометра 

        
    resultInput[5] = digitalRead(2) + 
                 
    digitalRead(3)*
                 
    digitalRead(4)*
                 
    digitalRead(5)*
                 
    digitalRead(6)*16 
                 
    digitalRead(7)*32 
                 
    digitalRead(8)*64
                       
        
    resultInput[6] = digitalRead(9) + 
                 
    digitalRead(10)*
                 
    digitalRead(11)*
                 
    digitalRead(12)*
                 
    digitalRead(13)*16;          

    // Контроль за отключением питания 
            
    if (resultInput[4]<180
            { 
            
    // Запись одометра в энергонезависимую память 
                
    for(i=0i<=3i++) 
                { 
                 
    //     EEPROM.write(i, resultInput[i+7]);    
                

            } 

    // Добавление информации о включенной передаче 
                         
    byte trm=analogRead(5)/4;
                         
    byte gear=0b00100000;       // 1 
                
    if (trm<20)       gear=0;            // N 
                
    else if (trm<60)  gear=0b11100000;   // R 
                
    else if (trm<105gear=0b10100000;   // 5 
                
    else if (trm<145gear=0b10000000;   // 4 
                
    else if (trm<190gear=0b01100000;   // 3 
                
    else if (trm<230gear=0b01000000;   // 2 

                
    resultInput[6] = (resultInput[6] & 0b00011111) | gear// накладываем маску и старшие биты 

                  
    Serial.write(resultInput11);     // Передаем данные из массива в компьютер 
    delay(300);


    //------------------------ Обработка прерываний -----------------------// 
    void interrupt () 


    Схема подключения. При не правильном подключении диодов вы рискуете спалить устройств. По приведенной схеме катоды диодов подключаются к соответствующим индикаторам(лампочкам) со стороны управляющего сигнала. В случаи если индикатор управляется минусом , то в скетче придется проинвертировать соответствующий сигнал.
    Вложение 6388

    Исходник программы для PC
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	CARDUINO_Torpedo.png 
Просмотров:	16123 
Размер:	13.1 Кб 
ID:	6657  
    Вложения Вложения
    Последний раз редактировалось Chip; 19.03.2017 в 02:52.

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

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

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

Ваши права

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