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



Teraz jest 24 kwi 2024, o 09:34


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 9 sie 2017, o 19:58 
Offline
Nowy

Dołączył(a): 16 lip 2017
Posty: 3
Pomógł: 0

Cześć,

Witam wszystkich, jestem tu nowy, proszę o wyrozumiałość (mam nadzieję że ten dział jest odpowiedni).

Działam na płytce stykowej z AtMegą 32. Dzięki uprzejmości kolegów z tego forum udało mi się pozyskać kod do obsługi RTC po I2C i DS18b20 poprzez One wire no i oczywiście obsługę wyświetlacza. Przerobiłem ten kod i dostosowałem do mniejszego wyświetlacza, dodałem alarm temperaturowy itp. Natomiast utknąłem na włączaniu przekaźnika bistabilnego (dwucewkowego).

Dla uproszczenia umówmy się że zapalam i gaszę diody LED. Napisałem kod który po przyciśnięciu przycisku włącza diodę Nr1 a po ponownym przyciśnięciu gasi diodę Nr1 i jednocześnie zapala diodę Nr2, ponowne przyciśnięcie gasi diodę Nr2 i zapala diodę Nr1 i tak w kółko. Problem w tym że chcę aby diody zaledwie mignęły na 200ms a nie świeciły na przemian w sposób ciągły.
Proszę o podanie pomysłu / drogi w którą pójść, bo przerabiając kod uzyskuję gorszy efekt od pierwszego jaki napisałem.

Za wszelką pomoc będę wdzięczny.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2017, o 20:57 
Offline
Użytkownik
Avatar użytkownika

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

najprościej

ustaw stan pinu1 daj delaj 200ms i zmien stan pinu na odwrotny
analogicznie dla drugiego

(.... szklana kula zaparowana :)

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2017, o 10:25 
Offline
Nowy

Dołączył(a): 16 lip 2017
Posty: 3
Pomógł: 0

Robilem juz tak, wtedy migna obydwie, (jedna po drugiej)
Bo jak sa obydwie zgadzone, to zmiana stanu zapali je na te 200ms



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

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

Wstaw kod. Naprawdę trudno odnieść się do problemu, jeśli się go nie widzi.
Zrób zmienną pomocniczą, która będzie odpowiadała za "licznik" naciśnięć przycisku. Jeżeli reszta z dzielenia przez 2 będzie 1, to zaświeć diodę nr1, daj delaj (tak, jak napisał SunRiver). Jeżeli reszta z dzielenia będzie 0, zaświeć diodę nr2 i znowu daj delaj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2017, o 10:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Witam,
Prawdopodobnie stosujesz zależność,
if Led_1 on to Led_1 off ; led_2 on... else...
Spróbuj z zastosowaniem flagi albo zmiennej do zapamiętywania krora byla zapalona dioda.
Ponieważ po wyłączeniu diody po tych 200 ms. Jest na niej taki stan na jaki oczekuje następny warunek.
Dobrze gdybyś wkleił kawałek z obsługą klawisza.
Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2017, o 16:28 
Offline
Nowy

Dołączył(a): 16 lip 2017
Posty: 3
Pomógł: 0

Marhef napisał(a):
Jeżeli reszta z dzielenia przez 2 będzie 1, to zaświeć diodę nr1, daj delaj (tak, jak napisał SunRiver). Jeżeli reszta z dzielenia będzie 0, zaświeć diodę nr2 i znowu daj delaj.



Działa znakomicie :D

Dziękuję Wam za pomoc. Teraz dodaję następne feature'sy

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



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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