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



Teraz jest 23 gru 2024, o 11:09


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