15-10-2014, 14:09
15-10-2014, 14:18
U mnie używam arduino nano3 klon ale myślę ze i na Uno nie będzie problemu u mnie atmega328.
kwarc 16mhz
mój lcd ma zasilanie od 3 do 5V ja używam 3v3
kwarc 16mhz
mój lcd ma zasilanie od 3 do 5V ja używam 3v3
15-10-2014, 15:29
Andrzej!
W poście #15 napisałeś że wszystko Ci weryfikuje, ja w poście #20 odpisałem Ci na jakim ja pracuję, jaką mam ATmegę i kwarc do niej. Napisałem też że wszystkie Arduino mają taki sam kwarc. Dzisiaj pytasz o napięcie na wyświetlacz. Dla bezpieczeństwa zasilam go napięciem z Arduino 3V3, moje Duemilanowe ma taki stabilizator dodatkowo. Ponadto dodam że wszystkie piny sterujące wyświetlaczem (RST,CE,DC,DIN,CLK) zasilam poprzez rezystory 3k3, dla bezpieczeństwa. Pin 07 LIG wyświetlacza zasilam z dzielnika rezystorowego (potencjometr montażowy 10k). Nic więcej dodać nie mogę, to komplet informacji.
Rysio!
W poście #15 napisałeś że wszystko Ci weryfikuje, ja w poście #20 odpisałem Ci na jakim ja pracuję, jaką mam ATmegę i kwarc do niej. Napisałem też że wszystkie Arduino mają taki sam kwarc. Dzisiaj pytasz o napięcie na wyświetlacz. Dla bezpieczeństwa zasilam go napięciem z Arduino 3V3, moje Duemilanowe ma taki stabilizator dodatkowo. Ponadto dodam że wszystkie piny sterujące wyświetlaczem (RST,CE,DC,DIN,CLK) zasilam poprzez rezystory 3k3, dla bezpieczeństwa. Pin 07 LIG wyświetlacza zasilam z dzielnika rezystorowego (potencjometr montażowy 10k). Nic więcej dodać nie mogę, to komplet informacji.
Rysio!
15-10-2014, 17:19
(14-10-2014 22:19)SQ9MDD napisał(a): [ -> ]Hejka Panowie... mam nadzieję że jesteście z nami, bo coś ucichło.
Już zamówiłem klocki. Miały dziś przyjść i nie przyszły.
Dalej obserwuję z drugiego rzędu jak się pięknie bawicie
i zazdroszczę.
15-10-2014, 18:00
Cześć.
Andrzej z arduino jest tak że niezależnie od procesora i kwarca kod jest w 100% przenoszalny pomiędzy płytkami. No chyba że ktoś stosuje jakieś nietypowe zaklęcia.
Więc odpowiadając na twoje pytania, płytka arduino dowolna.
Jeśli chodzi zaś o zasilanie to ja zasilam z pięciu wolt syntezer a wyświetlacz z 3,3V i działa wyśmienicie. Nie dawałem rezystorów w liniach sterowania wyświetlaczem.
Dzisiaj skoczyłem wcześniej nieco pracę a że siedzę w hotelu (delegacja) to zaraz napiszę ograniczenie częstotliwości do naszego złomka.
Oczywiście Panowie zachęcam do samodzielnego eksperymentowania z kodem i dzielenia się tymi eksperymentami tutaj na forum.
Andrzej z arduino jest tak że niezależnie od procesora i kwarca kod jest w 100% przenoszalny pomiędzy płytkami. No chyba że ktoś stosuje jakieś nietypowe zaklęcia.
Więc odpowiadając na twoje pytania, płytka arduino dowolna.
Jeśli chodzi zaś o zasilanie to ja zasilam z pięciu wolt syntezer a wyświetlacz z 3,3V i działa wyśmienicie. Nie dawałem rezystorów w liniach sterowania wyświetlaczem.
Dzisiaj skoczyłem wcześniej nieco pracę a że siedzę w hotelu (delegacja) to zaraz napiszę ograniczenie częstotliwości do naszego złomka.
Oczywiście Panowie zachęcam do samodzielnego eksperymentowania z kodem i dzielenia się tymi eksperymentami tutaj na forum.
15-10-2014, 18:12
Moze nazwa forka "Rysiek", bo "wszystkie Ryśki to fajne chłopaki", Zlomek nie brzmi tak dobrze
O ile kod pisany na arduino jest większy (po kompilacji) od konkretnego w C pod dany proc?
O ile kod pisany na arduino jest większy (po kompilacji) od konkretnego w C pod dany proc?
15-10-2014, 18:17
Wiesz nie sprawdzałem ale sądzę że trochę narzutu będzie. Każda specyficzna dla arduino funkcja (jakiś map czy coś podobnego) to zawsze coś wiecej bajtów. więc kod puchnie. Tyle że dla większości zastosowań niema to znaczenia i tak się mieści. ATMega328 ma 32kb pamięci -2kb na bootloader więc sporo pozostaje na kod. Ot taka łatwość tworzenia okupiona większym wynikowym.
Ogólnie niema tragedii
Ogólnie niema tragedii
15-10-2014, 18:22
Chyba bardziej niż na rozmiar samego programu trzeba uważać na wykorzystanie RAMu. Wiem, że Maciek pisząc Heńka trafił na właśnie ten problem i okazało się, że z pamięcią nie można obchodzić się zbyt beztrosko
15-10-2014, 18:35
to na szczęście nie była pamięć, tylko do d.. napisana obsługa wyświetlacza a dokładniej wyświetlania w przerwaniach. Teraz na czas wyświetlania wyłczam przerwania encodera i jest OK
MAc
mrn
MAc
mrn
15-10-2014, 18:52
Tak Przemek zdecydowanie masz rację, kilkakrotnie w swoich projektach otarłem się o ten problem. Dlatego zawsze staram się stosować różne zabiegi by nieco zaoszczędzić pamięć.
Zamiast:
Oczywiście dla zmiennych które nie są modyfikowane w trakcie pracy programu.
Często też stosuje jeden bufor służący do printowania danych i zmieniam tylko jego zawartość. Jeden uniwersalny zajmuje często mniej miejsca niż pięć mniejszych do konkretnych celów.
Dodatkowym utrudnieniem jest też słabość środowiska arduino w tej kwestii. Nie posiada ono narzędzi do diagnostyki, debugowania.
Nasz program ten powyżej w tej chwili zużywa około 300 bajtów ramu z dostępnego obszaru 2kb.
Jest taki fajny kawałek kodu który pozwala ocenić wielkość dostępnej pamięci:
Wystarczy gdzieś w głównej pętli wyprintować efekt działania tej funkcji.
Kod:
const int jakas_zmienna = 123;
Kod:
int jakas_zmienne = 123;
Oczywiście dla zmiennych które nie są modyfikowane w trakcie pracy programu.
Często też stosuje jeden bufor służący do printowania danych i zmieniam tylko jego zawartość. Jeden uniwersalny zajmuje często mniej miejsca niż pięć mniejszych do konkretnych celów.
Dodatkowym utrudnieniem jest też słabość środowiska arduino w tej kwestii. Nie posiada ono narzędzi do diagnostyki, debugowania.
Nasz program ten powyżej w tej chwili zużywa około 300 bajtów ramu z dostępnego obszaru 2kb.
Jest taki fajny kawałek kodu który pozwala ocenić wielkość dostępnej pamięci:
Kod:
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
Wystarczy gdzieś w głównej pętli wyprintować efekt działania tej funkcji.