06-12-2018, 21:18
(06-12-2018, 21:03)Matfa11 napisał(a):Dałeś strzępki kodu więc nie da sie pomóc.(06-12-2018, 20:56)es2 napisał(a): Rozwiązań jest wiele. Najrozsądniejsze wydaje się aby czujnik wywołał przerwanie w obsłudze którego silnik zostanie zatrzymany.
Tak, tylko problem w tym, że nie wiem jak ta komende wpisać
U mnie jest coś takiego, teraz pytanie co tam dopisać?
void CZUJNIK1(){
digitalWrite(OTWIERANIE, HIGH);
delay(czas2);
digitalWrite(OTWIERANIE, LOW);
delay(pauza);
digitalWrite(ZAMYKANIE, HIGH);
delay(czas1);
digitalWrite(ZAMYKANIE, LOW);
}
void CZUJNIK2(){
digitalWrite(OTWIERANIE, HIGH);
delay(czas2);
digitalWrite(OTWIERANIE, LOW);
delay(pauza);
digitalWrite(ZAMYKANIE, HIGH);
delay(czas1);
digitalWrite(ZAMYKANIE, LOW);
Jak dasz cały, to pewnie dostanę kołatania serca, bo obawiam się, że czas1, czas2, pauza mają setki ms lub więcej. Poczytaj o millis. Delay-em zawieszasz program nie zobaczy on zmiany stanu czujnika. Przerwania nic nie dadzą, bo co z tego, że przerwanie zatrzyma silnik, jak za chwile, po jakimś tam Delay wykona się digitalWrite(OTWIERANIE, HIGH);
Musisz:
- Zapoznać się z podstawowym kursem Arduino.
- Zapoznać się z z wielowątkowością (choćby z użyciem millis).
- Zapoznać się z przerwaniami zewnętrznymi.
Na szczęście nie musisz zapoznać się z RTOS-em.