Witam. Pokaże jak szybko i prosto można użyć dużych "czcionek" na popularnym wyświetlaczu alfanumerycznym. Teraz nietrudno o graficzny, ale może się komuś przyda. Zainteresowałem się tym bo moja mama, z racji wieku, niedowidzi :D Co ciekawe, do wyświetlenia tych akurat czcionek trzeba tylko trzy znaki użytkownika zadeklarować na początku w programie. Reszta znaków jest już w sterowniku wyświetlacza tylko trzeba się do nich dobrać. Z lewej strony wierszy i u góry kolumn są wartości bajtów młodszego i starszego w postaci binarnej (L=Low=0 i H=High=1) Możemy odczytać wartośći i korzystając z kalkulatora wbudowanego w Windows przekonwertować je na wartość do naszej Potem przełaczamy kropke z powrotem na Dec i mamy wynik :D Teraz listing programu: Config Lcd = 16 * 2 Cursor Off Noblink Cls 'Deflcdchar 0 , 32 , 4 , 4 , 4 , 21 , 14 , 4 , 32 ' strzalka w dol 'Deflcdchar 1 , 32 , 4 , 14 , 21 , 4 , 4 , 4 , 32 ' strzalka w gore 'stopien to Chr(223) 'caly kursor to Chr(255) 'duzy stopien to Chr(219) 'kropkaduza to Chr(161) Deflcdchar 2 , 31 , 31 , 32 , 32 , 32 , 32 , 32 , 32 ' gorna kreseczka Deflcdchar 3 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 31 ' dolna kreseczka Deflcdchar 4 , 31 , 31 , 32 , 32 , 32 , 32 , 31 , 31 ' dwie kreseczki Const Liczba = 206 Dim Pierwsza As Byte , Druga As Byte , Trzecia As Byte Dim Help As Byte Dim Linia_g(10) As String * 4 , Linia_d(10) As String * 4 'Cyfra 0 Linia_g(10) = Chr(255) + Chr(2) + Chr(255) + " " Linia_d(10) = Chr(255) + Chr(3) + Chr(255) + " " 'Cyfra 1 Linia_g(1) = Chr(2) + Chr(255) + " " Linia_d(1) = Chr(3) + Chr(255) + Chr(3) + " " 'Cyfra 2 Linia_g(2) = Chr(4) + Chr(4) + Chr(255) + " " Linia_d(2) = Chr(255) + Chr(3) + Chr(3) + " " 'Cyfra 3 Linia_g(3) = Chr(2) + Chr(4) + Chr(255) + " " Linia_d(3) = Chr(3) + Chr(3) + Chr(255) + " " 'Cyfra 4 Linia_g(4) = Chr(255) + Chr(3) + Chr(255) + " " Linia_d(4) = " " + Chr(255) + " " 'Cyfra 5 Linia_g(5) = Chr(255) + Chr(4) + Chr(4) + " " Linia_d(5) = Chr(3) + Chr(3) + Chr(255) + " " 'Cyfra 6 Linia_g(6) = Chr(255) + Chr(4) + Chr(4) + " " Linia_d(6) = Chr(255) + Chr(3) + Chr(255) + " " 'Cyfra 7 Linia_g(7) = Chr(2) + Chr(2) + Chr(255) + " " Linia_d(7) = " " + Chr(255) + " " 'Cyfra 8 Linia_g(8) = Chr(255) + Chr(4) + Chr(255) + " " Linia_d(8) = Chr(255) + Chr(3) + Chr(255) + " " 'Cyfra 9 Linia_g(9) = Chr(255) + Chr(4) + Chr(255) + " " Linia_d(9) = Chr(3) + Chr(3) + Chr(255) + " " Trzecia = Liczba Mod 10 If Trzecia = 0 Then Trzecia = 10 Help = Liczba / 10 Pierwsza = Help / 10 If Pierwsza = 0 Then Pierwsza = 10 Druga = Help Mod 10 If Druga = 0 Then Druga = 10 Cls Waitms 100 Lcd " " ; Linia_g(pierwsza) ; Linia_g(druga) ; " " ; Linia_g(trzecia) ; Chr(223) ; "C" Lowerline Lcd " " ; Linia_d(pierwsza) ; Linia_d(druga) ; Chr(161) ; Linia_d(trzecia) End Wyświetlenie znaku w tej konfiguracji czyli na takim wyświetlaczu kosztuje cztery pola w bok (trzy i odstęp) i oczywiście dwia w dół. Zadeklarowane są więc dwie zmienne typu String z *4 czyli o długości czterech znaków. Dwie, bo dwie linie wyświetlacza. Teraz smaczki :D Idąc dalej można korzystając z Na koniec jeszcze jedna ładna czcionka. Zdaje sobie sprawe że to nie nowość ale jeszcze przedwczoraj tego nie wiedziałem i nigdzie nie było to tak opisane by można było od razu skorzystać. Życzę miłego dnia :D
|
|||
Cd. Duże cyfry na LCD 2x16
Witam. W wolnej chwili zrobiłem upgrade :D Te czcionki są, nie dośc że ładniejsze, to węższe. Nie potrzebują więc odstępu między sobą. W programie zmienne String można przez to skrócić z czterech do trzech znaków.
Tak teraz wyglądają i pomieszane sa duże z małymi. Pod zdjęciem listing przykładu z wpisanymi wartościami dla czcionek.
BARTek
Moja strona
(-;
Nie pozostaje nic innego jak tylko powinszować pomysłu ;-D
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
MENU dla LCD
Mam dziś taki "mały smaczek" :D
W wielu budowanych urządzeniach potrzebna jest interakcja z użytkownikiem czyli Menu.
Czasem parametrów ustawianych jest wiele i jest dużo pisaniny :P
Gdyby ktos potrzebował poprzez kontekstowe (np.rozwijane) menu ustawić Dzień,Miesiąc,itd do tego czasy nadmuchu pieca, różne przełaczniki Czas letni /zimowy do tego różne parametry można ustawiać z "bargrafem" (taka linijka :P)
To właśnie wyszła nowa wersja programu który to za nas "odwala"
Można nawet znaki wpisywać co daje możliwość np. wpisania nazwy serwisu lub nr.telefonu
Wszystko klika sie w Windowsie z parametrami min/max i skokiem :> co jest ważne..np. naciśniecie spowoduje dodanie 10
Po menu "chodzi"się MultiJog`iem (impulsatorek czy tam enkoder) albo trzema przyciskami.
Strona z programem, FAQ i prezentacją video jest TUTAJ :)
Życzę miłej lektury. Jakby trza było to może jakiegoś Tutoriala sie zrobi :P
Jak zamówie nowy wyświetlacz to klikne jakieś foty ;)
PS.Tylko proszę nie pisać że okupione to jest jakimś większym kodem. Jak ktoś nie potrafi coś krótkiego napisać sam to weźmie zamiast ATmega8 ATmege328 i śmiga ;)
BARTek
Moja strona
Ciasno we Flash? Zobacz co można przenieść do Eeprom
Witam. Miałem znów trochę czasu i dopracowałem rozwiązanie przeniesienia "najwięcej ważących" danych do Eepromu który najczęściej jest używany w małym stopniu.
Definicje znaków użytkownika, wartości stałe i nawet słowa z Menu mozna tam śmiało przenieść co widac na załaczonym obrazku. Listing to tylko przykład bo załadować można dużo więcej. To przykładowa pamięć ATmega8 wykorzystana dopiero w połowie a sam początek (te zera) to miejsce na dane (adresy DS18B20 w tym przypadku i kilka zmiennych). Druga połowe można sobie zapisać budując Menu. Zachęcam do przetestowania w symulatorze bo się ruszają :D
Poniżej listing który po skasowania dyrektywy $sim generuje też plik EEP który należy wgrać do procesora przy programowaniu. Dopisując jakieś słowo trzeba dodać osiem do ostatniego adresu, a do następnego jego długość + 1, bo Stringi mają o jeden Bajt większa długość w pamięci.
Ja zakupiłem dwa moduły RFM12B i od dziś będe się bawił w budowę przenośnego pilota z wyswietlaczem i dwukierunkowa transmisją :D
Życzę miłego dnia
BARTek
Moja strona
Witam jak uporałeś się z
Witam jak uporałeś się z migotaniem dolnej linijki w wyświetlaczu ??
Witam jak uporałeś się z
Witam jak uporałeś się z migotaniem dolnej linijki w wyświetlaczu ???
Odp. Duże cyfry na wyświetlaczu 2x16
Mi nic nie migocze. Może używasz innego procesora i usunąłeś zmienione względem domyślnych Bascoma wpisy dotyczące Hwstack, Swstack i Framesize? Operacje na zmiennych typu String wymagają dłuższej ramki. Wpisz przynajmniej HW 128, SW 64, FR 64 jeśli używasz ustawień z IDE.
BARTek
Moja strona
Mam taki o to kod i problem
Mam taki o to kod i problem bo migocze nadal dolna linijka przy odświeżaniu "czyszczeniu LCD "
i tak na marginesie bawiłeś się może modułami 433MHz
jakis nawet prymitywny kod szukam by to uruchomic i sie pobawic
http://naforum.zapodaj.net/b9cdff1acdfa.jpg.html
Odp. Duże cyfry na wyświetlaczu 2x16
Proszę, łap. Powinno działać.
Instrukcja
Cls
powoduje czyszczenie wszystkich danych danych w wyświetlaczu i używa się jej tylko na początku programu do inicjalizacji wyświetlacza lub potem sporadycznie w programie na przykład gdy przechodzisz do innej planszy Menu gdzie prędkość nie ma takiego znaczenia. Wyświetlacz LCD ma linię WR najczęściej zwartą do masy. To linia służąca do sprawdzania czy LCD jest gotowy na następne dane. Jeśli jest niewykorzystywana to dane sa specjalnie wysyłane powoli by wyświetlacz napewno zdążył. Nie używa się więc InstrukcjiCls
w pętlach. Jeśli potrzebujesz odświeżyć dane na LCD to używaszLocate
.Z tym DS18B20 tez pozmieniałem żebyś nie musiał tam czekać na wynik.
Co do modułów. Te tanie nie lubią "krótkich danych" Na początku zawsze są śmieci. Trzeba budować dłuższe ramki z "dummy bytes", albo je powtarzać i analizować w odbiorniku dopiero kolejne.
BARTek
Moja strona
WSZYSTKO działa idealnie
WSZYSTKO działa idealnie dzięki za pomoc !
Mam prośbę jak możesz odezwij się do mnie na E-maila mam kilka pytań w sprawie 433 oraz zwykłej transmisji kablowej może będziesz w stanie mi pomóc .
Quote:Życzę miłej lektury.
Dałoby radę zrobić jakiegoś tutoriala?
Pozdrawiam
Prosze o pomoc ujemne temperatury
Witam prosze o pomoc od razu mówię jestem samoukiem program posklejałem z kilku projektów wiec nie pytajcie czemu tak bo i tak nie wiem, projekt jest ok jak dla mnie tylko potrzebuje ujemnych temperatur, poniżej kod z góry dziękuje
Odp. Prosze o pomoc ujemne temperatury
Się zastanawiałem jak Ci tu odpowiedzieć bo trochę trudno wywnioskować czy chcesz mieć dwa czujniki czy jeden.
Napisz najlepiej ile masz/chcesz mieć czujników. Czy minus ma się pokazywać na wyświetlaczu (potrzebne miejsce i przesunięte wszystkie cyfry).
BARTek
Moja strona
wiec tak ostatecznie ma to
wiec tak ostatecznie ma to wyglądać tak jak w tym kodzie ma na przemiennie pokazywać się temperatura in out wraz ze znakiem - dla obu temperatur, ewentualnie jeśli się da to i dziesiętne temperatur np 23.5 stopnia i -23.5 stopnia oba czujniki by działały w temp minusowej, chciałem taki termometr zamontować do samochodu. Z góry dziękuję.
Prosze o pomoc ujemne temperatury
Ostatecznie ma to wyglądać tak ja w tym kodzie, Temperatura in i out ma pokazywać się naprzemiennie, ale jeśli by się dało to bardzo bym prosił by termometr pokazywał ujemne temperatury na obu czujnikach oraz był w formacie np 23.5 stopnia i -23.5 stopnia z góry dziękuje. Nie wiem czemu ale po kliknięciu zachowaj wiadomość nie pokazuje się ona na tym forum
Wiec tak docelowo ma to
Wiec tak docelowo ma to wyglądać tak jak w tym kodzie, temperatura ma się pokazywać naprzemiennie in out
z tym, żeby oba czujniki działały w minusowej temperaturze, i najlepiej pokazywały sie w formacie np 23.5stopnia i -23.5stopnia, taki termometr chciałem zastosować do samochodu. Z góry dziękuję. Nie wiem czemu ale pisze już 3 raz i wypowiedź moja się nie chce pokazac
haha teraz to się pokazały 3
haha teraz to się pokazały 3 na raz proszę administratora o usunięcie
Podwójny termometr z dużymi cyframi
Proszę kolego. Możesz oczywiście dopracować szczegóły. Nie wyświetlać wiodącego zera, albo uzależnić wybór czujnika od przycisku (wystarczy obrócić bit In_out).
Wyświetla temperaturę z dokładnością jednej cyfry po przecinku :) Temperatury ujemne przetestowane na kostce lodu.
Procesor dowolny, wyświetlacz też.
Miłego dnia :)
BARTek
Moja strona
oo super o to mi chodziło
oo super o to mi chodziło tylko jest mały problem, temp powyżej 25stopni pokazuje głupoty np 00.8 co tu poprawić czy to wina Dsów??
Odp.Podwójny termometr z dużymi cyframi
No bo to w nocy było i myślenie nie te :) Zmieniłem na Word w Pierwsza, Druga i Trzecia (zmieniłem tu na stronie też) i przetestowałem na wylocie chłodzenia laptopa :D Już pokazuje 37,3
Miłego użytkowania.
BARTek
Moja strona
ok Lux wszystko już działa
ok Lux wszystko już działa tak jak powinno, wielkie dzięki, pozdrawiam i wesołych świąt!
Witam serdecznie...Mam pytanie jak nie wyświetlac zera wiodącego
Witam serdecznie...Mam pytanie jak nie wyświetlac zera wiodącego w tym programie?
Odp. Zero wiodące
Można to zrobić na wiele sposobów ale poniższe powinno załatwić sprawę. Sprowadza się do dodania pustych znaków zdefiniowanych jako jedenasta cyfra. Tak by by wynik "stał w miejscu" gdy zmienia się długość napisu. Wszystko zależy od założeń i tego co kto lubi. Trzeba mieć miejsce na inne cyfry z przodu. Ja uważam że to denerwujące kiedy wynik się przesuwa (krótszy - dłuższy jeśli temp na zewnątrz jednocyfrowa). Dlatego proponuje to:
Możesz odpalić też poniższą symulację i zobaczyć jak to będzie wyglądało na symulatorze
(Wszystkie cyferki się zmieniają)
Jak będziesz chciał "tańczący" wynik to daj znać ;)
BARTek
Moja strona
Zero wiodące
Dziękuję za odpowiedż...Pozdrawiam serdecznie życząc Wesołych Świąt
Zero wiodące
Dziękuję za odpowiedż...Pozdrawiam serdecznie życząc Wesołych Świąt
Zero wiodące
Dziękuję serdecznie za odpowiedż...Pozdrawiam serdecznie zycząc Wesołych Świąt
Pytanie do tego tematu
Jak działa znajdowanie następnego miejsca do wyświetlenia kolejnej cyfry ?
Chciałem też powiedzieć że w zestawieniu z innymi Chr(x) nie działa mi wyświetlanie Chr(0), wiecie może ocb ?
Nie działa Chr(0) tylko Chr(8).
Znaczy definicje nie są przeprowadzane od Chr(0) do Chr(7) tylko od Chr(1) do Chr(8) lae wywala dziwnie czasem błąd jedengo znaku, właśnie tego zadeklarowanego jako Chr(8).
Moja strona w powijakach