• 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
Wyprowadzenia wyświetlacza LED 8 segmentowy 4 cyfrowy. Test czy działa.
#1
Wyprowadzenia wyświetlacza LED 8 segmentowy 4 cyfrowy. Mam wyświetlacz 3642BS z pięcioma wyprowadzeniami - VCC, SCLK,RCLK,DIO i GND. 

Czyli podłączyłem wyświetlacz pięcioma kabelkami tak:


Wyświetlacz Arduino Uno



1.VCC + pin +5 

2.SCLK + pin 4

3.RCLK + pin 5

4.DIO + pin 6

5.GND + GND
Kod:
/*
 * Author : Ronin
 */
#include <DigitalTube.h>
// DigitalTube::DigitalTube(int sclk, int rclk, int dio)
DigitalTube dis(4, 5, 6);
void setup() {
  dis.begin();
}
void loop() {
  // Show text
  dis.show(' ', ' ', ' ', ' ');
  delay(500);
  dis.show(' ', ' ', ' ', 'H');
  delay(500);
  dis.show(' ', ' ', 'H', 'E');
  delay(500);
  dis.show(' ', 'H', 'E', 'L');
  delay(500);
  dis.show('H', 'E', 'L', 'P');
  delay(500);
  dis.show(' ', ' ', ' ', ' ');
  delay(500);
  dis.show(' ', ' ', ' ', ' ');
  delay(2000);
  for (int i=1000;i>0;i--) {
    dis.print(i); // Show 'i' to display
    delay(1000);
  }
  dis.show('S', 'T', 'O', 'P');
  delay(2000);
}

Kod:
/*
 * Author :Ronin
 */
#include <DigitalTube.h>
// DigitalTube::DigitalTube(int sclk, int rclk, int dio)
DigitalTube dis(4, 5, 6);
void setup() {
  dis.begin();
 
}
void loop() {
 
  delay(5000);
 
  for (int i=1000;i>0;i--) {
    dis.print(i); // Show 'i' to display
    delay(500);
   }
  delay(5000);
}
Jak wstawić przecinek czyli kropkę? Np. 12.34.
Jak  poniższy program przerobić aby działał na moim 8 segmentowym  8 cyfrowym wyświetlaczu?
J
Kod:
#define MAX7219_DIN 5
#define MAX7219_CS  6
#define MAX7219_CLK 7

void initialise()
{
 digitalWrite(MAX7219_CS, HIGH);
 pinMode(MAX7219_DIN, OUTPUT);
 pinMode(MAX7219_CS, OUTPUT);
 pinMode(MAX7219_CLK, OUTPUT);
}

void output(byte address, byte data)
{
 digitalWrite(MAX7219_CS, LOW);
 shiftOut(MAX7219_DIN, MAX7219_CLK, MSBFIRST, address);
 shiftOut(MAX7219_DIN, MAX7219_CLK, MSBFIRST, data);
 digitalWrite(MAX7219_CS, HIGH);
}

void setup() {
 // put your setup code here, to run once:
 initialise();
 output(0x0f, 0x00); //display test register - test mode off
 output(0x0c, 0x01); //shutdown register - normal operation
 output(0x0b, 0x07); //scan limit register - display digits 0 thru 7
 output(0x0a, 0x0f); //intensity register - max brightness
 output(0x09, 0xff); //decode mode register - CodeB decode all digits
 output(0x08, 0x0c); //digit 7 (leftmost digit) data
 output(0x07, 0x0b);
 output(0x06, 0x0d);
 output(0x05, 0x0e);
 output(0x04, 0x08);
 output(0x03, 0x07);
 output(0x02, 0x06);
 output(0x01, 0x05); //digit 0 (rightmost digit) data


}

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

}
 
Odpowiedź
#2
Jeśli to jest na i2c, to tam siedzi jakiś sterownik, pokaż zdjęcie i podrzuć linka do bibliotek bo na oślep to nic nie zdziałamy.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
[attachment=413 napisał(a):Robson Kerman pid='7148' dateline='1509568714']Jeśli to jest na i2c, to tam siedzi jakiś sterownik, pokaż zdjęcie i podrzuć linka do bibliotek bo na oślep to nic nie zdziałamy.

Zdjęcia są w załącznikach. Próbowałem zczytać symbol z tych 2 małych układów na odwrocie. Nie na moje oczy. Na moich z boku pisze 3642BS a na tym 8 cyfrowym na obu 4 to samo 3642BS. Szukałem specyfikacji i nie znalazłem. Tylko spisałem co stoi przy złączach-pinach. Takie nietypowe bo na 4 pinowe i inne znalazłam przykłady.


Załączone pliki Miniatury
           

.zip   DigitalTube-master.zip (Rozmiar: 10.57 KB / Pobrań: 1)
 
Odpowiedź
#4
Może tu Smile
 
Odpowiedź
#5
(02-11-2017, 12:05)krn78 napisał(a): Może tu Smile

Bibliotekę DigitalTube mam wgraną. Te programiki 2 na początku chodzą. Na 4 cyfrowym dobrze, nie wiem jak uzyskać przecinki, a na 8 cyfrowym tylko 4 ostatnie cyfry. Trzeci program nie działa a ma wyświetlać na całym 8 cyfrowym wyświetlaczu. Jaka biblioteka na 8 cyfrowy? Znalazłem na 4 cyfrowy taki przykład https://www.youtube.com/watch?v=E9lUH5dT6Xc a na 8 cyfrowy nic.
 
Odpowiedź
#6
No to może tu?
 
Odpowiedź
#7
(02-11-2017, 12:55)krn78 napisał(a): No to może tu?

Nie znam angielskiego. i nie mogę się połapać w tym. Znalazłem tu https://www.youtube.com/watch?v=S_Hnx20GzGs. Szukałem specyfikacji tego mojego wyświetlacza 4 i 8 cyfrowego i nie znalazłem. Chodzi mi o to jaki tam jest chip. W każdym razie ruszył na 4 cyfrowym i pokazuje kropkę. Gdzie to w programie? Biblioteka w załączniku.
Kod:
#include <TM74HC595Display.h>
int SCLK = 4;
int RCLK = 5;
int DIO = 6;

TM74HC595Display disp(SCLK, RCLK, DIO);
unsigned char LED_0F[10];

void setup() {
LED_0F[0] = 0x00; //ALL
LED_0F[1] = 0xFF; //NONE
LED_0F[2] = 0x7F; //1
LED_0F[3] = 0xBF; //2
LED_0F[4] = 0xDF; //3
LED_0F[5] = 0xEF; //4
LED_0F[6] = 0xF7; //5
LED_0F[7] = 0xFB; //6
LED_0F[8] = 0xFD; //7
LED_0F[9] = 0xFE; //8
}

void loop() {

int i;

for (i=0; i<10; i++) {
disp.send(LED_0F[i], 0b0001); //send digital "." to 1st indicator
delay(500);
}

for (i=0; i<10; i++) {
disp.send(LED_0F[i], 0b0010); //send digital "." to 2nd indicator
delay(500);
}

for (i=0; i<10; i++) {
disp.send(LED_0F[i], 0b0100); //send digital "." to 3rd indicator
delay(500);
}

for (i=0; i<10; i++) {
disp.send(LED_0F[i], 0b1000); //send digital "." to 4th indicator
delay(500);
}

}
Na 8 cyfrowym wyświetla tylko 2 połówka.


Załączone pliki
.zip   TM74HC595-4dig-display-master.zip (Rozmiar: 3.97 KB / Pobrań: 1)
 
Odpowiedź
#8
Jestem prawie pewien, że tam siedzi MAX7219.
Poczytaj sobie ten artykuł http://playground.arduino.cc/Main/LedControl.
Możesz sobie połączyć nawet osiem takich wyświetlaczy i jest obsłużyć.
Na dole strony masz linki do bibliotek i przykładów.
Proponuję dokładnie przeanalizować przykłady, bo jest moc.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#9
(02-11-2017, 21:36)Robson Kerman napisał(a): Jestem prawie pewien, że tam siedzi MAX7219.
Poczytaj sobie ten artykuł http://playground.arduino.cc/Main/LedControl.
Możesz sobie połączyć nawet osiem takich wyświetlaczy i jest obsłużyć.
Na dole strony masz linki do bibliotek i przykładów.
Proponuję dokładnie przeanalizować przykłady, bo jest moc.

Ja znalazłem to http://www.14core.com/wiring-max7219-on-...e-display/

Próbuje się domyślić o co tam chodzi bo nie znam angielskiego. Ja mam 8 segmentowe.

Arduino - wyświetlacz
D10 - CS
D11 - CLK
D12 - DataIn
5V - VCC
GND - GND

 MAX7219 odpada. Powyżej wyprowadzenia z MAX7219.

A ja mam tak od góry:
VCC,SCLK,RCLK,DIO,GND

Próbuję w ramach nauki programowania napisać program na wyświetlacz czterocyfrowy i poćwiczyłem trochę.wyrozumiałość za błędy.
Kod:
#include <DigitalTube.h>
// DigitalTube::DigitalTube(int sclk, int rclk, int dio)
DigitalTube dis(4, 5, 6);

void setup() {
 dis.begin();
 pinMode(10, INPUT_PULLUP); //Przycisk
}

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

}
 
Odpowiedź
#10
Nie widać, jakie są piny po prawej stronie. Czy jeden z nich to DIN?
Przy okazji, połącz układ z przykładu, którego link zamieściłem, wklej kod, uruchom i sprawdź, czy działa.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości