Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 26 kwi 2024, o 02:35


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 
Autor Wiadomość
PostNapisane: 29 mar 2015, o 20:44 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Witam.

Mam takie pytanie mianowicie chciałem się dowiedzieć czy atmega ma jakąś granice w PWM czy nie?? Bo chciałem zrobić 24 porty do których byłby podpięte diody (PROTOTYP NA STYKÓWCE) i sterować nimi wszystkimi czyli rozjaśnianie i ściemnianie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Teoretycznie można zrobić programowe pwm na każdym porcie, ale rozdzielczość będzie raczej skromna - dosłownie kilka poziomów.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 21:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

pozostaje ci jak chcesz rozwiązanie sprzętowe np:
http://www.sunduino.pl/wordpress/992-ka ... wnik-serw/

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 22:28 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Mi chodzi o rozjaśnianie i ściemnianie pokolei lampek nic więcej. Jak to mogę zrobić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 22:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Jak po kolei to parę dni temu podawałem na forum gotowe rozwiązanie w Bacom, które umożliwia bardzo płynnie rozjaśnić od 8 do 32 ledów (jakiś temat ze schodami).

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 22:46 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Mogę prosić o udostępnienie ponowne albo podanie linka gdzie zostało to podane??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 22:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

topic11023.html

Mniej więcej w połowie strony demo na filmie, a na drugiej stronie kod w bascom

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 22:54 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

No dobra a żeby zrobić z tego na 32 to wystarczy pozmieniać to co jest w komentarzach czy jak??? Bo szczerze nie orientuje się w PWM na tyle diód... :/ i dlatego nie wiem co zrobić

------------------------ [ Dodano po: 2 minutach ]

Bo mi chodziło o to żeby to chodziło na 2 czujnikach jeden czujnik widzi to rozświetla powoli i gaśnie jak widzi drugi i odwrotnie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 23:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Tak, "byte" zamień na "long" tam gdzie to zaznaczone i dodaj kolejne case z przypisami portów w litanii, tzn. kontynuuj - Case 8...do Case 31 (jeśli chcesz wykorzystasz wszystkie 32 kanały). Oczywiście nie zapomnij skonfigurować odpowiednio portów jako wyjścia.

Oprogramowanie czujek musisz sobie już indywidualnie na jakichś pinach zrobić w pętli głównej, która calutka jest do Twojej dyspozycji, bo zapalanie i gaszenie w pełni odbywa się w przerwaniach. Ty z pętli głównej tylko wskazujesz co ma się rozjaśnić/wygasić i oczekujesz na znacznik zakończenia pojedynczego wspomnianego cyklu rozjaśnienia/wygaszania aby móc przejść do kolejnego kanału.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2015, o 23:07 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

No dobra będę później sprawdzał z tymi czujnikami w razie czego będę pisał jak sobię nie poradzę. Bardzo dziękuje za pomoc :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2015, o 19:35 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Witam zmieniłem kod na 24 lampki i jakoś to nie działa :/

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



A tutaj zdjęcia efektów
Pierwszy PORTA idzie dobrze ale PORTC nie a PORTD świeci ciągle no i w PORTC część diód nie świeci i nie wiem czemu bo jak zamienie przweody to świecą ale znowu inne nie świecą

Obrazek


Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2015, o 21:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Panie kochany... linia 17 na początek :)
Sprawdź i będziemy dalej kombinować jeśli nie będzie działać ;)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2015, o 21:53 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Teraz gaśnie i rozjaśnie się okey ale ciągle te środkowe diody nie świecą zmieniłem nawet procesor i ciągle to samo :/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2015, o 21:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Czyli cały jeden port Ci nie działa ?? Który? Może masz JTAG w fusach włączony ?

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2015, o 22:04 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Faktycznie był włączony JTAG teraz działa wszystko jak należy :) zabieram się za zabawę z tym żeby działało tak że widzi czujnik_1 to rozświetla się do końca i zaraz gaśnie a jak widzi 2 to tak samo tylko że w drugą stronę. Jeszcze nie wiem jak to zrobić ale będę próbował :D

------------------------ [ Dodano po: 13 minutach ]

Jeszcze jedna rzecz jak skróciłem ten kod do takiej formy:

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


To pierwsza dioda choć ma zgasnąć to świeci ciągle dlaczego?
I o co chodzi z tym:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2015, o 10:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Czy rozjaśnia się prawidłowo? Spróbuj tą jedną diodę z innego pinu zasilić i oczywiście w litanii odpowiednią poprawkę zrób i sprawdź czy będzie dalej to samo.

------------------------ [ Dodano po: 15 minutach ]

Ten fragment nieblokującego programu to alternatywa, którą polecam do sterowania diodami. Ten fragmencik płynnie rozjaśnia kolejno 8 diod po czym w tej samej kolejności je gasi i tak w kółko. Nie było by w tym nic nadzwyczajnego gdyby nie fakt, że pętla główna nie jest nawet na chwilkę blokowana (jak ma to miejsce w programie demo) i może się równocześnie wykonywać coś innego, np. badanie czujników. Ma to znaczenie, bo gdyby zaczęły się schody wygaszać, a w tym czasie ktoś by na nie wszedł to powinny się rozjaśnić. Stosując blokady oczekujące na zakończenie rozjaśnienia/wygaszania czyli
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

program zatrzymuje się i nie jest możliwe w tym momencie badanie czujki ruchu. W wersji nieblokującej może być ona permanentnie badana w każdym obiegu pętli, a z kolei rozjaśnianie/wygaszanie diod kontrolowane jest tym samym znacznikiem (czyli "Go") z tym, że jeśli nie przyjmie odpowiedniej wartości to program przeskakuje do kolejnych instrukcji omijając zwiększenie licznika dla następnej diody.
Oczywiście w tym przypadku prędkość (zmienna "Speed") też należy ustawić na początku - wystarczy raz, jeśli będzie stała dla rozjaśniania i wygaszania.
Przydatne może też być badanie stanu led aby sprawdzić czy akurat jest zgaszona czy zapalona jeśli w trakcie cyklu ktoś by znowu wszedł na schody. Stan ten przechowywany jest w zmiennej "Z_led". Bez badania stanu mogło by dojść do sytuacji, że przy wejściu na schody zaczęłyby by się wygaszać zamiast zapalać diody, które jeszcze świeciły, a tak można to po prostu sprawdzić i uzupełnić światłość tylko tam gdzie zdążyły już zgasnąć po wcześniejszym cyklu.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2015, o 16:35 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

NO i tu się zaczynają schody bo nie wiem jak to napisać żeby się uzupełniały



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2015, o 20:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

A gdzie tu widzisz problem ? :) Pomyśl chwilę. Badasz znacznik (tą długą zmienną long), a konkretnie po kolei wszystkie bity i jeśli dany bit = 0 to znaczy, że dioda jest zgaszona, jeśli 1-zapalona następnie w zależności od czynności którą chcesz zrobić (czyli zgasić lub zapalić) podajesz po prostu nr tej diody (czyli nr bitu) do "obróbki".
Jak badać poszczególne bity masz dokładnie pokazane w przerwaniach w moim programie.

Ruszyła ta ostatnia dioda czy nie ?

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2015, o 21:28 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Dioda dalej to samo puszczam program to ona gaśnie i od razu się zapala a kolejne normalnie gasną



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 kwi 2015, o 23:05 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

No i fakt jestem początkujący dlatego nie za bardzo ogarniam to co jest wyżej napisane :/ i nie wiem jak to zrobić żeby się uzupełniało itp.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2015, o 09:42 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Może ktoś pomóc jakoś bo naprawde w PWM jestem zielony



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2015, o 14:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

No gdybyś coś zaczął pisać to można by łatwiej pomóc, a napisać ZA CIEBIE trochę mi się nie uśmiecha, bo nic się wtedy nie nauczysz i dłużej z tłumaczeniem zejdzie. Pół biedy gdybym był bardziej czasowy, a tak to się tylko na chwilę odrywam od roboty aby posta wrzucić.

Co do tej diody dziwnie działającej na pierwszej pozycji to faktycznie zagwozdka. Zrobiłem kilka testów na mojej płycie i okazuje się, że najdziwniej zachowuje się przy speed=50, gdy wstawiałem 51,49 czy inną (testowałem tylko kilka wartości) to nic złego się nie działo. Podejrzewam, że w algorytmie jest jakiś błędzik (w końcu było to kiedyś pisane na szybko dla forum, bo w praktyce z tego nie korzystałem) i synchronizuje się to w dziwny sposób z przerwaniami. Prawdę mówiąc nawet nie mam czasu teraz tego analizować, bo jak wspominałem jestem robotą zawalony, ale w wolnej chwili rozprawię się z tym - taki już jestem - każdy błąd w programie musi mieć przyczynę i zawszę jej szukam... zazwyczaj znajduję :)


Autor postu otrzymał pochwałę

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2015, o 16:20 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Wiem że jakbym zaczął pisać to by było fajnie tylko w tym rzecz że ja nie wiem co bo nie ogarniam tego z tym PWM i w tym problem a chciałbym się tego nauczyć bo mi się to przyda :/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2015, o 21:56 
Offline
Użytkownik

Dołączył(a): 16 mar 2015
Posty: 45
Pomógł: 0

Witam. :)

Chciałem podać przyczynę dlaczego program nie mógł wykonać speed 50 mianowicie taka że zmienna typu L1 nie może być = 0 skoro później 'Decr L1'



Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 kwi 2015, o 22:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

No jak działa to git :) Nie mam teraz jak sprawdzić u siebie.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO