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



Teraz jest 7 kwi 2026, o 05:22


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 28 maja 2014, o 16:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 26
Pomógł: 0

Witam wszystkich,
zmontowałem układ który steruje taśmą rgb poprzez aplikację na androidzie i zawarte w niej "suwaki".

Układ wykorzystałem do podświetlenia w moim samochodzie i wszystko działa poprawnie jednak jest rzecz, którą chciałbym poprawić.

Mianowicie za każdym razem jak wyłączam płytkę arduino resetują się wartości pinów PWM i co za tym idzie sama taśma nie świeci i trzeba na nowo się łączyć i ustawiać kolor.

wykombinowałem to tak, utworzyć case gdzie po wysłaniu np:save zapisze do eeprom wartości pinów, a po odpaleniu jeszcze przed główna pętlą je załaduje.

Wiem o ograniczonej liczbie zapisów dlatego chcę to ograć przyciskiem.

Szukam jednak i znaleźć nie mogę sposobu na odczytanie aktualnej wartości z pinów.


W razie potrzeby dodam kod.

Wojtek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2014, o 17:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Nie znam arduino ,ale wartość PWM jest ustawiana w rejestrach
timera uC w odpowiednim trybie ich pracy lub generowany jest programowo,
a na pinach jest przebieg cyfrowy o zmiennym wypełnieniu.

Tak jak pisałem nie używam arduino i mogę się mylić,
musiałby to potwierdzić ktoś kto używa ardiuno .



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2014, o 19:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 26
Pomógł: 0

Dzięki Żaba za odpowiedź.
Kluczowe dla mnie jest odczytanie aktualnej wartości.

Można zdefiniować przed główna pętlą jakie wartości przyjmą te piny, więc czemu by nie wczytywać ich z eeprom jednak najpierw trzeba je tam zapisać. Odczyt i zapis to nie problem, trzeba mieć jednak co zapisywać:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2014, o 19:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Jeśli dobrze myślę z tym arduino to
aktualną wartość masz właśnie w tych rejestrach timera odpowiedzialnych za PWM.

Tylko to zależy jaki tryb PWM jest ustawiony i którego timera dotyczy w Twoim uC
z płytki arduino.

Mam jeszcze pytanie :
Czy wiesz co to jest PWM ?
(bez obrazy - tak można wywnioskować z Twojego pytania)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 maja 2014, o 20:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 26
Pomógł: 0

O żadnej obrazie nie może być mowy:)
Często myślimy, że coś wiemy a okazuje się inaczej, więc warto pytać.
Choć tu rzeczywiście może zbytniego skrótu myślowego użyłem.

W każdym razie dzięki pinowi PWM w arduino steruję tranzystorem, który z kolei steruje taśmą led.
Chciałbym aby podczas wyłączenia na pinie było napięcie 2V to aby takie powróciło po włączeniu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2014, o 18:47 
Offline
Nowy

Dołączył(a): 22 maja 2014
Posty: 12
Pomógł: 0

Rozumiem, że szukałeś i nie znalazłeś więc daj przed wpisaniem wartości do PWM również do zmiennej.
Pewno tych pewuemów dużo nie masz to się nie zrujnujesz na RAMie.
Prymitywne rozwiązanie, ale powinno być skuteczne.

Wygląda, że można bezpośrednio odczytywać rejestry, więc można metodą,którą proponuje Zaba.
http://letsmakerobots.com/content/arduino-101-timers-and-interrupts



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 maja 2014, o 19:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Z tego linku co podał kolega @Tymczas wnioskuję ,że
musiałbyś przed wyłączeniem urządzenia odczytać
rejestr odpowiedzialny za porównanie przy Twoim PWM-ie

(musiałbyś sprawdzić na którym timerze masz zrobiony PWM
jeśli jest to ATmega8 i Timer1 wtedy będze to rejestr OCR1A i/lub OCR1B
w zależności od trybu PWM)

i zapisać je a przy włączaniu urządzenia odczytywać i zapisać rejestrów

taka jest moja propozycja można by się pokusić o
wyłączenie przerwań przed odczytem i zapisem oraz
ponowne włączenie po tych operacjach



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 11:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 26
Pomógł: 0

Panowie dzięki za próbę pomocy jednak mam wrażenie, że idziemy z armatą na kanarka.
Z poziomu aplikacji wysyła za pośrednictwem BT informacje w postaci 10,0,255,100 (nr pinu,R,G,B) i takie wartości są ustawiane na pinach.

Szczególnie, że wasze propozycje przerastają mój poziom wiedzy, mam nadzieję, że jak doczytam Bluebook'a to się to zmieni, jednak wtedy postawię całość na uC, nie sądziłem, że kiedyś to powiem ale pewniej zaczynam się czuć w C niż Arduino, od którego zacząłem swoją przygodę.

Póki co spróbuję w osobnej zmiennej przechwycić wysyłane wartości i zapisać je w tablicy, potem umieszczę procedurę jej wczytania przed pętlą główna programu, a sam zapis do eeprom zainicjuję za pomocą jakiegoś case aby nie zamęczyć pamięci.

Prawdopodobnie moja niepełna wiedza nie pozwoliła mi na zadanie precyzyjnego pytania.
Tak czy inaczej dziękuje za próbę pomocy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 11:16 
Offline
Nowy

Dołączył(a): 22 maja 2014
Posty: 12
Pomógł: 0

dudinr1 napisał(a):
Póki co spróbuję w osobnej zmiennej przechwycić wysyłane wartości i zapisać je w tablicy, potem umieszczę procedurę jej wczytania przed pętlą główna programu...


Przecież dokładnie to sugerowałem w pierwszej części mojej odpowiedzi ;-)
Tyle, że skoro piszesz aplikacje pod Androida, to wydało mi się, że to za proste dla Ciebie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 11:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 26
Pomógł: 0

Tymczas wiem, że sugerowałeś dlatego napisałem, że póki co tak spróbuję to załatwić:)

Z tym pisaniem aplikacji na androida to nie przesadzałbym, póki co poradniki, tutoriale i udało się oprogramować parę przycisków i suwaków na ekranie telefonu. Swoją drogą jest to prostsze niż mi się wydawało zanim do tego nie usiadłem, podobnie było z C, Arduino, uC i pewnie z każdą dziedziną życia i wiedzy, z która nie miało się nigdy do czynienia.

I nic nie jest za proste dla mnie:) Im prostsze działające rozwiązanie się zastosuje tym mniejsza szansa że się zepsuje:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 maja 2014, o 19:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Z przechwyceniem też dobry pomysł a zapis do pamięci
możesz zrobić na Twoje żądanie i będziesz miał pełną kontrolę nad
ilością zapisów



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2014, o 16:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 26
Pomógł: 0

Udało mi się rozwiązać problem.
Działający kod programu dodałem jako załącznik.

Teraz mam kolejny problem do rozwiązania.
Gdy arduino jest podłączone do USB laptopa i z niego bierze zasilanie to wszystko działa, a gdy podłączę je w samochodzie pod ładowarkę samochodową to jakby moduł btm 222 przestawał się komunikować z Arduino i zmiany wartości na suwakach nie dają efektu.

Arduino cały czas działa ponieważ poprawnie odczytuje wartości pinów.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



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: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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