Spisu treści:

Kontrolowany światłem silnik krokowy + wspornik ścienny / stojak: 6 kroków
Kontrolowany światłem silnik krokowy + wspornik ścienny / stojak: 6 kroków

Wideo: Kontrolowany światłem silnik krokowy + wspornik ścienny / stojak: 6 kroków

Wideo: Kontrolowany światłem silnik krokowy + wspornik ścienny / stojak: 6 kroków
Wideo: Silnik krokowy i bezużyteczne jego sterowanie impulsatorem z pary przekaźników JRG 1702. 2024, Lipiec
Anonim
Kontrolowany światłem silnik krokowy + wspornik ścienny / stojak
Kontrolowany światłem silnik krokowy + wspornik ścienny / stojak

Ten stojak służy do umieszczenia silnika krokowego sterowanego przez Arduino, zaprojektowanego do automatycznego sterowania kurtyną w zależności od poziomu światła w pomieszczeniu. Możesz również dodać ekran LCD, aby wydrukować poziom światła. Sprzęt 3D służy tylko do demonstracji, do praktycznego zastosowania może być potrzebny prawdziwy sprzęt, taki jak kurtyna, ale także w każdym innym zastosowaniu, o którym możesz pomyśleć.

Krok 1: Składniki

Aby rozpocząć ten projekt, będziesz potrzebować;

- 2 chipsety Arduino - osłona silnika Arduino - ekran LCD Arduino - 1 płytka do krojenia chleba - 1 dwubiegunowy silnik krokowy - 1 bateria D - 1 rezystor zależny od światła - 1 rezystor 10 kΩ - 10 przewodów męskich - 6 męskich - przewody żeńskie- Dostęp do drukarki 3D

Krok 2: Budowa Arduino

Budowa Arduino
Budowa Arduino

Najpierw wyrównaj osłonę silnika z pinami Arduino, a gdy zostaną ustawione, umieść ją mocno. Następnie podłącz przewody silnika krokowego do pinów 8, 9, 10 i 11 osłony silnika. Następnie podłącz baterię D w gniazdach, jak pokazano na schemacie. Następnie będziesz chciał uzyskać 6 przewodów (męski na żeński) dla ekran LCD i podłącz je do drugiej jednostki Arduino, jak pokazano na schemacie obwodu. Następnie skonfiguruj LDR, jak pokazano powyżej, z rezystorem podłączonym do ujemnego rzędu. Podczas dodawania LDR, po stronie z rezystorem, dodaj połączenia A0 i po przeciwnej stronie dodaj 1 wejście 5 V dla każdej używanej płyty, więc jeśli używasz 2 płyt, będziesz chciał, aby każda z nich miała pin 5 V i A0 idący do LDR.

Podłącz wszystkie przewody tak jak na schemacie - 2 Wejścia do LDR - 2 Wyjścia z LDR i rezystor do uziemienia - 8 przewodów do LCD, 1 5V, 1 Uziemienie i 6 wejść - 4 przewody do podłączenia do krokowy- 2 połączenia z akumulatorem- uziemienie płytki stykowej powinno być podłączone

Krok 3: Kodowanie Arduino

Kodowanie Arduino
Kodowanie Arduino

Oto przykładowy kod do zmiany statusu sprzętu na podstawie LDR

Jest to kod, który umożliwiłby projektowi automatyczne sterowanie kurtyną. Powyższe zdjęcie wyjaśnia różne ścieżki w zagnieżdżonych wyrażeniach JEŻELI pod względem przesuwania się kurtyny w górę, w dół lub pozostawania tam, gdzie jest. (kliknij na obrazek, aby zobaczyć go w całości, ponieważ występują problemy z formatowaniem)

#defineLDRA0// Definiuje zmienną „LDR” do pinu A0#include//Zawiera kod silnika krokowego

constintstepsPerRevolution=200;//Gdy silnik krokowy jest włączony, jego pełny obrót wynosi 200 kroków

SteppermyStepper(stepsPerRevolution, 8, 9, 10, 11);//Określa wejście do steppera jako piny 8, 9, 10, 11

voidsetup(){myStepper.setSpeed(60);//Ustawia szybkość, z jaką silnik wykonuje obrótpinMode(LDR, INPUT);//Definiuje zmienną "LDR" jako dane wejściowe Serial.begin(9600);//Rozpoczyna odczyt szeregowy }

voidloop(){intlightlevel=analogRead(LDR);//Definiuje zmienną "poziom światła" jako akcję, która odczytuje wartość "LDR"Serial.print("Poziom światła: ");Serial.println(poziom światła);// Wyświetla wartość „poziom światła” z powyższym podpisem

/* Jest teraz pętla, która wykrywa poziom światła w każdym punkcie drogi * Dostępne są 3 opcje: idź w górę, zejdź w dół, pozostań w tej samej pozycji* Została zaprojektowana tak, że jeśli poziom światła pozostanie taki sam, będzie zostań bez zmian, jeśli nie to się zmieni* tzn. jak jest 950 to idzie do 952, nic się nie stanie, ale jak by z 950 na 600 to podciągnęłoby kurtynę do góry i na odwrót * Każdy krok jest oznaczony literą przed schodkiem, aby śledzić, gdzie się znajduje w pętli przez monitor szeregowy */

if(lightlevel>=900){Serial.println("A");// Który krok znajduje się w loopmyStepper.step(3*stepsPerRevolution);//Stepper wykonuje 3 obroty do przodu. Jeśli jest ujemna, idzie do tyłuopóźnienie(30000);// Pozostawia na 5 minut intlightlevel=analogRead(LDR);// Definiuje zmienną "poziom światła" jako ostatni odczyt z LDRSerial.print("Poziom światła: ");//Wypisuje tekst przed zmienną Serial.println(poziom światła)//Wyświetla wartość poziomu światła

if(lightlevel>=900){Serial.println("B");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println (poziom światła);

if(lightlevel>=900){Serial.println("C");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: "); Serial.println(poziom światła);}

else{Serial.println("D");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println(poziom światła);}}

else{Serial.println("E");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println(poziom światła);

if(lightlevel>=900){Serial.println("F");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println (poziom światła);}

else{Serial.println("G");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println(poziom światła);}}

}

else{Serial.println("H");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println(poziom światła);

if(lightlevel>=900){Serial.println("I");myStepper.step(3*stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println(poziom światła);

if(lightlevel>=900){Serial.println("J");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: "); Serial.println(poziom światła);}

else{Serial.println("K");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println(poziom światła);

}}

else{Serial.println("L");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println(poziom światła);

if(lightlevel>=900){Serial.println("M");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println (poziom światła);}

else{Serial.println("N");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Poziom światła: ");Serial.println(poziom światła);

}}

}

}

Krok 4: Opcjonalnie: ekran LCD

Spowoduje to wydrukowanie poziomu światła wykrytego przez LDR na ekranie LCD.

#włączać

  • //Dodaje bibliotekę ciekłokrystaliczną z dodatkowym kodem#define ldr A0 //Definiuje zmienną "ldr" do pinu A0

    LCD LiquidCrystal (8, 9, 4, 5, 6, 7); // zainicjuj bibliotekę numerami pinów interfejsu

    voidsetup() { //kod uruchamiany raz na startlcd.begin(16, 2); // ustaw odpowiednio liczbę kolumn i linii wyświetlacza LCDpinMode(ldr, INPUT); // Definiuje ldr jako wejście pinSerial.begin(9600); // Rozpoczyna komunikację z monitorem szeregowym

    }

    voidloop() { //kod, który będzie powtarzany w sposób ciągłySerial.println(analogRead(ldr)); // Wyświetla odczyt pobrany przez ldr (liczba z zakresu 0-1023) na szeregowym monitorlcd.setCursor(6, 0); // ustaw kursor na kolumnę 6, wiersz 0lcd.print(analogRead(ldr)); // Wyświetla ten odczyt na ekranie LCDdelay(1000); // Opóźnia następne polecenie o jedną sekundę

    }

    Krok 5: Części drukowane

    Użyj poniższych plików, aby wydrukować stojak i sprzęt. Możesz dostosować sprzęt do własnych celów i użyć wspornika do zamontowania go na ścianie lub jako wyświetlacza. Ponieważ sprzęt 3D jest słaby, można go zastąpić prawdziwym sprzętem, o ile pasuje do kurtyny, którą miałby sterować.

    Jeśli ma być używana przekładnia wydrukowana w 3D, jeden z zębów przekładni został usunięty, aby śruba ustalająca mogła przymocować go do silnika.

    Przednie 2 nogi wspornika ściennego można również zdemontować, jeśli ma być zamontowany na ścianie. Zostały one dodane tylko po to, aby mogły się utrzymać podczas testowania z nim.

    Krok 6: Umieszczenie

    Teraz, gdy wszystkie części są gotowe, nadszedł czas, aby rozpocząć ostateczne umieszczanie.

    Najpierw umieść silnik krokowy w dostarczonym pudle na stojaku i umieść zębatkę na osi Następnie przesuń przewody tak, aby szły za stojakiem Na koniec umieść arduino i akumulator za stojakiem

    Twoja tablica powinna teraz wyglądać jak na powyższym zdjęciu.

    Gratulacje!

    Sprzęt może być używany do automatycznych zasłon lub innych rzeczy, którymi chcesz sterować przez LDR.

    Skończyłeś. Ciesz się swoim nowym dziełem.

Zalecana: