Obsah:
- Krok 1: Ingredience
- Krok 2: Konstrukce Arduina
- Krok 3: Kódování Arduina
- Krok 4: Volitelné: LCD obrazovka
- Krok 5: Tištěné díly
- Krok 6: Umístění
Video: Světlo řízený krokový motor + nástěnný držák/stojan: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Tento stojan slouží k umístění krokového motoru ovládaného Arduinem, určeného k automatickému ovládání závěsu podle úrovně světla v místnosti. Můžete také přidat LCD obrazovku pro tisk úrovně světla. 3D zařízení je pouze pro demonstraci, pro praktické použití, jako je opona, ale také jakákoli jiná aplikace, na kterou si vzpomenete, může být zapotřebí skutečný převod.
Krok 1: Ingredience
K zahájení tohoto projektu budete potřebovat;
- 2 čipové sady Arduino- stínění motoru Arduino- LCD obrazovka Arduino- 1 Breadboard- 1 bi-polární krokový motor- 1 D baterie- 1 odpor závislý na světle- 1 odpor 10k Ω- 10 kabelů male-male- 6 male- ženské vodiče- přístup k 3D tiskárně
Krok 2: Konstrukce Arduina
Nejprve seřaďte stínění motoru pomocí kolíků Arduino a až budou seřazené, pevně jej položte. Dále připojte vodiče krokového motoru k pinům 8, 9, 10 a 11 stínění motoru. Poté připojte baterii D do slotů, jak je znázorněno na obrázku. Dále budete chtít získat 6 vodičů (samec - samice) pro LCD obrazovku a zapojte je do druhé jednotky Arduino, jak je znázorněno na schématu zapojení. Poté nastavte LDR, jak je uvedeno výše, s odporem připojeným k zápornému řádku. Při přidávání LDR na straně s odporem přidejte připojení A0 a na opačné straně přidejte 1 5V vstup pro každou desku, kterou používáte, takže pokud používáte 2 desky, budete chtít, aby každá z nich měla pin LV a A0 směřující do LDR.
Připojte všechny vodiče tak, aby byly stejné jako na obrázku- 2 vstupy do LDR- 2 výstupy z LDR a odpor připojující k zemi- 8 vodičů k LCD, 1 5 V, 1 uzemnění a 6 vstupů- 4 vodiče připojující k krokový- 2 připojení k baterii- Zemnící deska by měla být připojena
Krok 3: Kódování Arduina
Zde je ukázkový kód pro změnu stavu zařízení na základě LDR
Toto je kód, který by projektu umožnil automaticky ovládat oponu. Výše uvedená fotografie vysvětluje různé cesty vnořenými příkazy IF, pokud jde o oponu stoupající, dolů nebo zůstávající tam, kde je. (kliknutím na obrázek jej zobrazíte celý, protože existují problémy s formátováním)
#defineLDRA0 // Definuje proměnnou "LDR" na A0 pin#include
constintstepsPerRevolution = 200; // Když je krokový motor aktivován, jeho plné otáčení se rovná 200 krokům
SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Definuje vstup do stepperu jako piny 8, 9, 10, 11
voidsetup () {myStepper.setSpeed (60); // Nastavuje, jak rychle motor provede rotační pinMode (LDR, INPUT); // Definuje proměnnou "LDR" jako vstup Serial.begin (9600); // Zahájí sériové čtení }
voidloop () {intlightlevel = analogRead (LDR); // Definuje proměnnou "lightlevel" jako akci, která čte hodnotu "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // Vytiskne hodnotu „úrovně světla“s nadpisem výše
/* Nyní existuje smyčka, která detekuje úroveň světla v každém bodě cesty* K dispozici jsou 3 možnosti, jít nahoru, jít dolů, zůstat ve stejné poloze* Je navržen tak, že pokud úroveň světla zůstane stejná, bude zůstaň stejný, pokud ne, změní se * tj. pokud je 950, pak přejde na 952, nic se nestane, ale pokud by šlo z 950 na 600, zatáhlo by to oponu nahoru a svěrák naopak * Každý krok je označen písmenem před schodem sledovat, kde je ve smyčce přes sériový monitor */
if (lightlevel> = 900) {Serial.println ("A"); // Který krok je ve smyčceStepper.step (3*krokyPerRevolution); // Krokovač provede 3 dopředné otáčky. Pokud je záporné, jde zpětně zpožděním (30 000); // Nechá to tam 5 minut intlightlevel = analogRead (LDR); // Definuje proměnnou „úroveň světla“jako nejnovější čtení z LDRSerial.print („Úroveň světla:“); // Vytiskne text před proměnnou Serial.println (úroveň světla) // Vytiskne hodnotu úrovně světla
if (lightlevel> = 900) {Serial.println ("B"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (úroveň světla);
if (lightlevel> = 900) {Serial.println ("C"); myStepper.step (3*-stepsPerRevolution); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (úroveň světla);}
else {Serial.println ("D"); myStepper.step (3*-stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}
else {Serial.println ("E"); myStepper.step (3*-stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
if (lightlevel> = 900) {Serial.println ("F"); myStepper.step (0); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (úroveň světla);}
else {Serial.println ("G"); myStepper.step (0); delay (10 000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}
}
else {Serial.println ("H"); myStepper.step (0); delay (10 000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
if (lightlevel> = 900) {Serial.println ("I"); myStepper.step (3*stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (úroveň světla);
if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (úroveň světla);}
else {Serial.println ("K"); myStepper.step (3*-stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
}}
else {Serial.println ("L"); myStepper.step (0); delay (10 000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
if (lightlevel> = 900) {Serial.println ("M"); myStepper.step (0); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (úroveň světla);}
else {Serial.println ("N"); myStepper.step (0); delay (10 000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
}}
}
}
Krok 4: Volitelné: LCD obrazovka
To by vytisklo úroveň světla detekovanou LDR na LCD obrazovce.
#zahrnout
-
// Přidá knihovnu tekutých krystalů s dalším kódem#define ldr A0 // Definuje proměnnou "ldr" na pin A0
LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // inicializace knihovny čísly pinů rozhraní
voidsetup () {// kód, který se spustí jednou na startlcd.begin (16, 2); // nastavení počtu sloupců a řádků na LCD displeji pinMode (ldr, INPUT); // Definuje ldr jako vstupní pinSerial.begin (9600); // Zahájí komunikaci se sériovým monitorem
}
voidloop () {// kód, který se bude nepřetržitě opakovatSerial.println (analogRead (ldr)); // Vytiskne hodnotu načtenou ldr (číslo mezi 0-1023) na sériovém monitorlcd.setCursor (6, 0); // nastavte kurzor na sloupec 6, řádek 0lcd.print (analogRead (ldr)); // Vytiskne tento údaj na LCD screendelay (1000); // Zpoždění dalšího příkazu o jednu sekundu
}
Krok 5: Tištěné díly
Pomocí následujících souborů vytiskněte stojan a zařízení. Zařízení si můžete přizpůsobit pro své vlastní účely a pomocí držáku jej můžete připevnit na zeď nebo jako displej. Protože je 3D zařízení slabé, lze jako náhradu použít skutečný rychlostní stupeň, pokud odpovídá oponě, kterou by ovládal.
Pokud bude použito 3D vytištěné ozubené kolo, byl odstraněn jeden ze zubů ozubeného kola, aby jej stavěcí šroub mohl připevnit k motoru.
Přední 2 nohy nástěnného držáku lze také sejmout, pokud by byly namontovány na zeď. Byly přidány pouze proto, aby obstály, když jsme s nimi testovali.
Krok 6: Umístění
Nyní, když jsou všechny díly připraveny, je čas zahájit konečné umístění.
Nejprve umístěte krokový motor do dodané krabice na stojanu a nasaďte ozubené kolo na nápravu, poté přesuňte dráty tak, aby směřovaly za stojan, Nakonec umístěte arduino a baterii za stojan
Vaše deska by nyní měla vypadat jako na obrázku výše.
Gratulujeme!
Zařízení lze použít pro automatické závěsy nebo jakoukoli jinou věc, kterou chcete ovládat pomocí LDR.
Jsi hotov. Užijte si svůj nový výtvor.
Doporučuje:
Tajný nástěnný domácí automatizační tablet: 6 kroků
Tajný nástěnný domácí automatizační tablet: Tento návod se bude zabývat tím, jak vytvořit držák pro tablet openHAB (https://www.openhab.org/), ze kterého lze tablet kdykoli vyjmout a kde se bude nabíjet bez kabel a nechte zeď vypadat zcela normálně, když žádný tablet není
Praktický bezdrátový nástěnný LED páskový ovladač Arduino ESP32: 6 kroků
Praktický bezdrátový nástěnný LED páskový ovladač Arduino ESP32: Jedná se o velmi praktický bezdrátový nástěnný výstupní ovladač DIY pro levné LED pásky. Nahrazuje levné wifi ovladače prodávané na EBay. Fungují dobře s RGB LED pásy. Ovladač EBay Wifi není konstruován dobře a snadno se rozbije. Také
Nástěnný držák pro iPad jako ovládací panel domácí automatizace, aktivace obrazovky pomocí magnetu ovládaného servem: 4 kroky (s obrázky)
Nástěnný držák pro iPad jako ovládací panel domácí automatizace, pomocí magnetu ovládaného servem k aktivaci obrazovky: V poslední době jsem strávil nějaký čas automatizací věcí ve svém domě a kolem něj. Jako aplikaci pro domácí automatizaci používám Domoticz, podrobnosti najdete na www.domoticz.com. Při hledání aplikace na palubní desce, která zobrazuje všechny informace o Domoticz
Akustický nástěnný modul SonicMoiré: 8 kroků
Akustický nástěnný modul SonicMoiré: Tento nástěnný modul " SonicMoir é " je navržen tak, aby byl kompatibilní s wikihousy, hodláme ho použít jako součást fasády. Jeho předchozím účelem bylo odfiltrovat určité frekvence ze spektra hluku, a tím snížit expozici hluku
Nástěnný stojan/dok pro iPhone: 4 kroky
Nabíjecí nástěnný stojan/dok pro iPhone: Vytvořte si vlastní nástěnný nabíjecí stojan pro svůj iPhone/iPod pomocí nástěnné nabíječky, kabelu USB a rozřezané láhve šamponu. Tento Instructable byl uveden jako 5minutový projekt v sekci DIY společnosti Popular Science. Budete potřebovat: Láhev šamponu (tato