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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 13 mar 2025, o 07:54


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
    Autor Wiadomość
    PostNapisane: 9 lut 2015, o 21:59 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 18 maja 2012
    Posty: 16
    Pomógł: 0

    Witam serdecznie i proszę o pomoc.
    Mam urządzenie sterowane PWM-em, ale nie wiem jak się do tego zabrać.
    Założenie jest takie, pwm ma sterować prędkością urządzenia ale w 10 krokach.
    Nie wiem od jakiej wartości pwm to urządzenie startuje więc chciałbym stworzyć tablicę
    w której będzie 9 elementów co w razie złego dobrania wartości pozwoli mi na zmianę
    wartości w samej tablicy. Sterowanie dwoma przyciskami GÓRA, DÓŁ i jednym przyciskiem
    100%. W zależności od naciśniętego przycisku następuje zwiększenie lub zmniejszenie kroku o jeden.
    Do kroku będzie przypisana wartość z tablicy. A po naciśnięciu przycisku 100% nastąpi
    uruchomienie na 100% wypełnienia, ale tylko na czas trzymania przycisku potem ma
    powrócić do kroku na jakim skończył wcześniej. Jeszcze chcę aby po uruchomieniu układu
    pwm ustawiał się na połowie zakresu czyli na kroku 5.
    Walczę z BB ale nic mi nie wychodzi.
    Uruchomiłem pwm na zestawie uruchomieniowym. Jeżeli znajdzie się ktoś kto mnie
    naprowadzi lub podpowie będę bardzo wdzięczny.
    To jest to co mam
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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  
    PostNapisane: 9 lut 2015, o 23:21 
    Offline
    Użytkownik

    Dołączył(a): 27 lut 2013
    Posty: 230
    Pomógł: 4

    Musisz użyć funkcji do OBSLUGI klawiszy nie blokujacej glownej pętli programu czyli bez delay po szukaj jej na blogu Mirka pod haslem dragania styków to bajki



    Ostatnio edytowano 9 lut 2015, o 23:26 przez michal1210, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lut 2015, o 23:21 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27363
    Lokalizacja: Szczecin
    Pomógł: 1043

    Po pierwsze - użyj obsługi klawiszy z tego miejsca:
    http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

    Po drugie - wprowadź zmienną, która będzie inkrementowana albo dekrementowana za pomoca tych klawiszy a nie od razu w klawiszu śmigasz OCR

    później w pętli głównej w zależności od zawartości zmiennej (o ile się zmieniła od ostatniego przebiegu pętli) zmieniaj OCR


    Autor postu otrzymał pochwałę

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lut 2015, o 22:04 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 18 maja 2012
    Posty: 16
    Pomógł: 0

    Witam po dłuższej przerwie.
    Mam już obsługę trzech klawiszy i walczę dalej. Na razie sprawdziłem sobie klawisze na diodach.
    Wyszło coś takiego:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    I rozumiem, że teraz zamiast zmiany stanu diody jako akcja przypisać własne akcje czyli zmniejszenie,
    zwiększenie i wartość max.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 lut 2015, o 19:30 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 18 maja 2012
    Posty: 16
    Pomógł: 0

    Koledzy wymyśliłem sobie tak, a mianowicie:
    trzeci przycisk zaprogramowałem według wskazań funkcją key_pres, i ten sam przycisk zaprogramowałem key_push_up i jak skompilowałem
    to żadnych błędów nie ma ale akcja jest jak się trafi.
    Więc pytanie moje jest następujące.
    Czy tak można, czy trzeba to ugryźć inaczej? Jeżeli tak nie można to proszę napisać dlaczego.
    To jest mój kod:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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  
    PostNapisane: 25 lut 2015, o 22:34 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 18 maja 2012
    Posty: 16
    Pomógł: 0

    Jeżeli mam fragment w którym zwiększam i zmniejszam OCR0 czyli
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    i
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    to jak zatrzymać zwiększanie OCR0 gdy już dojdzie do wartości MAX
    i analogicznie jak zatrzymać zmniejszanie gdy dojdzie do wartości MIN.
    W tej chwili zwiększając przyciskiem wartość OCR0 dochodzi do MAX
    i następuje wyzerowanie i zaczyna rozjaśniać diodę od nowa i przy
    zmniejszaniu jest ten sam efekt dochodzi do 0 i zaczyna znów od 255.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 lut 2015, o 23:31 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2012
    Posty: 193
    Pomógł: 6

    Siemka, instrukcje warunkowe sprawdzające wystarczą do tego by PWM "nie latał w kółko"
    Kod:
    if(OCR0 > 0+krok_zmniejszenia) OCR0 -=krok_zmniejszenia;

    Kod:
    if(OCR0 <= 255 - krok_zwiekszenia) OCR0 +=krok_zwiekszenia;


    Pozdrawiam
    KoreX



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

    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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO