• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Jaki to może być wyświetlacz od wagi kuchennej ?
#1
Question 
Witam serdecznie,

chciałbym podłączyć pod arduino ten wyświetlacz, lecz nie wiem jaak? 
Wyświetlacz wyświetlał wagę itd.. jest tylko jeden układ sterujący na płytce pcb, wyświetlacz jest przezroczysty i między pcb a wyświetlaczem jest jakiś materiał który przepuszcza sygnały, miękka coś ala tasiemka.


Załączone pliki Miniatury
                   
 
Odpowiedź
#2
(01-05-2024, 01:10)Coja napisał(a): Witam serdecznie,

między pcb a wyświetlaczem jest jakiś materiał który przepuszcza sygnały, miękka coś ala tasiemka.

To taka konstrukcja "przewodząca w poprzek" - takie coś sklejone z plasterków - jeden przewodzący, drugi izolacyjny, trzeci przewodzący. czwarty izolacyjny itd... Typowy element pod wyświetlaczami LCD.
W takich urządzenia jak wagi, pralki, kuchenki są specjalizowane wyświetlacze, produkowane specjalnie dla danego urządzenia. Jak przypuszczam ta płytka pod wyświetlaczem to cała elektronika tej wagi, też specjalizowana. Poza nią są tylko tensometry (czujniki siły), bateria i przyciski.
Raczej nie podłączysz tego do arduino - takie "surowe" wyświetlacze LCD wymagają sterowania przebiegiem zmiennym, o dziwnych napięciach, potrzebna jest płytka z polami w odpowiednich miejscach, przełącza się faze sygnału na poszczególnych "pinach". Czasem wystarczy dotknąć tych pól kontaktowych wyświetlacza by "zaświeciły" się poszczególne elementy.
 
Odpowiedź
#3
Czyli reasumując nie da się nic zrobić na takim wyświetlaczu?
Dziwne, że zasilanie było z pastylki płaskiej baterii 3,3V i jest przebieg zmienny o.O

Ogólnie wyświetlacz cos tam pokazywał ale musiałem ciągle zmieniać z + i - różne piny i wtedy świecił.
Wyświetlacz ma 15 pinów i myślałem, że jest to np. takie coś:
https://botland.com.pl/wyswietlacze-alfa...d_source=1
 
Odpowiedź
#4
(01-05-2024, 18:44), Coja napisał(a): Czyli reasumując nie da się nic zrobić na takim wyświetlaczu?
Dziwne, że zasilanie było z pastylki płaskiej baterii 3,3V i jest przebieg zmienny o.O

Ogólnie wyświetlacz cos tam pokazywał ale musiałem ciągle zmieniać z + i - różne piny i wtedy świecił.
Wyświetlacz ma 15 pinów i myślałem, że jest to np. takie coś:
https://botland.com.pl/wyswietlacze-alfa...d_source=1

Tamten wyświetlacz w sklepie do "surowy" wyświetlacz razem ze sterownikiem - to on załatwia te wszystkie dziwne sygnały, udostępniając interfejs pasujący do procka. Tutaj masz datasheet do sterownika 44780 - tego, który siedzi w tym sklepowym wyświtlaczu. Na stronie 38 są pokazane przebiegi to sterowania samego "surowego" LCD. Trochę trudno byłoby wygenerować coś takiego z samego procka - trzeba by użyć trochę dodatkowej elektroniki i skomplikowany program sterujący 15 przebiegami. Jeśli wyświetlacz LCD jest nie multipleksowany - (ma 1 pin na każdy widoczny element/segment) to jeszcze jakoś idzie połączyć - jeden przebieg na podłoże, taki sam w fazie (segment wyłączony) lub w przeciwfazie (segment włączony - bramka XOR) na poszczególne piny. Stała polaryzacja może uszkodzić LCD. Zdecydowanie łatwiej sterować wyświetlaczami LED.
 
Odpowiedź
#5
https://www.instructables.com/Direct-Rea...urpose-IO/

Ogólnie jeden gościu coś ogarnął odczyt ale jak odwrócić coś tego? Nie rozumiem też o co chodzi z tymi COM'ami, tam ma być ciągle połowa napięcia a jak ma być ON wtedy ma przełączyć całkowicie na OFF a potem dać już full napięcie ? Nie kumam tego zupełnie, działam aktualnie na esp32 może tutaj coś można więcej uzyskać?
 
Odpowiedź
#6
(02-05-2024, 18:05)Coja napisał(a): https://www.instructables.com/Direct-Rea...urpose-IO/

Ogólnie jeden gościu coś ogarnął odczyt ale jak odwrócić coś tego? Nie rozumiem też o co chodzi z tymi COM'ami, tam ma być ciągle połowa napięcia a jak ma być ON wtedy ma przełączyć całkowicie na OFF a potem dać już full napięcie ? Nie kumam tego zupełnie, działam aktualnie na esp32 może tutaj coś można więcej uzyskać?

Zbadał przebiegi na wyświetlaczu - już sam fakt, że trzeba podawać 3 poziomy napięcia oznacza, że podłączenie do procka nie będzie banalne (jakieś rezystory będą potrzebne i więcej pinów procka niż ma wyświetlacz), a sterowanie do odtworzenia takich przebiegów będzie musiało cały czas działać (przerwania ?).
Jest tam zdanie:
Cytat:Notice, only one COM signal is active at any given time, and the LCD segment line will control different segments, depending upon which of the three COM lines is active. To enable a segment, the segment line needs to be out of phase with the COM line. In other words, if the COM line is HI, the segment line should be LO, and vice-versa.

Ogólnie masz piny COM i segmenty - coś jak w wyświetlaczach LED jest wspólna anoda/katoda i poszczególne segmenty. 4 piny COM oznaczają, że wyświetlacz jest podzielony na obszary, I sygnały muszą być cały czas zmienne - dany element wyświetlacza "świeci się" gdy na oba końce dostaje przeciwne sygnały (HI-LO lub LO-HI) a jest zgaszony gdy to samo (HI-HI lub LO-LO). Trzeci poziom napięcia pewnie jest potrzebny do wysterowania aktualnie nieaktywnych obszarów (bo naraz tylko jeden możemy aktywnić i zaraz trzeba prześć na następny). Z LEDami jest łatwiej bo to diody - przewodzą tylko w jedną strone i można je spolaryzować zaporowo bez konsekwencji. Elementy wyświetlacza LCD swiecą się w obie strony a wręcz trzeba je przełączać. Pewnie tylko potrzebne jest napięcie wyżasze niż pewnien limit - dzięki temu w ogóle daje się to multipleksować.
 
Odpowiedź
#7
Niby coś tam już ogarnąłem, lecz zastanawiam mnie jedna rzecz.
Chciałem odpalić tylko jeden segment(ten jeden świeci się prawidłowo) na jednym COM'ie lecz na innych COM'ach również on się zapala, w sensie jest wyszarzony ( bardzo go lekko widać, pod kątem coraz bardziej..) Jak to ogarnąć? Źle napisałem kod ? Może za szybko ?
Do Comów zastosowałem 3 stany. OFF, ON/OFF i ON tak jak gość w tutorialu. (W sumie sam nie wiem) Sprawdziłem też które COMY odpalają które segmenty( załączniki )(bardzo dziwne ułożone są).

Tak swoją droga, pomoże mi taki Analizator stanów logicznych zobaczyć jak są podane sygnały do mojej wagi?
ANALIZATOR STANÓW LOGICZNYCH Saleae 24MH 8 KANAŁÓW

Kod:
#define COM1 16
#define COM1_R 4
#define COM2 17
#define COM2_R 22
#define COM3 18
#define COM3_R 21
#define COM4 19
#define COM4_R 2
#define TIME 150

#define S1 23
#define S2 5
#define S3 13

unsigned long miganieLED1 = 5000;
unsigned long miganieLED2 = 2000;

unsigned long aktualnyCzas = 0;
unsigned long zapamietanyCzasLED1 = 0;
unsigned long zapamietanyCzasLED2 = 0;
int stanLED1 = LOW;
int stanLED2 = LOW;



void setup() {
  // initialize digital pin GPIO18 as an output.
  pinMode(COM1, OUTPUT);
  pinMode(COM1_R, OUTPUT);
  pinMode(COM2, OUTPUT);
  pinMode(COM2_R, OUTPUT);
  pinMode(COM3, OUTPUT);
  pinMode(COM3_R, OUTPUT);
  pinMode(COM4, OUTPUT);
  pinMode(COM4_R, OUTPUT);

  pinMode(S3, OUTPUT);
  pinMode(15, OUTPUT);
  pinMode(14, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(26, OUTPUT);
  pinMode(27, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(25, OUTPUT);

  pinMode(S1, OUTPUT);

  pinMode(32, OUTPUT);
  pinMode(S2, OUTPUT);
   
    digitalWrite(S3, LOW); //s1
  digitalWrite(15, LOW); //s1
  digitalWrite(14, LOW); //s1
  digitalWrite(12, LOW); //s1
  digitalWrite(26, LOW); //s1
  digitalWrite(27, LOW); //s1
  digitalWrite(33, LOW); //s1
  digitalWrite(25, LOW); //s1
  digitalWrite(S1, LOW); //s1
  digitalWrite(32, LOW); //s1
  digitalWrite(S2, LOW); //s1

  digitalWrite(COM1, HIGH); //com 1
  digitalWrite(COM2, HIGH); //com 1
  digitalWrite(COM3, HIGH); //com 1
  digitalWrite(COM4, HIGH); //com 1

  digitalWrite(COM1_R, LOW); //com 1
  digitalWrite(COM2_R, LOW); //com 1
  digitalWrite(COM3_R, LOW); //com 1
  digitalWrite(COM4_R, LOW); //com 1
}

// the loop function runs over and over again forever
void loop() {
    digitalWrite(COM4, HIGH); // COM 4 ON/OFF
    digitalWrite(COM4_R, LOW);
    digitalWrite(COM1, LOW); // COM 1 OFF
    digitalWrite(COM1_R, LOW);

    digitalWrite(S2, HIGH);

  delayMicroseconds(TIME);

    digitalWrite(S2, LOW);
    digitalWrite(COM1, HIGH); // COM 1 ON
    digitalWrite(COM1_R, HIGH);

  delayMicroseconds(TIME);

    digitalWrite(S2, LOW);
    digitalWrite(COM1, HIGH); // COM 1 ON/OFF
    digitalWrite(COM1_R, LOW);
    digitalWrite(COM2, LOW); // COM 2 OFF
    digitalWrite(COM2_R, LOW);

  delayMicroseconds(TIME);

    digitalWrite(COM2, HIGH); // COM 2 ON
    digitalWrite(COM2_R, HIGH);

  delayMicroseconds(TIME);

    digitalWrite(COM2, HIGH); // COM 2 ON/OFF
    digitalWrite(COM2_R, LOW);
    digitalWrite(COM3, LOW); // COM 3 OFF
    digitalWrite(COM3_R, LOW);

  delayMicroseconds(TIME);

    digitalWrite(COM3, HIGH); // COM 3 ON
    digitalWrite(COM3_R, HIGH);

  delayMicroseconds(TIME);

    digitalWrite(COM3, HIGH); // COM 3 ON/OFF
    digitalWrite(COM3_R, LOW);
    digitalWrite(COM4, LOW); // COM 4 OFF
    digitalWrite(COM4_R, LOW);

  delayMicroseconds(TIME);

    digitalWrite(COM4, HIGH); // COM 4 ON
    digitalWrite(COM4_R, HIGH);

  delayMicroseconds(TIME);
  /*
  digitalWrite(COM0, HIGH);
  digitalWrite(COM1, LOW);
  digitalWrite(COM2, LOW);
  digitalWrite(COM3, LOW);
    digitalWrite(S1, LOW); //s1
    digitalWrite(S2, LOW); //s1
    digitalWrite(S3, HIGH); //s1
  delay(3);
    digitalWrite(S1, HIGH); //s1
    digitalWrite(S2, HIGH); //s1
    digitalWrite(S3, HIGH); //s1
    allComOff();
  delay(1);
  digitalWrite(COM0, LOW);
  digitalWrite(COM1, HIGH);
  digitalWrite(COM2, LOW);
  digitalWrite(COM3, LOW);
    digitalWrite(S1, LOW); //s1
      digitalWrite(S2, LOW); //s1
      digitalWrite(S3, HIGH); //s1
  delay(3);
    digitalWrite(S1, HIGH); //s1
    digitalWrite(S2, HIGH); //s1
    digitalWrite(S3, HIGH); //s1
    allComOff();
  delay(1);
  digitalWrite(COM0, LOW);
  digitalWrite(COM1, LOW);
  digitalWrite(COM2, HIGH);
  digitalWrite(COM3, LOW);
    digitalWrite(S1, LOW); //s1
    digitalWrite(S2, LOW); //s1
    digitalWrite(S3, HIGH); //s1
  delay(3);
    allComOff();
    digitalWrite(S1, LOW); //s1
    digitalWrite(S2, LOW); //s2
    digitalWrite(S3, HIGH); //s2
  delay(1);
  digitalWrite(COM0, LOW);
  digitalWrite(COM1, LOW);
  digitalWrite(COM2, LOW);
  digitalWrite(COM3, HIGH);
    digitalWrite(S1, HIGH); //s1
    digitalWrite(S2, HIGH); //s2
    digitalWrite(S3, HIGH); //s2
  delay(3);
    digitalWrite(S1, LOW); //s1
    digitalWrite(S2, LOW); //s2 <---
    digitalWrite(S3, HIGH); //s2 <---
    allComOff();
  delay(3);
  */
}
void allComOff()
{
  digitalWrite(COM1, LOW);
  digitalWrite(COM2, LOW);
  digitalWrite(COM3, LOW);
  digitalWrite(COM4, LOW);
}

void allon() {
  digitalWrite(13, HIGH); //s1
  digitalWrite(15, HIGH); //s1
  digitalWrite(14, HIGH); //s1
  digitalWrite(12, HIGH); //s1
  digitalWrite(26, HIGH); //s1
  digitalWrite(27, HIGH); //s1
  digitalWrite(33, HIGH); //s1
  digitalWrite(25, HIGH); //s1
  digitalWrite(32, HIGH); //s1
}

void alloff() {
  digitalWrite(13, LOW); //s1
  digitalWrite(15, LOW); //s1
  digitalWrite(14, LOW); //s1
  digitalWrite(12, LOW); //s1
  digitalWrite(26, LOW); //s1
  digitalWrite(27, LOW); //s1
  digitalWrite(33, LOW); //s1
  digitalWrite(25, LOW); //s1
  digitalWrite(32, LOW); //s1
}


Załączone pliki Miniatury
                               
 
Odpowiedź
#8
(05-05-2024, 19:15)Coja napisał(a): Niby coś tam już ogarnąłem, lecz zastanawiam mnie jedna rzecz.
Chciałem odpalić tylko jeden segment(ten jeden świeci się prawidłowo) na jednym COM'ie lecz na innych COM'ach również on się zapala, w sensie jest wyszarzony ( bardzo go lekko widać, pod kątem coraz bardziej..) Jak to ogarnąć? Źle napisałem kod ? Może za szybko ?
Do Comów zastosowałem 3 stany. OFF, ON/OFF i ON tak jak gość w tutorialu. (W sumie sam nie wiem) Sprawdziłem też które COMY odpalają które segmenty( załączniki )(bardzo dziwne ułożone są).

Tak swoją droga, pomoże mi taki Analizator stanów logicznych zobaczyć jak są podane sygnały do mojej wagi?
ANALIZATOR STANÓW LOGICZNYCH Saleae 24MH 8 KANAŁÓW

Sygnały sterujące takim wyświetlaczem są wielostanowe - bardziej byłby wskazany oscyloskop wielokanałowy. Nie musi być szybki, ale i tak to dużo droższa zabawka.
Trochę dziwie się, po co ci sterowanie takim wyświetlaczem - szczególnie, że jest on zostawiłęś go ciągle podpiętego do elektroniki tej wagi. Na tej stronie, którą zapodałeś, gość zajmuje się chyba tylko czytaniem zawartości wyświetlacza.
 
Odpowiedź
#9
Nie nie, starej elektroniki nie ma. Jest podpięty tylko mój eps32.
Tak, w tutorialu gości odczytuje z takiego podobnego jak mój wyświetlacz dane. Ja chce odwrotnie, chce zapodać mu dane do wyświetlacza.

W bardzo dużym skrócie chce przesłać wagę do modułu bluetooth ale też chce mieć ją wyświetloną na wyświetlaczu a później do mojej aplikacji. Myślałem, że tak po prostu będzie najszybciej to osiągnąć.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości