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 22 maja 2025, o 02:30


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 30 mar 2014, o 07:23 
    Offline
    Nowy

    Dołączył(a): 25 mar 2014
    Posty: 1
    Pomógł: 0

    Witam. Potrzebuję pomocy w napisaniu kodu. Mam silnik krokowy, który otwiera bramę (funkcja otworz) oraz zamyka (funkcja zamknij). Silnik wykonuje ruch 5000 kroków.

    Kod:
     void otworz(){
         delay(50);
         digitalWrite(13,HIGH); //zapalenie diody LED13 na czas pracy silnika     
         digitalWrite(enablePin, LOW); //uruchomienie sterownika silnika krokowego
         digitalWrite(dirPin, HIGH); //ustawienie obrotów silnika w kierunku otwierania
             for(int i=0;i<5000;i++){   
                 digitalWrite(stepperPin, HIGH);
                 delayMicroseconds(400);
                 digitalWrite(stepperPin, LOW);
                 delayMicroseconds(400);
             }
     }

     void zamknij(){
         delay(50);
         digitalWrite(13,HIGH); //zapalenie diody LED13 na czas pracy silnika
         digitalWrite(enablePin, LOW); //uruchomienie sterownika silnika krokowego
         digitalWrite(dirPin, LOW); //ustawienie obrotów silnika w kierunku zamykania
             for(int i=0;i<5000;i++){
             digitalWrite(stepperPin, HIGH);
             delayMicroseconds(400);
             digitalWrite(stepperPin, LOW);
             delayMicroseconds(400);
           
            }
     } 


    Powyższy kod funkcjonuje prawidłowo, jednak chciałbym wprowadzić zmiany, mianowicie
    podłączyć prawdziwą fotokomórkę bramy z wyjściem przekaźnikowym NC (bezpotencjałowym), której zadaniem będzie zabezpieczenie światła przejazdu, czyli:
    - gdy aktywna (czyli gdy będzie przekaźnik otwarty) nie można rozpocząć funkcji zamknij
    - gdy aktywacja fotokomórki nastąpi w trakcie zamykania bramy, powinna uaktywnić się funkcja
    otworz o liczbę kroków, jaką wykonała do momentu aktywacji fotokomórki (czyli do całkowitego otwarcia).

    Druga sprawa, to jak najlepiej podłączyć taką fotokomórkę do Arduino?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 kwi 2014, o 20:03 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    vegeta napisał(a):
    - gdy aktywna (czyli gdy będzie przekaźnik otwarty) nie można rozpocząć funkcji zamknij

    Trzeba sprawdzić stan wejścia i w zależności od stanu uruchomić funkcję lub nic nie robić.
    vegeta napisał(a):
    - gdy aktywacja fotokomórki nastąpi w trakcie zamykania bramy, powinna uaktywnić się funkcja
    otworz o liczbę kroków, jaką wykonała do momentu aktywacji fotokomórki (czyli do całkowitego otwarcia).

    W zasadzie jakby zmienna i była globalna (zdefiniowana przed funkcją main) i wspólna dla otwierania i zamykania oraz jedna z tych funkcji zmniejszała by zmienną i, a druga zwiększała to by działało. Jednak zawsze jest problem co się stanie jeśli w trakcie zaniknie prąd, albo ktoś przestawi bramę ręcznie. Może lepiej użyć 2 włączników krańcowych.
    vegeta napisał(a):
    Druga sprawa, to jak najlepiej podłączyć taką fotokomórkę do Arduino?

    Tak jak przycisk.

    _________________
    Dragonus Cracovus: Biomagia



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

    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