31-01-2018, 19:29
Przede wszystkim, nie wklejaj obrazków, ale kod programu (wewnątrz znaczników: code).
Wstaw sobie dodatkową zmienną, która przechowuje stan rolet (podniesione lub opuszczone). Może być typu bool, bo więcej nie potrzeba. Potem, w zależności od jej stanu (HIGH lub LOW) decyduj, co program ma robić. W pętlach można łączyć warunki za pomocą AND i OR, wykorzystaj je.
Warto też, żebyś wstawił jakiekolwiek czujniki stanu rolet, które powiedzą, czy roleta jest otwarta, czy zamknięta.
Kolejna rzecz:
Ta linia nie ma sensu z co najmniej dwóch powodów. Pierwszy jest taki, że na końcu linii wstawiłeś średnik. Oznacza to, że jeśli warunek while jest spełniony, wykona się to, co znajduje się za nawiasem zamykającym warunek a średnikiem. Innymi słowy: nic. Ta pętla będzie się wykonywać w nieskończoność, właściwie wieszając program. Drugi powód jest taki, że funkcja digitalWrite przyjmuje jako parametry dwie wartości. Pierwsza to pin, którego ma dotyczyć (w Twoim przypadku: 8), druga to stan pinu, jaki ma być ustawiony (u Ciebie stan pinu to OUTPUT, gdzie powinna być to wartość LOW lub HIGH, ewentualnie 0 lub 1).
Gdybym ja miał napisać taki program, powiedziałbym, że:
1. Jeśli roleta jest opuszczona i odczyt z czujnika światła jest mniejszy niż 100, to podnoś roletę tak długo, aż będzie podniesiona.
2. Jeśli roleta jest podniesiona i odczyt z czujnika światła jest większy niż 100, to opuszczaj roletę tak długo, aż będzie opuszczona.
Wstaw sobie dodatkową zmienną, która przechowuje stan rolet (podniesione lub opuszczone). Może być typu bool, bo więcej nie potrzeba. Potem, w zależności od jej stanu (HIGH lub LOW) decyduj, co program ma robić. W pętlach można łączyć warunki za pomocą AND i OR, wykorzystaj je.
Warto też, żebyś wstawił jakiekolwiek czujniki stanu rolet, które powiedzą, czy roleta jest otwarta, czy zamknięta.
Kolejna rzecz:
Kod:
while(digitalWrite(8, OUTPUT));
Gdybym ja miał napisać taki program, powiedziałbym, że:
1. Jeśli roleta jest opuszczona i odczyt z czujnika światła jest mniejszy niż 100, to podnoś roletę tak długo, aż będzie podniesiona.
2. Jeśli roleta jest podniesiona i odczyt z czujnika światła jest większy niż 100, to opuszczaj roletę tak długo, aż będzie opuszczona.