• 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.
#14
(03-11-2017, 13:13)krn78 napisał(a): Ten z drugiego postu: tutaj. Jest tam zamieszczony gotowy układ z kodem. Tyle tylko, że tam wyświetlacz ma pin oznaczony DIN. Nie wiem, czy u Ciebie taki jest.

Nie mam DIN , jest DIO i z prawej QH . Chip z tego co odczytałem 74HC595. Bibliotekę 74HC595 już mam. Znalazłem dzisiaj taki program. Działa. Wyświetla krobki. Teraz bym chciał wiedzieć co jest do czego.  To wiem:
int dataPin = 2; ///dio
int latchPin = 3; //rclk
int clockPin = 4; //sclk

Ustawienia portów Arduino - wyświetlacz

skomplikowanyąplikowany sposób?
Kod:
int dataPin = 2; ///dio
int latchPin = 3; //rclk
int clockPin = 4; //sclk
const byte ARRAY_SIZE = 27;
byte segment_codes[ARRAY_SIZE];
String available_chars[ARRAY_SIZE];

void show(String value){
int skip = 0;
for(int i=0; i<value.length(); i++) {
if(!((String)value[i]).equals(".")) {
int indexOfCharToWrite = findIndexOfChar((String)value[i]);
if(indexOfCharToWrite > -1){
byte bitToWrite = 0;
digitalWrite(latchPin, LOW);
byte code = segment_codes[indexOfCharToWrite];
boolean skipNext = false;
if(((String)value[i+1]).equals(".")) {
bitWrite(code, 7, 0);
skipNext = true;
}
shiftOut(dataPin, clockPin, MSBFIRST, code);
bitWrite(bitToWrite, i-skip, 1);
shiftOut(dataPin, clockPin, LSBFIRST, bitToWrite);
digitalWrite(latchPin, HIGH);
if(skipNext){
skip++;
}
}
}
}
}

int findIndexOfChar(String character){
int wantedpos = -1;
for(int i=0; i< ARRAY_SIZE; i++){
if(character.equals(available_chars[i])){
wantedpos = i;
break;
}
}
return wantedpos;
}

void setup() {
available_chars[0] = "0";
available_chars[1] = "1";
available_chars[2] = "2";
available_chars[3] = "3";
available_chars[4] = "4";
available_chars[5] = "5";
available_chars[6] = "6";
available_chars[7] = "7";
available_chars[8] = "8";
available_chars[9] = "9";
available_chars[10] = "A";
available_chars[11] = "b";
available_chars[12] = "D";
available_chars[13] = "c";
available_chars[14] = "d";
available_chars[15] = "E";
available_chars[16] = "F";
available_chars[17] = "H";
available_chars[18] = "h";
available_chars[19] = "L";
available_chars[20] = "n";
available_chars[21] = "I";
available_chars[22] = "O";
available_chars[23] = "o";
available_chars[24] = "P";
available_chars[25] = "S";
available_chars[26] = " ";

segment_codes[0]=0b11000000;
segment_codes[1]=0b11111001;
segment_codes[2]=0b10100100;
segment_codes[3]=0b10110000;
segment_codes[4]=0b10011001;
segment_codes[5]=0b10010010;
segment_codes[6]=0b10000011;
segment_codes[7]=0b11111000;
segment_codes[8]=0b10000000;
segment_codes[9]=0b10011000;
segment_codes[10]=0b10001000;
segment_codes[11]=0b10000011;
segment_codes[12]=0b11000110;
segment_codes[13]=0b10100111;
segment_codes[14]=0b10100001;
segment_codes[15]=0b10000110;
segment_codes[16]=0b10001110;
segment_codes[17]=0b10001001;
segment_codes[18]=0b10001011;
segment_codes[19]=0b11000111;
segment_codes[20]=0b10101011;
segment_codes[21]=0b11111001;
segment_codes[22]=0b11000000;
segment_codes[23]=0b10100011;
segment_codes[24]=0b10001100;
segment_codes[25]=0b10010010;
segment_codes[26]=0b11111111;


pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}

void loop() {
show("12.345.678");
}
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Wyprowadzenia wyświetlacza LED 8 segmentowy 4 cyfrowy. Test czy działa. - przez Ronin - 03-11-2017, 13:44

Skocz do:


Przeglądający: 1 gości