Show Posts
Pages: 1 ... 7 8 [9] 10 11
121  International / Generale / Re: Come controllare 2 stepper con 2 easydriver on: November 27, 2011, 04:39:04 pm
Ciao, dal codice che hai inviato secondo me a te sembra che i motori ruotino contemporaneamente solo perchè il delay è basso, ma in realtà il codice del loop attiva il motore 1, attende 60 microsecondi, disattiva il motore 1 e attende altri 60 microsecondi e solo dopo esegue la solita cosa per il motore 2 (cambia solo il delay da 60 a 90) e poi rinizia. Quindi credo che se tu aumenti il delay ti renderai conto che in realtà gira prima il motore 1 e poi il due e cos' via in modo ciclico.
Credo che per far ciò che vuoi tu debba simulare il pwm da codice dando impulsi di high e low ai motori senza delay ma utilizzando la funzione millis per determinare accensioni e spegnimenti asincroni dei due motori in modo indipendente, una cosa del tipo:
Code:
if (millis()+60>last_M1_enabled && not M1_enabled){
   digitalWrite(STEP_PIN_M1, HIGH);
   last_M1_enabled=millis();
   M1_enabled=true;

if (millis()+90>last_M2_enabled && not M2_enabled){
   digitalWrite(STEP_PIN_M2, HIGH);
   last_M2_enabled=millis();
   M2_enabled=true;
}
if (millis()+60>last_M1_enabled && M1_enabled){
   digitalWrite(STEP_PIN_M1, LOW);
   last_M1_enabled=millis();
   M1_enabled=false;

if (millis()+90>last_M2_enabled &&  M2_enabled){
   digitalWrite(STEP_PIN_M2, LOW);
   last_M2_enabled=millis();
   M2_enabled=false;
}
Non avendo du motori e due driver non ho avviamente provato il codice postato e non è neppure otimizzato, la cosa descritta si può fare meglio e con meno istruzioni ma ho ritenuto il codice così scritto più comprensibile. Il codice postato non è la simulazione del pwm da software ma dovrebbe fare al caso tuo per iniziare a ttenere ciò che desideri.
Ciao

122  International / Generale / Re: Driver strip led rgb on: November 25, 2011, 09:36:22 am
Ciao, il regolatore non serve ad alimentare le strisce led, ma a fornire i segnali di hight per l'elettronica di controllo, il +12 lo collegato al 7805 e all'anodo comune dei led, ho ricontrollato il circuito e mi sembra corretto... sto sbagliando qualcosa???
123  International / Generale / Driver strip led rgb on: November 25, 2011, 08:13:31 am
Ciao,
vorrei realizzare un driver per strip led rgb con un interfaccia che permetta all'utente di variare i parametri di illuminazione della striscia led.
Cercando sul forum e su internet ho trovato alcune discussioni in cui si consigliava di utilizzare led con anodo comune e mosfet per pilotare l'accensione dei led (uwe docet).
Partendo da queste considerazioni ho creato lo schema che allego, di cui sotto darò una rapida spiegazione, ma vorrei l'aiuto di qualcuno più ferrato di me in elettronica che mi aiuti a eliminare gli ultimi dubbi rimasti, per il resto spero di aver creato in modo corretto il circuito, se così non fosse ogni critica è ovviemente ben accetta.
L'alimentazione comune delle strisce led è a 12V, circa 36W e un massimo di 3A assorbiti, ho inserito un regolatore di tensione per ottenere anche i 5v dal solito punto d'alimentazione.
I tre potenziometri li ho collegati agli ingressi analogici per permettere all'utente di selezionare il colore desiderato quando lo switch "Auto/manual" è in posizione manual.
I tre pulsanti M1, M2 e M3 richiamano tre configurazioni memorizzate in precedenza quando lo switch "Auto/manual" è in posizione auto, in posizione manual se premenuti per 5 secondi memorizzano la configurazione dei tre potenziometri.
Il pulsante Rnd farà calcolare i colori a caso e varierà l'illuminazione ogni tot secondi con effetto fade.
I tre led rossi si attivano alla pressione dei relativi pulsanti M1, M2 e M3 per far capire all'utente che il comando è stato ricevuto (richiamo o memorizzazione)
Q1, Q2 e Q3 sono tre mosfet tipo IRF540 che reggono 22A.
Il pulsante Enable/Disable attiva o disattiva la striscia led
Ora veniamo ai dubbi:
Ho messo per goni interruttore/switch una resistenza da 10k di pull-down è corretto il suo utilizzo e la configuazione adottata?
Le resistenze R4 R5 e R6 da 1k per pilotare i transitor bastano da 1/4 di w?
Le resistenze R1, R2 e R3 da 470 ohm sono corrette anche nel caso di un carico così elevato o è meglio aumentarne il valore?

Una volta risolti i primi due dubbi mi metto tutto sulla breadboard e inizio a codificare il tutto testando con un comune led rgb (non ho ancora la strisca led e visto il costo la acquisto solo in fase finale quando la parte di codice regge), alla fine ho intenzione di pubblicare il codice e lo schema adottato e volevo sapere se era meglio qui nel forum o nel playground...
Grazie a chi avrà voglia di rispondermi e ciao
124  International / Generale / Re: Come controllare 2 stepper con 2 easydriver on: November 23, 2011, 03:02:09 am
Ciao, per come è costruito il codice è normale che giri prima un motore e poi l'altro, quando entri in un ciclo for (ad esempio) ci resti finchè questo non termina. Quindi il tuo codice richiama la funzione per far muovere M1 e resta dentro tale funzione finchè non esce dal for, poi richiama la rotazione di M2.
per ottenere la rotazione contemporanea dei due motori dovresti ripensare il codice con un unico ciclo e sanza l'uso dei delay (che bloccano il codice) ma con la funzione millis e relativi controlli.
[OT]
il tuo codice si comporterebbe allo stesso modo anche se non stesse girando su un micro ma su un pc dotato di processore multicore, ma in tal caso potresti ricorrere alla programmazione multithread senza dover cambiare il codice più di tanto.
[/OT]

Ciao
125  International / Generale / Re: Come controllare 2 stepper con 2 easydriver on: November 20, 2011, 06:14:27 am
Ciao, se non ho capito male il tuo problema si riduce alla sola creazione di altre quattro variabili (o meglio sarebbe fare dello costanti) per indicare a che pin hai collegato gli altri motori, poi con delle strutture condizionali (if, switch) che più ritieni opportune piloti il motore che desideri. Ad esempio
int DIR_PIN_M1 =2;
int STEP_PIN_M1 =3;
int DIR_PIN_M2 =5;
int STEP_PIN_M2 = 7;
int DIR_PIN_M3 = 8;
int STEP_PIN_M3 =10;

if (Condizione per muovere motore 1){
   digitalwrite(STEP_PIN_M1, HIGH);
   delay(100);
   digitalwrite(STEP_PIN_M1, LOW);
}
if (Condizione per muovere motore 2){
   digitalwrite(STEP_PIN_M2, HIGH);
   delay(100);
   digitalwrite(STEP_PIN_M2, LOW);
}
if (Condizione per muovere motore 3){
   digitalwrite(STEP_PIN_M3, HIGH);
   delay(100);
   digitalwrite(STEP_PIN_M3, LOW);
}
126  International / Generale / Re: funzione include ? on: November 18, 2011, 10:01:52 am
Ciao, si si può ma devi ricordarti di chiudere il file sulla sd prima di aprirne un'altro.
Per leggere il file ti puoi basare sul codice presente nell'esempio ReadWrite del menù Example->SD, invece che scrivere nel serial scrivi nel client

Ciao
127  International / Generale / Re: comunicazione seriale con PIR on: November 17, 2011, 06:14:01 am
Ciao,
  senza caricare uno sketch come fa arduino a leggere e scrivere sul serial monitor? devi crearne uno che legga il valore del sensore e scriva con la serial.write il dato, o cio che vuoi venga messo sulla seriale, e poi utilizzare il serial monitor.

Ciao
128  International / Generale / Re: Big easy driver e sleep mode on: November 15, 2011, 03:05:34 am
@ratto93
Hai ragione sono stato poco preciso ma nella mia immensa niubbagine credevo che il big easy driver fosse cosa conosciuta...  smiley-red
@uwe
Grazie, sempre preciso ed efficace!

Ciao
129  International / Generale / Big easy driver e sleep mode on: November 14, 2011, 01:33:39 pm
Ciao a tutti, solo una piccola conferma perchè ho sempre paura di sfasciare arduino e il driver...  smiley-confuse
 Per entrare correttamente in sleep mode devo mettere a low il pin collegato al pin sleep del big easy driver e frapporre tra arduino e sleep una resistenza da 10K giusto? Stessa cosa per MS1 e MS2 che vanno a GND con due resistenze da 10K per avere il full step.
Ho cercato anche nel forum internazionale e mi sembra di aver capito così ma non voreei sbagliare...

Ciao e grazie
130  International / Generale / Re: emettitore - ricevitore ir on: November 10, 2011, 12:06:20 pm
Attento a mettere la resistenza da 10K solo tra massa e pin di lettura del dato e non nella parte che alimenta il trasmettitore ir

Ciao
131  International / Generale / Re: emettitore - ricevitore ir on: November 09, 2011, 03:04:05 am
Ho acquistato anch'io da robot-italy i componenti in questione, il trasmettitore è un normalissimo led a infrarosso che devi collegare ad arduino tra massa e un pin digitale con una resistenza tra il pin e e il led infrarosso da 270/330 ohm. Mentre il fototransistor devi collegarlo a massa e +5v, tra i +5 e il fototransistor metti una resistenza da 10Kohm. L'uscita la prendi tra la resistenza e il fototransistor e la colleghi ad un ingresso analogico di arduino o, in alternativa come ho fatto io, ad un ingresso d'interrupt.
Comunque sul sito ci sono i riferimenti con anche l'esempio di schema elettrico che ti ho indicato.

Ciao
132  International / Generale / Re: Separare la parte intera e quella decimale di una float in due int on: November 05, 2011, 01:29:54 pm
Ciao, non so se esiste un modo più veloce però a me è ventuo in mente di:
1) Convertire la variabile float in una intera ( variabileIntera = (int) variabileFloat )
2) Sottrarre alla variabile float la variabile intera ( variabileFloat -= variabileIntera )
3) Moltiplicare per 100 la variabile float ( variabileFloat *= 100 )
4) Convertire la variabile float in una nuova variabile itera ( variabileIntera2 = (int) variabileFloat )

Ciao
133  International / Generale / Re: Motore passo passo con potenziometro on: October 31, 2011, 04:52:37 am
Io mi sto cimentando ora con i motori passo passo e da quel che ho capito fin'ora è che i motori passo passo necessitano di software/hardware con logica di controllo, e quindi credo non sia possibile pilorarli con il solo uso di un potenziometro, il controllo velocità con potenziometro credo si applichi ai soli motori DC che comunque con arduino puoi sfruttarli con il pwm
Ciao
134  International / Generale / Re: Arduino e pagine web on: October 29, 2011, 04:54:21 am
Bhè il codice è sempre ben accetto!

Ciao
135  International / Generale / Re: Sensori da stampante on: October 29, 2011, 04:52:26 am
Ok grazie a Rattoe a Uwe sono riuscito a testare i due sensori... anzi optocopler a forchetta (ora so anche come si chiamano smiley ) alll'inizio non riuscivo a farli andare, avvo come suggerito da Ratto verificato la polarità del diodo e collegato a massa il pin centrale (peraltro già individuato visto che sulla scheda era l'unica pista comune) ma non ne volevano sapere di leggere dei valori sensati, poi grazie alla resistenza da 10kOhm sul fototransistore tutto a preso ad andare a meraviglia.
Per chi in futuro smontasse stampanti Epson magari questo thread potrà servire... per la cronaca nella stampante c'è un terzo sensore uguale a quello più grosso della foto che non ho provato ma non credo vi siano differenze.

Grazie a Ratto e Uwe per il prezioso aiuto!
Pages: 1 ... 7 8 [9] 10 11