Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19
  1. #1
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    177

    Вопрос Панель от LG LAC6800R к LPT

    Имеется панель от магнитолы LG LAC6800R:
    Возможно ли ее подключить к ПК через LPT???
    Стоит микросхема PT6524LQ датыш тут:
    http://www.alldatasheet.com/datashee.../PT6524LQ.html
    Из выходов имеем:
    GLK
    Reset
    DO (возможно DI)
    CE
    Power - 5 V
    GND
    Либо через Arduino
    Последний раз редактировалось 496385290; 20.09.2011 в 17:35.

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

    По умолчанию Re: Панель от LG LAC6800R к LPT

    Я подключал подобную панель, даже программку где то здесь выкладывал

  3. #3
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    177

    По умолчанию Re: Панель от LG LAC6800R к LPT

    Цитата Сообщение от Chip Посмотреть сообщение
    Я подключал подобную панель, даже программку где то здесь выкладывал
    Читал, только эмулятор не понял как работает
    http://www.compcar.ru/forum/showthread.php?t=4642
    Последний раз редактировалось 496385290; 20.09.2011 в 17:41.

  4. #4
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    177

    По умолчанию Re: Панель от LG LAC6800R к LPT

    А как распознать какой код какой символ зажигает???

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

    По умолчанию Re: Панель от LG LAC6800R к LPT

    В ручную строить таблицу символов, зажигать по одному

  6. #6
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    177

    По умолчанию Re: Панель от LG LAC6800R к LPT

    Цитата Сообщение от Chip Посмотреть сообщение
    В ручную строить таблицу символов, зажигать по одному
    на сколько сложно строить таблицу?
    И как это делается? какие команды, может быть есть начальный код которым можно по одному символу зажигать?
    Последний раз редактировалось 496385290; 20.09.2011 в 20:20.

  7. #7
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    177

    По умолчанию Re: Панель от LG LAC6800R к LPT

    Вот что из этого получилось:
    Нажмите на изображение для увеличения. 

Название:	1.jpg 
Просмотров:	784 
Размер:	52.4 Кб 
ID:	13068

  8. #8
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    177

    По умолчанию Re: Панель от LG LAC6800R к LPT

    нужна помощь умельцев.
    скетч написан ногой.
    из него работает дисплей и кнопки. Нужно добавить сюда правильно энкодер. Как добавил результата естественно не получил
    Помогите разобраться
    PHP код:
    #define LIMIT 10 //предел погрешности сопротивления

    byte bytes[2];
    int res_dt1res_d;
    int encoder0PinA //Вывод А энкодера
    int encoder0PinB //Вывод В энкодера
    int encoder0PinC 4//Вход кнопки энкодера
    int LIGHT_SENS ;   // Вход датчика освещености 
    int JOYSTIK_PIN ;  // Вход для рулевых Кнопок 
    int CLK 12;
    int DI 11;
    int CE 10;
    int ADDR 130;
    byte ReadByte[8];
    int i;

    unsigned long math_time,old_time,real_time;

    void setup()
    {
      
    pinMode(CLKOUTPUT);
      
    pinMode(DIOUTPUT);
      
    pinMode(CEOUTPUT);
      
    pinMode(encoder0PinAINPUT);   
      
    digitalWrite(encoder0PinAHIGH);     // подключить подтягивающий резистор  
      
    pinMode(encoder0PinBINPUT);   
      
    digitalWrite(encoder0PinBHIGH);    // подключить подтягивающий резистор 
      
    pinMode(encoder0PinCINPUT);   
      
    digitalWrite(encoder0PinCHIGH);    // подключить подтягивающий резистор  
      
      
    attachInterrupt(0doEncoderAFALLING);  // настроить прерывание interrupt 0 на pin 2  
      
    attachInterrupt(1doEncoderBFALLING);  // настроить прерывание interrupt 0 на pin 3 
      
    Serial.begin(115200); // настроить скорость com порта

      
    digitalWrite(CLKLOW);
      
    digitalWrite(DILOW);
      
    digitalWrite(CELOW);
      
    delay(1);
    }
    //===================================================
    void loop()
    {
     
    hear();
     
    ReadDisplay();
     
    Encoder();
     
    delay(10);
    }
    //==================================================
    void Send_Adress()
    {
    Byte_Out(DICLKADDR);
    delayMicroseconds(5);
    digitalWrite(CEHIGH);
    }
    //==================================================
    void Byte_Out(uint8_t DIuint8_t CLKbyte val)
    {
    int idx;
    for (
    idx 0idx 8idx++)
    {
    delayMicroseconds(10);
    if (((
    val << idx) & B10000000) == 128digitalWrite(DIHIGH); else digitalWrite(DILOW);
    // digitalWrite(DI, val & (1 << idx)); /
    digitalWrite(CLKHIGH); // педний фронт синхроимульса
    delayMicroseconds(15);
    digitalWrite(CLKLOW); // задний фронт синхроимульса
    }
    }
    //==================================================
    void hear()
    {

    res_d analogRead(JOYSTIK_PIN); // прочитать данные АЦП
    delay(50);
    res_dt1 analogRead(JOYSTIK_PIN); // прочитать данные АЦП
    //old_time = millis();
    /*math_time = 0;
    while(math_time < 300 && (res_dt1 > res_d-LIMIT && res_dt1 < res_d+LIMIT ))
    {
    //real_time = millis(); //получить реальное время
    math_time = real_time - old_time; //считаем длительность нажатия
    res_dt1 = analogRead(JOYSTIK_PIN); // прочитать данные АЦП
    }
    */
        
    if (abs(res_dt1-res_d)<=20 and res_dt1<1000 //если нет дребезга и что-то есть
         

            
    bytes[0] = res_dt1 255;          // преобразовать в 2-байта  
            
    bytes[1] = (res_dt1 768) >> 8;
          if ((
    bytes[1]>=-3) || (bytes[1]<=-7))    
          {
            
    Serial.writebytes,2); // отправить прочитаное значение компьютеру 
            
    delay(10);
            
    Serial.flush();        
          }
         }   
          
    /*
    if( math_time > 50) //если нет дребезга то короткое нажатие
    {
      bytes[0] = res_d & 255; // преобразовать в 2-байта
      bytes[1] = (res_d & 768) >> 8;
      if (bytes[1]==1) // выделяем полезную информацию
       {
        Serial.write( bytes,2); // отправить прочитаное значение компьютеру
        delay(10);
        Serial.flush();  
       }
    }*/
    }
    //===============================================
    void ReadDisplay()
    {
    if (
    Serial.available() > 7)
    {
    for (
    08i++)
    {
    (
    ReadByte[i]) = Serial.read() ; // принимаем данные с компа в массив
    }
    Serial.flush(); //очистить входной буфер USB

    Send_Adress(); // отправляем адрес устройства

    for (08i++)
    {
    Byte_Out(DICLKReadByte[i]); //отправляем данные в шину в шину
    }
    digitalWrite(CELOW); // запретить прием данных подчиненым
    }
    delay(1);
    }
    //*******************Центральная кнопка***********************
    void Encoder()  
    {    
     if(
    digitalRead(encoder0PinC)==LOW
       {
         
    bytes[1]=8;
          
    Serial.writebytes,2);  
          while(
    digitalRead(encoder0PinC)==LOW){delay(50);}
           
    bytes[1]=7
       }
    }   
    //*******************обработка прерывания***********************
    void doEncoderA()
    {
    cli();
      if(
    digitalRead(encoder0PinB)==HIGH){bytes[0]=25;}else{bytes[0]=5;} 
          
    bytes[1] = 0;
      
    Serial.writebytes,2);
    sei(); 
    }  
    //*******************обработка прерывания***********************
    void doEncoderB()
    {
    cli();
        if(
    digitalRead(encoder0PinA)==HIGH){bytes[0]=5;}else{bytes[0]=25;}
          
    bytes[1] = 0;
        
    Serial.writebytes,2);
    sei();     


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

    По умолчанию Re: Панель от LG LAC6800R к LPT

    А на компе что за программа? Программа должна различать полученные данные и раскладывать по полкам

  10. #10
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    177

    По умолчанию Re: Панель от LG LAC6800R к LPT

    Цитата Сообщение от Chip Посмотреть сообщение
    А на компе что за программа? Программа должна различать полученные данные и раскладывать по полкам
    на компе программа есть, еще пока сырая но скоро должен доделать. сейчас чтобы писать программу дальше мне энкодер нужно подключить, если есть идеи как добавить эту функцию, поделитесь. как вариант расматриваю изменение передачи 2 байт на 3 допустим.

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Метки этой темы

Ваши права

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