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



Teraz jest 14 lis 2024, o 17:23


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 19 wrz 2012, o 15:44 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Witam. Mam problem z kodem w ARDUINO.
Sprawa polega na tym: Podaję sygnał na jeden z pinów(tutaj przyciskiem), jeśli procesor odbierze ten sygnał, nieważne, czy będzie on trwał chwilę czy może też będzie cały czas podawany, to ma zapalić diodę z określoną wartościa nr.1 PWMa. Dioda tak świeci i świeci, gdy nagle dostanie sygnał na inny pin ma zaczekać określony czas(zapisany w zmiennej) i po tym czasie zapalić diodę z wypełnieniem nr.2. Jeśli przestanę podawać sygnały dioda ma zgasnąć.

Skleiłem taki kod:

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


Problem w tym, że jak już puszczę oba przyciski to zostaje pwm nr.2 i muszę też jakoś wyeliminować delay..

Dzięki za pomoc!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2012, o 15:54 
Offline
Użytkownik
Avatar użytkownika

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

zapoznaj się z biblioteką Analog Switch w środowisku arduino
a co do delay to bardzo ładnie możesz go ominąć korzystając
np z mojego sposobu

co opisałem szerzej tutaj ... topic161.html

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 wrz 2012, o 15:58 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Dzięki za przydatny link, na pewno warto zastosować millis, ale po poprawieniu kodu, program działa lepiej ale nie do końca poprawnie. Nie chcę przerabiac całości z biblioteką a zrobić jak jest.


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


Niestety jak włączę tryb 1, to jest ok ale jak wcisnę tryb2 to nie odczekuje mi tej sekundy, oraz nie wyłącza się gdy puszczę przycisk.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2012, o 13:13 
Offline
Użytkownik

Dołączył(a): 11 sie 2012
Posty: 45
Pomógł: 0

Bardzo proszę o pomoc, zastosowalem funkcję millis, ale w tym przypadku powinna ona chyba wyglądać inaczej. Nie wiem jak ją zastosować poprawnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2012, o 17:09 
Offline
Użytkownik
Avatar użytkownika

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

no właśnie wiesz dlaczego ... widzisz milis nie liczy od 0 do 60 cały czas
millis zlicza czas od uruchomienia procesora , czyli liczy cały czas i ty chcąc uzyskać
właściwy efekt musisz odczytać wartość milis i zapamiętać i sprawdzić czy osiągnęła właściwy
rozmiar .... rozumiesz

ciekawostka jest to że 0 .... jest po resecie lub włączeniu zasilania , a jak procek chodzi to stale liczba milisekund jest większa

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



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO