Тема: Драйвер жк PCF8566T+arduino

Приветствую. Имею на руках приборную доску от ваз2115. На ней имеется 2 интересных жк-диспеля, которые в свою очередь управляются двумя драйверами PCF8566T. Хотелось бы подружить их с ардуино, чтобы в дальнейшем выводить нужную информацию, на нужные места на дисплее. Линии даных SDA и SCL у двух микросхем подсоединены параллельно. https://forum.rcl-radio.ru/uploads/images/2026/09/c004c32708bacb335db31d592e265571.jpeg https://forum.rcl-radio.ru/uploads/images/2026/09/f89d695cb1b63da285ddd92982fd2a56.jpeg

2

Re: Драйвер жк PCF8566T+arduino

Нашел код. Возможно на его базе можно запустить жк-дисплей.

#include <Wire.h>

#define DRIVER_ADDR 0x3E  // 7 bit add

#define PCF_CONTINUE (1 << 7)

#define PCF_CMD_SET_MODE ((1 << 6))
#define PCF_MODE_LOW_POWER (1 << 4)
#define PCF_MODE_ENABLE (1 << 3)
#define PCF_MODE_HALF_BIAS (1 << 2)
#define PCF_MODE_THIRD_BIAS 0
#define PCF_MODE_MULTIPLEX_4 0 // Multiplex 1:4
#define PCF_MODE_STATIC 1


//Deze werkt!!!! 

//#include <Wire.h>                  // I2C Master lib for ATTinys which use USI


// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  //pinMode(0, OUTPUT); //LED on Model B
  pinMode(1, OUTPUT); //LED on Model A
  pinMode(2, INPUT_PULLUP); //TWI
  pinMode(0, INPUT_PULLUP); //TWI
   
  Wire.begin();                    // initialize I2C lib
  delay(1000);
   
}


// the loop routine runs over and over again forever:
  char start=0;
void loop() {

  if ( start ==0 )  // do one not in the init wait power stable
  {
    start =1;
  Wire.beginTransmission(DRIVER_ADDR);
  Wire.write(0x60 |PCF_CONTINUE);     // subadd device
  Wire.write(0x48 |PCF_CONTINUE );    //  0x48 , enable driver 1:4
  Wire.write(0);                      // clear pointer
  Wire.endTransmission();            // Send 1 byte to the slave 
  
  }
//  digitalWrite(1, HIGH);      // drive led high
//  delay(1000);               // wait for a second

  Wire.beginTransmission(DRIVER_ADDR);
  Wire.write(0x60 |PCF_CONTINUE);   //  subadd device
  Wire.write(0x00);                 //  clear pointer
 //  for (int i = 0; i < 12; i++) {       // send 12 byte 24 x 4 
Wire.write(0xaa);// S0 0xaa weergeven op display
delay(10);
//Wire.write(0xaa);// S1 0xaa weergeven op display
delay(10);
//Wire.write(0xaa);// S2 0xaa weergeven op display
delay(10);
//Wire.write(0xaa);// S3 0xaa weergeven op display
delay(10);
//Wire.write(0xaa);// S4 0xaa weergeven op display
delay(10);
//Wire.write(0xaa);// S5 0xaa weergeven op display
delay(10);
//Wire.write(0xaa);// S6 0xaa weergeven op display
delay(10);

// 0x55   //  clears display
/*
Wire.write(0xaa);// S7 0xaa weergeven op display
delay(10);
Wire.write(0xaa);// S8 0xaa weergeven op display
delay(10);
Wire.write(0xaa);// S9 0xaa weergeven op display
delay(10);
Wire.write(0xaa);// S10 0xaa weergeven op display
delay(10);
Wire.write(0xaa);// S11 0xaa weergeven op display
delay(10);
Wire.write(0xaa);// S12 0xaa weergeven op display
delay(10);
Wire.write(0xaa);// S13 0xaa weergeven op display
delay(10);
*/
//      }
  Wire.endTransmission();  

//  digitalWrite(1, LOW);     // drive LED low
  delay(500);               // wait for a second
  
  Wire.beginTransmission(DRIVER_ADDR);
  Wire.write(0x60 |PCF_CONTINUE);                 // 
  Wire.write(0x00);           
  for (int i = 0; i < 12; i++) {
         Wire.write(0x55); // 0x55   //  empty display
        delay(10);
      }
  Wire.endTransmission();  
}

Re: Драйвер жк PCF8566T+arduino

Вот что выводит дисплейhttps://forum.rcl-radio.ru/uploads/images/2026/09/bf486c19065493e5f0ed6c8627ecf7cb.jpeg

4

Re: Драйвер жк PCF8566T+arduino

Сканером портов проверьте адрес микросхемы - https://forum.rcl-radio.ru/viewtopic.php?id=64

он должен совпадать с - #define DRIVER_ADDR 0x3E  // 7 bit add