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?