Sommario:

Motore passo-passo controllato dalla luce + staffa a parete/supporto: 6 passaggi
Motore passo-passo controllato dalla luce + staffa a parete/supporto: 6 passaggi

Video: Motore passo-passo controllato dalla luce + staffa a parete/supporto: 6 passaggi

Video: Motore passo-passo controllato dalla luce + staffa a parete/supporto: 6 passaggi
Video: 10 TRUCCHI DA ELETTRICISTA 2024, Dicembre
Anonim
Motore passo-passo controllato dalla luce + staffa a parete/supporto
Motore passo-passo controllato dalla luce + staffa a parete/supporto

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

Costruzione di Arduino
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

Codifica Arduino
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//Include il codice del motore passo-passo

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: