DRO DIY
-
- Lider FORUM (min. 2000)
- Posty w temacie: 105
- Posty: 4690
- Rejestracja: 31 mar 2017, 19:47
- Lokalizacja: Warszawa
Jakie kody?
Z tego co zerknąłem to tam jest po prostu rejestr przesuwny. A jeśli chodzi o same cyfry to raczej widzę zliczanie 0,0001mm jako dużą liczbę całkowitą. Przecinek to będzie dodawany sztucznie.
Coś mi się zdaje że bedzie trochę roboty żeby napisać obsługę tylu LEDów. Jednak na prawdziwych sterownikach robi się to znacznie łatwiej.
Cieszę sie tylko że kupiłem ten najdłuższy wyświetlacz, przecież tam jeszcze musi być znak minus na początku
Z tego co zerknąłem to tam jest po prostu rejestr przesuwny. A jeśli chodzi o same cyfry to raczej widzę zliczanie 0,0001mm jako dużą liczbę całkowitą. Przecinek to będzie dodawany sztucznie.
Coś mi się zdaje że bedzie trochę roboty żeby napisać obsługę tylu LEDów. Jednak na prawdziwych sterownikach robi się to znacznie łatwiej.
Cieszę sie tylko że kupiłem ten najdłuższy wyświetlacz, przecież tam jeszcze musi być znak minus na początku

-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 25
- Posty: 759
- Rejestracja: 13 sty 2010, 08:07
- Lokalizacja: Braniewo
Przykład
Takie:
bez kropki:
z kropką:
To są cyfry wyświetlane na segmencie generowane przez jeden rejestr.
A to numery segmentów:
i wysyłasz po kolei na oba rejestry:
Właśnie się dopatrzyłem, że w przykładzie cwaniej podeszli do przecinka:
Wystarczy wysłać 8 par i już
[ Dodano: 2017-04-18, 21:17 ]
To jest wspólna anoda jeśli się nie mylę.
Minus wyglądałby tak:
Takie:
bez kropki:
Kod: Zaznacz cały
switch (Num_seg)
{
case 0: seg_data = 0x02; break;
case 1: seg_data = 0x9E; break;
case 2: seg_data = 0x24; break;
case 3: seg_data = 0x0C; break;
case 4: seg_data = 0x98; break;
case 5: seg_data = 0x48; break;
case 6: seg_data = 0x40; break;
case 7: seg_data = 0x1E; break;
case 8: seg_data = 0x00; break;
case 9: seg_data = 0x08; break;
default: seg_data = 0xFF; break;
}
Kod: Zaznacz cały
switch (Num_seg_d)
{
case 0: seg_data = 0x03; break;
case 1: seg_data = 0x9F; break;
case 2: seg_data = 0x25; break;
case 3: seg_data = 0x0D; break;
case 4: seg_data = 0x99; break;
case 5: seg_data = 0x49; break;
case 6: seg_data = 0x41; break;
case 7: seg_data = 0x1F; break;
case 8: seg_data = 0x01; break;
case 9: seg_data = 0x09; break;
default: seg_data = 0xFF; break;
}
A to numery segmentów:
Kod: Zaznacz cały
switch (Num_bit)
{
case 0: bit_data = 0x10; break;
case 1: bit_data = 0x20; break;
case 2: bit_data = 0x40; break;
case 3: bit_data = 0x01; break;
case 4: bit_data = 0x02; break;
case 5: bit_data = 0x04; break;
//case 6: bit_data = 0x08; break;
//case 7: bit_data = 0x08; break;
default: bit_data = 0x00; break;
}
Kod: Zaznacz cały
digitalWrite(RCKpin, LOW);
shiftOut(DIOpin, SCKpin, LSBFIRST, seg_data);
shiftOut(DIOpin, SCKpin, MSBFIRST, bit_data);
digitalWrite(RCKpin, HIGH);
Kod: Zaznacz cały
if (Num_dec == 1)
{
seg_data = seg_data + 1;
}

[ Dodano: 2017-04-18, 21:17 ]
To jest wspólna anoda jeśli się nie mylę.
Minus wyglądałby tak:
Kod: Zaznacz cały
case -: seg_data = 0xFE; break;
Pozdrawiam
Krzysiek
Krzysiek
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 69
- Posty: 1724
- Rejestracja: 27 gru 2012, 02:40
- Lokalizacja: kujawsko-pomorskie
Ale jeszcze jedna uwaga. Do trzech osi wystarczy jedno arduino, tak jak, na schemacie w połowie strony, tu:
http://www.sawmillcreek.org/showthread. ... ing-scales
Zgadza się?
http://www.sawmillcreek.org/showthread. ... ing-scales
Zgadza się?
-
- Lider FORUM (min. 2000)
- Posty w temacie: 105
- Posty: 4690
- Rejestracja: 31 mar 2017, 19:47
- Lokalizacja: Warszawa
Ciekawi mnie tylko czy takie czujniki liniowe nie łapią błędu. W enkoderze jest to niemożliwe ponieważ czujnik odczytuje wirującą tarczę ze stałymi dziurkami itp, a wszystko jest szczelne.
A w takim mechanizmie z suwmiarek to nie wiem jak to działa. Mozliwe że zabrudzenie osi może spowodować błąd odczytu...
A w takim mechanizmie z suwmiarek to nie wiem jak to działa. Mozliwe że zabrudzenie osi może spowodować błąd odczytu...
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 69
- Posty: 1724
- Rejestracja: 27 gru 2012, 02:40
- Lokalizacja: kujawsko-pomorskie
Ach rozumie Yogi. Ciekaw mnie na jakiego rodzaju wyświetlacz jest najłatwiej nauczyć się pisać oprogramowanie, który z nich zapewnia najwyższą prędkość działania i w zasadzie to z skąd się uzyskuje informacje na temat tego w jaki sposób się te programowanie wykonuje. natrafiłem na pięć rodzajów wyświetlaczy I²c przy tym trzy różne procesory, trzy rodzaje z TM1637, Tm1638, 74HC595 i MAX7219. po co tyle rodzajów i który do czego się lepiej nadaje.