26

Re: управление драйвером жк lc75823

no

27

Re: управление драйвером жк lc75823

#define CE  9
#define CL  8
#define DI  7

int w;

void setup() {
  Serial.begin(9600);
  pinMode(CE, OUTPUT);
  pinMode(CL, OUTPUT);
  pinMode(DI, OUTPUT);
  digitalWrite(CE,LOW);
  digitalWrite(CL,LOW);
  delay(200);
  write_byte(0x41, 0b1010);

}

void loop() {
  // put your main code here, to run repeatedly:

}

void write_byte(byte addr, byte contr){
  /// addr 8 bit
     digitalWrite(CE,LOW);
   for(int i = 7; i >= 0; i--){
     digitalWrite(CL,LOW);
     digitalWrite(DI, (addr >> i) & 1);  
     digitalWrite(CL,HIGH);
     } 
     digitalWrite(CL,LOW);
     digitalWrite(CE,HIGH);
 
// data 156 bit
     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);
     digitalWrite(DI, (1 >> i) & 1);
     digitalWrite(CL,HIGH);
     } 
     
// control data 4 bit     
for(int i = 3; i >= 0; i--){
     digitalWrite(CL,LOW);
     digitalWrite(DI, (contr >> i) & 1);
     digitalWrite(CL,HIGH);
     } 
     digitalWrite(CE,LOW);
     digitalWrite(CL,LOW);
     delay(10);
  }  

28

Re: управление драйвером жк lc75823

нет

29

Re: управление драйвером жк lc75823

#define CE  9
#define CL  8
#define DI  7

int w;

void setup() {
  Serial.begin(9600);
  pinMode(CE, OUTPUT);
  pinMode(CL, OUTPUT);
  pinMode(DI, OUTPUT);
  digitalWrite(CE,LOW);
  digitalWrite(CL,LOW);
  delay(200);
  write_byte(0x41, 0b1010);

}

void loop() {
  // put your main code here, to run repeatedly:

}

void write_byte(byte addr, byte contr){
  /// addr 8 bit
     digitalWrite(CE,LOW);
   for(int i = 7; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (addr >> i) & 1);  
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(CE,HIGH);
 
// data 156 bit
     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (1 >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     
// control data 4 bit     
for(int i = 3; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (contr >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CE,LOW);
     digitalWrite(CL,LOW);
     delay(10);
  }  

30

Re: управление драйвером жк lc75823

нет, может попробовать на основе скетча Jose Luis Monteiro

31

Re: управление драйвером жк lc75823

Давайте еще сделаем пару попыток

#define CE  9
#define CL  8
#define DI  7

int w;

void setup() {
  Serial.begin(9600);
  pinMode(CE, OUTPUT);
  pinMode(CL, OUTPUT);
  pinMode(DI, OUTPUT);
  digitalWrite(CE,LOW);
  digitalWrite(CL,LOW);
  delay(200);
  write_byte(0x41, 0b1110);

}

void loop() {
  // put your main code here, to run repeatedly:

}

void write_byte(byte addr, byte contr){
  /// addr 8 bit
     digitalWrite(CE,LOW);
   for(int i = 7; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (addr >> i) & 1);  
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(CE,HIGH);
 
// data 156 bit
     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (1 >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     
// control data 4 bit     
for(int i = 3; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (contr >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CE,LOW);
     digitalWrite(CL,LOW);
     delay(10);
  }  

32

Re: управление драйвером жк lc75823

По коду все вроде верно, но пока не понятно, почему не работает

33

Re: управление драйвером жк lc75823

не работает

34

Re: управление драйвером жк lc75823

#define CE  9
#define CL  8
#define DI  7

int w;

void setup() {
  Serial.begin(9600);
  pinMode(CE, OUTPUT);
  pinMode(CL, OUTPUT);
  pinMode(DI, OUTPUT);
  digitalWrite(CE,LOW);
  digitalWrite(CL,LOW);
  delay(200);
  write_byte(0x41, 0b1110);

}

void loop() {
  // put your main code here, to run repeatedly:

}

void write_byte(byte addr, byte contr){
  /// addr 8 bit
     digitalWrite(CE,LOW);
   for(int i = 0; i <= 7; i++){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (addr >> i) & 1); 
     //Serial.print((addr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(CE,HIGH);
 
// data 156 bit
     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (1 >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     
// control data 4 bit     
for(int i = 3; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (contr >> i) & 1);
  //   Serial.print((contr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CE,LOW);
     digitalWrite(CL,LOW);
     delay(10);
  }  

35

Re: управление драйвером жк lc75823

могу обрадовать, оно ожило, все сигменты стрёрлись

36

Re: управление драйвером жк lc75823

и прямо так стёрлись, что раньше под углом можно было разглядеть какие цифры где стоят, а сейчас прямо чистый, черный дисплей

37

Re: управление драйвером жк lc75823

Тогда вместо 1 на все сегменты пошлем 0

#define CE  9
#define CL  8
#define DI  7

int w;

void setup() {
  Serial.begin(9600);
  pinMode(CE, OUTPUT);
  pinMode(CL, OUTPUT);
  pinMode(DI, OUTPUT);
  digitalWrite(CE,LOW);
  digitalWrite(CL,LOW);
  delay(200);
  write_byte(0x41, 0b1110);

}

void loop() {
  // put your main code here, to run repeatedly:

}

void write_byte(byte addr, byte contr){
  /// addr 8 bit
     digitalWrite(CE,LOW);
   for(int i = 0; i <= 7; i++){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (addr >> i) & 1); 
     //Serial.print((addr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(CE,HIGH);
 
// data 156 bit
     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (0 >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     
// control data 4 bit     
for(int i = 3; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (contr >> i) & 1);
  //   Serial.print((contr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CE,LOW);
     digitalWrite(CL,LOW);
     delay(10);
  }  

38

Re: управление драйвером жк lc75823

Или так

#define CE  9
#define CL  8
#define DI  7

int w;

void setup() {
  Serial.begin(9600);
  pinMode(CE, OUTPUT);
  pinMode(CL, OUTPUT);
  pinMode(DI, OUTPUT);
  digitalWrite(CE,LOW);
  digitalWrite(CL,LOW);
  delay(200);
  write_byte(0x41, 0b1010);

}

void loop() {
  // put your main code here, to run repeatedly:

}

void write_byte(byte addr, byte contr){
  /// addr 8 bit
     digitalWrite(CE,LOW);
   for(int i = 0; i <= 7; i++){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (addr >> i) & 1); 
     //Serial.print((addr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(CE,HIGH);
 
// data 156 bit
     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (1 >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     
// control data 4 bit     
for(int i = 3; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (contr >> i) & 1);
  //   Serial.print((contr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CE,LOW);
     digitalWrite(CL,LOW);
     delay(10);
  }  

39

Re: управление драйвером жк lc75823

по прежнему, сегменты не появляются, а исчезают

40

Re: управление драйвером жк lc75823

#define CE  9
#define CL  8
#define DI  7

int w;

void setup() {
  Serial.begin(9600);
  pinMode(CE, OUTPUT);
  pinMode(CL, OUTPUT);
  pinMode(DI, OUTPUT);
  digitalWrite(CE,LOW);
  digitalWrite(CL,LOW);
  delay(200);
  write_byte(0x41, 0b1000);

}

void loop() {
  // put your main code here, to run repeatedly:

}

void write_byte(byte addr, byte contr){
  /// addr 8 bit
     digitalWrite(CE,LOW);
   for(int i = 0; i <= 7; i++){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (addr >> i) & 1); 
     //Serial.print((addr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(CE,HIGH);
 
// data 156 bit
     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (0 >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     
// control data 4 bit     
for(int i = 3; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (contr >> i) & 1);
  //   Serial.print((contr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CE,LOW);
     digitalWrite(CL,LOW);
     delay(10);
  }  

41

Re: управление драйвером жк lc75823

опять стирает

42

Re: управление драйвером жк lc75823

Еще попробуйте так

write_byte(0x41, 0b0000);

43

Re: управление драйвером жк lc75823

теперь где располагаются сегменты видно, но ни один не загорелся

44

Re: управление драйвером жк lc75823

#define CE  9
#define CL  8
#define DI  7

int w;

void setup() {
  Serial.begin(9600);
  pinMode(CE, OUTPUT);
  pinMode(CL, OUTPUT);
  pinMode(DI, OUTPUT);
  digitalWrite(CE,LOW);
  digitalWrite(CL,LOW);
  delay(200);
  write_byte(0x41, 0b0000);

}

void loop() {
  // put your main code here, to run repeatedly:

}

void write_byte(byte addr, byte contr){
  /// addr 8 bit
     digitalWrite(CE,LOW);
   for(int i = 0; i <= 7; i++){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (addr >> i) & 1); 
     //Serial.print((addr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(CE,HIGH);
 
// data 156 bit
     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (1 >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     
// control data 4 bit     
for(int i = 3; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (contr >> i) & 1);
  //   Serial.print((contr >> i) & 1); 
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     } 
     digitalWrite(CE,LOW);
     digitalWrite(CL,LOW);
     delay(10);
  }  

45 (2024-03-18 23:55:27 отредактировано vladbuharkin20)

Re: управление драйвером жк lc75823

http://forum.rcl-radio.ru/uploads/images/2024/03/50d91a14b18a31a732cb337d947e6a09.jpeg загорелась левая

46

Re: управление драйвером жк lc75823

Все верно, должен гореть только первые 16 сегментов и последний

47

Re: управление драйвером жк lc75823

отлично, уже есть успехи. нужно я так полагаю сделать что то похожее на шрифт

48

Re: управление драйвером жк lc75823

Эти строки определяют какой сегмент должен гореть какой нет

     for(int i = 155; i >= 0; i--){
     digitalWrite(CL,LOW);delayMicroseconds(10);
     digitalWrite(DI, (1 >> i) & 1);
     Serial.print((1 >> i) & 1);
     digitalWrite(CL,HIGH);delayMicroseconds(10);
     }

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

49 (2024-03-19 00:03:10 отредактировано vladbuharkin20)

Re: управление драйвером жк lc75823

я уже определил вчера какой 156 биты за какой сегмент отвечают

50

Re: управление драйвером жк lc75823

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