Sommario:
- Passaggio 1: ingredienti
- Passaggio 2: costruzione di Arduino
- Passaggio 3: codifica Arduino
- Passaggio 4: Opzionale: schermo LCD
- Passaggio 5: parti stampate
- Passaggio 6: posizionamento
Video: Motore passo-passo controllato dalla luce + staffa a parete/supporto: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Questo supporto viene utilizzato per alloggiare un motore passo-passo controllato da Arduino, progettato per controllare automaticamente una tenda in base al livello di luce nella stanza. Puoi anche aggiungere uno schermo LCD per stampare il livello di luce. L'attrezzatura 3D è solo a scopo dimostrativo, potrebbe essere necessaria una vera attrezzatura per l'applicazione pratica come la tenda ma anche qualsiasi altra applicazione che ti viene in mente.
Passaggio 1: ingredienti
Per iniziare questo progetto avrai bisogno;
- 2 chipset Arduino- Uno shield motore Arduino- Uno schermo LCD Arduino- 1 breadboard- 1 motore passo-passo bipolare- 1 batteria D- 1 resistenza dipendente dalla luce - 1 resistenza 10k Ω- 10 fili maschio-maschio- 6 maschio- cavi femmina- Accesso a una stampante 3D
Passaggio 2: costruzione di Arduino
Per prima cosa allinea lo scudo del motore con i pin Arduino e, una volta allineati, posizionalo saldamente. Quindi collegare i fili del motore passo-passo nei pin 8, 9, 10 e 11 dello schermo del motore. Dopodiché collegare la batteria D negli slot come mostrato nello schema. Successivamente si desidera ottenere i 6 fili (da maschio a femmina) per lo schermo LCD e collegarli all'altra unità Arduino come mostrato nello schema del circuito. Quindi impostare l'LDR come mostrato sopra, con il resistore collegato alla riga negativa. Quando si aggiunge l'LDR, sul lato con il resistore, aggiungere le connessioni A0 e sul lato opposto, aggiungi 1 ingresso 5V per ogni scheda che stai utilizzando, quindi se stai usando 2 schede, vorrai che ognuna di esse abbia un pin 5V e A0 che vada all'LDR.
Collegare tutti i fili in modo che corrisponda allo schema- 2 ingressi all'LDR- 2 uscite dall'LDR e un resistore collegato a terra- 8 fili al display LCD, 1 5V, 1 massa e 6 ingressi- 4 fili collegati al stepper- 2 connessioni alla batteria- La massa della breadboard deve essere collegata
Passaggio 3: codifica Arduino
Ecco un esempio di codice per modificare lo stato dell'ingranaggio in base all'LDR
Questo è il codice che permetterebbe al progetto di controllare automaticamente una tenda. La foto sopra spiega i diversi percorsi attraverso le istruzioni IF annidate in termini di sipario che sale, scende o rimane dov'è. (clicca sull'immagine per vederla per intero in quanto ci sono problemi di formattazione)
#defineLDRA0//Definisce la variabile "LDR" sul pin A0#include
constintstepsPerRevolution=200;//Quando viene attivato il motore passo-passo, la sua rotazione completa è pari a 200 passi
SteppermyStepper(stepsPerRevolution, 8, 9, 10, 11); // Definisce l'ingresso allo stepper come pin 8, 9, 10, 11
voidsetup(){myStepper.setSpeed(60);//Imposta la velocità con cui il motore esegue una rotazionepinMode(LDR, INPUT);//Definisce la variabile "LDR" come input Serial.begin(9600);//Avvia una lettura seriale }
voidloop(){intlightlevel=analogRead(LDR);//Definisce la variabile "lightlevel" come un'azione che legge il valore di "LDR"Serial.print("Light Level: ");Serial.println(lightlevel);// Stampa il valore di "lightlevel" con la didascalia sopra
/* Ora c'è un ciclo che rileva il livello di luce in ogni punto del percorso * Sono disponibili 3 opzioni, vai su, scendi, rimani nella stessa posizione* È progettato in modo che se il livello di luce rimane lo stesso, lo farà rimani lo stesso, se no cambierà* cioè se è 950, poi va a 952, non succederà nulla, tuttavia se andasse da 950 a 600 tirerebbe su il sipario e viceversa * Ogni passo è indicato da una lettera davanti al passaggio per tracciare dove si trova nel loop attraverso il monitor seriale */
if(lightlevel>=900){Serial.println("A");// Quale passo è nel loopmyStepper.step(3*stepsPerRevolution);//Lo stepper fa 3 giri in avanti. Se è negativo, va all'indietrodelay(30000);// Lo lascia lì per 5 minuti intlightlevel=analogRead(LDR);// Definisce la variabile "lightlevel" come l'ultima lettura da LDRSerial.print("Light Level: ");//Stampa il testo davanti alla variabile Serial.println(lightlevel)// Stampa il valore del livello di luce
if(lightlevel>=900){Serial.println("B");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (livello di luce);
if(lightlevel>=900){Serial.println("C");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Livello luce: "); Serial.println(lightlevel);}
else{Serial.println("D");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Livello luce: ");Serial.println(livelloluce);}}
else{Serial.println("E");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Livello luce: ");Serial.println(livelloluce);
if(lightlevel>=900){Serial.println("F");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (livello di luce);}
else{Serial.println("G");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Livello luce: ");Serial.println(livelloluce);}}
}
else{Serial.println("H");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Livello luce: ");Serial.println(livelloluce);
if(lightlevel>=900){Serial.println("I");myStepper.step(3*stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println(livelloluce);
if(lightlevel>=900){Serial.println("J");myStepper.step(3*-stepsPerRevolution);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: "); Serial.println(lightlevel);}
else{Serial.println("K");myStepper.step(3*-stepsPerRevolution);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Livello luce: ");Serial.println(livelloluce);
}}
else{Serial.println("L");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Livello luce: ");Serial.println(livelloluce);
if(lightlevel>=900){Serial.println("M");myStepper.step(0);delay(500);intlightlevel=analogRead(LDR);Serial.print("Light Level: ");Serial.println (livello di luce);}
else{Serial.println("N");myStepper.step(0);delay(10000);intlightlevel=analogRead(LDR);Serial.print("Livello luce: ");Serial.println(livelloluce);
}}
}
}
Passaggio 4: Opzionale: schermo LCD
Ciò stamperebbe il livello di luce rilevato dall'LDR sullo schermo LCD.
#includere
-
//Aggiunge la libreria a cristalli liquidi con codice aggiuntivo#define ldr A0 //Definisce la variabile "ldr" al pin A0
LCD a cristalli liquidi (8, 9, 4, 5, 6, 7); // inizializza la libreria con i numeri dei pin dell'interfaccia
voidsetup() { //codice che viene eseguito una volta in startlcd.begin(16, 2); // imposta rispettivamente il numero di colonne e righe dell'LCDpinMode(ldr, INPUT); // Definisce ldr come input pinSerial.begin(9600); // Avvia la comunicazione con il monitor seriale
}
voidloop() { //codice che verrà ripetuto continuamenteSerial.println(analogRead(ldr)); // Stampa la lettura che ldr rileva (un numero compreso tra 0-1023) sul monitor seriale lcd.setCursor(6, 0); // imposta il cursore sulla colonna 6, riga 0lcd.print(analogRead(ldr)); // Stampa questa lettura sullo screendelay(1000) LCD; // Ritarda il comando successivo di un secondo
}
Passaggio 5: parti stampate
Utilizzare i seguenti file per stampare il supporto e l'attrezzatura. Puoi personalizzare l'attrezzatura per i tuoi scopi e puoi utilizzare la staffa per montarla a parete o come display. Poiché l'attrezzatura 3D è debole, può essere utilizzata una vera attrezzatura come sostituto purché corrisponda al sipario che controllerà.
Se verrà utilizzato l'ingranaggio stampato in 3D, uno dei denti dell'ingranaggio è stato rimosso in modo che una vite di fissaggio possa fissarlo al motore.
Anche le 2 gambe anteriori del supporto a parete possono essere rimosse se dovesse essere montato a parete. Sono stati aggiunti solo in modo che potesse reggersi mentre stavamo testando con esso.
Passaggio 6: posizionamento
Ora che tutte le parti sono pronte, è il momento di iniziare il posizionamento finale.
Innanzitutto, posiziona il motore passo-passo nella scatola fornita sul supporto e metti l'ingranaggio sull'asse Quindi, sposta i fili in modo che vadano dietro il supporto Infine, posiziona l'arduino e la batteria dietro il supporto
La tua scheda dovrebbe ora assomigliare a quella nella foto sopra.
Congratulazioni!
L'ingranaggio può essere utilizzato per tende automatizzate o qualsiasi altra cosa che si desidera controllare dall'LDR.
Hai fatto. Goditi la tua nuova creazione.
Consigliato:
Supporto per laptop con staffa angolare: 7 passaggi
Supporto per laptop con staffa angolare: non sono mai stato così felice di usare un laptop piatto sulla scrivania: è davvero dannoso per la tua postura. Ho guardato i supporti per laptop e ce ne sono alcuni carini, ma costosi e hanno caratteristiche come l'inclinazione e la rotazione che non servono a nulla per me. ho provato bo
Staffa di montaggio per treppiede ISight: 3 passaggi
Staffa di montaggio per treppiede ISight: mi ritrovo sempre a fissare, appoggiare o appendere le mie varie web cam o la mia fotocamera iSight da libri, scaffali o scatole in tutta la casa, se sto facendo un progetto time lapse o sto configurando una cam per videosorveglianza, questo diventa ab
Staffa HDD da 3,5" per alloggiamento unità da 5,25": 3 passaggi
Staffa HDD da 3,5" per alloggiamento unità da 5,25": la maggior parte di noi ha ancora vecchi CD/DVD-ROM di cui non hai già bisogno, ma ti dispiace buttarli via