Witam,
Na początek pierwszy moduł.
Sercem układu jest :
- HEF4794B 8-stage shift-and-store register LED driver - zapraszam do zapoznania się z DS, bardzo fajny układ wiele zastosowań.
Sterowanie:
Kod:
#define set_strobe PORTD|=(1<<PD7)
#define reset_strobe PORTD&=~(1<<PD7)
#define set_clk PORTD|=(1<<PD6)
#define reset_clk PORTD&=~(1<<PD6)
#define set_dane PORTD|=(1<<PD5)
#define reset_dane PORTD&=~(1<<PD5)
const uint8_t cyfra[] = { 0b01111110, // 0
0b00100010, // 1
0b10111100, // 2
0b10110110, // 3
0b11100010, // 4
0b11010110, // 5
0b11011110, // 6
0b00110010, // 7
0b11111110, // 8
0b11110110, // 9
0b00000000, // 10 - " "
0b10000000, // 11 - "-"
0b11110000, // 12 - "*"
0b01011100, // 13 - "C"
0b10001110 }; // 14 - "o"
void sendtoregs (uint8_t znak){
uint8_t nrb,maska;
for (nrb=0 ; nrb<8 ; nrb++) {
reset_clk;
maska = znak & (1<<nrb);
maska = maska >> nrb;
if (maska==0) reset_dane;
if (maska==1) set_dane;
set_clk;
}
}
Wywołanie funkcji:
Kod:
reset_strobe;
sendtoregs(cyfra[1]);
sendtoregs(cyfra[2]);
sendtoregs(cyfra[3]);
sendtoregs(cyfra[4]);
sendtoregs(cyfra[5]);
sendtoregs(cyfra[6]);
//wysłanie na 6 modułów, jak w tablicy jest n modułów to wywołanie funkcji sendtoregs n razy
set_strobe;
Na płytce jest miejsce na Attiny13 do sterowania modułami transmisją szeregową.
Układ HEF4794B można zasilić 5V, a diody 12V ze sterowaniem PWM.
Każdy segment modułu pobiera 60mA prądu. Cała cyfra 0,42A.Do zasilania proponuję użyć przemysłowy zasilacz impulsowy np. 12V 300W.
Na koniec informacyjnie dodam tylko, że moduł i soft jest mojego autorstwa.
W załączniku również wymiary modułów.Jestem na etapie projektowania i zlecenia wykonania obudowy do zegara z temp. na powyższych modułach.


