Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Definicje zmiennych:
- const int IRpin = A0;
- int wypelnienie = 0;
- int zmiana = 5;
- //Definicje pinów, stany początkowe:
- void setup() {
- pinMode(6, OUTPUT); //Pin 6 jako wyjście : przekaźnik do elektrozaworu
- pinMode(7, INPUT_PULLUP); //Pin 7 jako wejście z podciągnięciem : czujnik obecności
- pinMode(8, OUTPUT); //Pin 8 jako wyjście : sterowanie silnikiem
- pinMode(10, OUTPUT); //Pin 10 jako wyjście : PWM dioda
- digitalWrite(8, HIGH); // Wysoka wartość początkowa dla pinu 8
- digitalWrite(6, HIGH); // Wysoka wartość początkowa dla pinu 6
- }
- //Główna pętla programu:
- void loop() {
- analogWrite(10, wypelnienie); //Na początku pętli przypisujemy wartość wypełnienia impulsu dla sterowania diody
- float volts = analogRead(IRpin)* 0.0048828125; //Obliczenia związane z wyskalowaniem wartości analogowej wysyłanej przez sensor na cm
- float distance=32*pow(volts,-1.10); //Obliczenia zwiazane z wyskalowaniem wartości analogowej wysyłanej przez sensor na cm
- if (digitalRead(7) == HIGH) { // Jeśli czujnik zbliżeniowy nie widzi elementu
- digitalWrite(8, HIGH); // Załączamy silnik
- //Sterowanie diodą:
- if (wypelnienie < 255) { // Jeśli zmienna wypełnienie jest mniejsze od 100%
- wypelnienie = wypelnienie + zmiana; // Zwiększamy zmienną wypełnienie o wartość stałej zmiana
- }
- else {
- wypelnienie = 0; //Jeśli wypełnienie jest większe od 100%, to wracamy na początek
- }
- delay(50); //Opóźnienie, aby była widoczna zmiana natężenia światła diody
- }
- else{ // Jeśli czujnik zbliżeniowy widzi element
- analogWrite(10, 0); // Przypisz wartość wyjścia 10 na 0 - wyłączamy diodę
- digitalWrite(8, LOW); // Wyłącz silnik
- if (distance < 20) // Jeśli dystans jest miniejszczy od 20cm
- {
- delay(3000); // Poczekaj 3 s
- digitalWrite(8, HIGH); // Załącz silnik
- delay(2000); // Poczekaj 2 s - czekamy aż element zjedzie z czujnika
- }
- else // Jeśli dystans jest większy od 20 cm
- {
- delay(3000); // Poczekaj 3s
- digitalWrite(6, LOW); // Załącz cewkę elektrozaworu
- delay(3000); // Poczekaj na wysów siłownika (3s)
- digitalWrite(6, HIGH); // Wyłącz cewkę elektrozaworu
- delay(3000); // Poczekaj na schowanie siłownika
- digitalWrite(8, HIGH); // Załącz silnik
- delay(2000); // Poczekaj 2s - czekamy aż element zjedzie z czujnika
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement