Witam, zabawe z arduino zacząłem od niedawna i srednio idzie mi programowanie w języku C.
Wymysliłem sobie, że zrobie model bramyna arduino.
przycisk S1 i S2 to będą przyciski S1-w lewo, S2-w prawo
do tego czyjnik (przycisk na modelu) gdy brama sie zamknie C1 i drugi czujnik na drugim koncu bramy gdy brama sie otworzy C2, do tego dwie diody imitujące w którą strone będzie się okręcał silnik K1-silnik bedzie sie krecil w lewo(brama bedzie zamykana) i K2(silnik bedzie otwierał brame)
Więc działanie miało byc takie. Naciskam przycisk w LEWO(S1) i brama się zamyka, naciskam S2 i brama się otwiera, jesli ktos wejdzie na kurs kolizyjny, brama staje i wtedy moge sobie zarządzic czy chce ją zamknąć czy otworzyć. Fajnie byłoby tez gdyby szlo zrobic tak ze gdy sie OTWIERA/ZAMYKA to moge od razu zmienic na ZAMYKANIE/OTWIERANIE sie bramy bez czekania az dojedzie do konca i czujnk zadziała
Tutaj przedstawiam mój marny sketch....
chciałem też dodac czujnik w razie gddyby ktoś stanął na kursie kolizyjnym z bramą stad czujnik C3 i lampe ktora migałaby podczas zamykania i otwierania, stad SYGNALIZATOR.
int c1 = 12;
int c2 = 11;
int c3 = 10;
int s1 =9;
int s2 = 8;
int k1 = 7;
int k2 = 6;
int sygnalizator = 5;
void setup () {
pinMode(k1, OUTPUT);
pinMode(k2, OUTPUT);
pinMode(sygnalizator, OUTPUT);
pinMode(c1, INPUT_PULLUP);
pinMode(c2, INPUT_PULLUP);
pinMode(c3, INPUT_PULLUP);
pinMode(s1, INPUT_PULLUP);
pinMode(s2, INPUT_PULLUP);
}
void loop() {
if (digitalRead(c1^s2) == LOW)//jesli c1 i s2 beda zwarte to
{ digitalWrite(k2, HIGH); //k2 czyli silnik w prawo sie zalaczy
while (digitalRead(c2) == HIGH)//bedzie tak dlugo pracowal az
{
digitalWrite(k2, LOW); //na czujniku c2 pojawi sie sygnal
}
} else if (digitalRead(c2^s1) == LOW) //tutaj podobnie co wyzej
{ digitalWrite(k1, HIGH);
while (digitalRead(c1) == HIGH) {
digitalWrite(k1, HIGH);
}
}
}