Show Posts
Pages: 1 ... 21 22 [23] 24 25 ... 63
331  International / Generale / Re: Problemma gestione dei motori di un robot on: July 10, 2013, 04:08:42 pm
Ad occhio I tuoi motorini assorbono circa 100mA ciascuno ed in fase di spunto almeno due volte tanto.

Ma tutto questo con una tensione di 1.5V: triplicandola hai anche triplicato questo assorbimento.

Arduino può erogare al massimo 500mA @ 5V e 50mA @ 3.3V

Ti conviene usare un regolatore di tensione switching tarato a 1.5V anche per evitare che i motori si brucino.

Ricordati anche di inserire i diodi di protezione!

332  International / Hardware / Re: Comandare grande quantità di solenoidi on: July 10, 2013, 03:25:21 pm
Uno dei motivi per preferire la soluzione ULN2803 è quello che al suo interno sono già presenti i diodi per eliminare le extra tensioni derivanti dal carico induttivo.

Perciò, nel tuo schema puoi eliminare tranquillamente la batteria dei diodi di protezione (tra l'altro non dovevano essere collegati a massa) semplicemente collegando il pin 10 a Vcc (12V).
333  International / Software / Re: Sensore TGS 2442 . Aiuto! on: July 10, 2013, 01:14:58 pm
Quote
Purtroppo devo usare questo.

Ovviamente quello indicato dalla Figaro è uno schema di base: ad esempio il transistor PNP usato per il riscaldamento potrebbe essere tranquillamente sostituito da un NPN con emettitore a massa (invertendo la logica dell'impulso).

Il sensore assorbe ben 203mA @ 4.8V quindi è impensabile pilotarlo direttamente con Arduino le cui uscite digitali tollerano al massimo 40mA.

Ti allego un esempio di utilizzo che, anche se usa un PIC, puoi utilizzare come riferimento

mcs.uwsuper.edu/sb/Electronics/CO/schema1.png
334  International / Software / Re: [Fatto] Accendere led con sms. Sim900 shield senza librerie sim900.h on: July 10, 2013, 12:52:02 pm
Anche tu commetti lo stesso errore di un tuo collega: il comando AT deve essere terminato da un <CR> e non da <CR><LF>, perciò non puoi usare il println

Riguardo alla questione della dichiarazione globale della stringa istruzioni è consigliabile farlo perché non sempre le routine chiamate dispongono di molta memoria SRAM: meglio allocare lo spazio all'inizio del programma,
335  International / Software / Re: Problema con GSM/GPRS Shield V2.0 on: July 10, 2013, 12:34:31 pm
In allegato il manuale dei comandi accettati dal SIM900.

Come indicato a pagina 12, il modulo ad ogni comando  AT terminato da <CR> risponde con stringa di tipo
<CR><LF><Risposta><CR><LF>.

E' evidente che si deve gestire la risposta, quanto meno ripulendo il buffer di ricezione se non interessa la risposta.

Attenzione: non usare flush() che, con i nuovi IDE, si limita a svuotare il buffer di trasmissione).

Ti faccio notare, inoltre, che tu usi mySerial.println("AT + CMGS = \"+393338090970\"");

e questo invia oltre la <CR> anche un <LF> che viene interpretato come un secondo comando!
336  International / Software / Re: interprete G-CODE braccio meccanico on: July 07, 2013, 12:50:26 pm
Devi preparare un "interprete" G-code, anche se esistono molte librerie in circolazione.

Comunque, non è un impresa impossibile partire da zero: in fondo i comandi G (quelli più usati) non sono tanti.

Ti consiglio questa strada perché è quella che ti darà i migliori risultati e le più grandi soddisfazioni.

Innanzitutto devi scegliere un G-code standard (ci sono troppi "dialetti" in circolazione!): io uso le definizioni dell'ISO 6983.
Poi incominci a preparare un parser (interprete) per i comandi più frequenti: man mano che il progetto andrà avanti potrai aggiungere nuovi comandi.
Ad esempio analizziamo la seguente linea in G-code:
N10 G01 X100 Y100 Z100 S1000 F250 M03
N10: è una numerazione: se non ci sono salti puoi ignorarla
G01: interpolazioen lineare a velocità programmata con F
Xnnn, Ynnn, Znnn: mi sembra evidente il loro significato
S1000: velocità (Speed)
F250:    velocità avanzamento (Feed)
M03: avvio mandrino con rotazione oraria

Se hai problemi ti posso dare una mano!
 
337  International / Software / Re: Sensore TGS 2442 . Aiuto! on: July 07, 2013, 12:01:08 pm
Innanzitutto usa l'apposito tag Code per inserire il codice (altrimenti il moderatore ti crocifigge!).

Continuo a non capire perché carichi un vettore: che vantaggio c'è?

Ho paura che 3 campioni siano pochi, esseno il primo con alta probabilità non affidabile.

Il sensore Figaro ha un preciso timing per il suo funzionamento: lo hai letto il datasheet?

Se noti ho eliminato l'ultimo delay (2ms) perché compenso il tempo delle istruzioni
338  International / Hardware / Re: Servo rumoroso on: July 07, 2013, 11:49:54 am
Un condensatore in parallelo a cosa?
339  International / Software / Re: Sensore TGS2244 . Aiuto! on: July 07, 2013, 11:25:04 am
Poiché sei nuovo del forum ho pensato di riscriverti "in bella" il tuo sketch:
Code:
/*
 CO Meter
 for Arduino UNO R3 & IDE 1.0.5
 by Flavio ... 07/07/2013
 */

int FigaroHeater = 6;                     // Heat VCC
int FigaroCircuit = 5;                    // Sensing VCC
int FigaroCOPin = 0;

byte N = 10;                              // numero di campioni
int Somma;                                // somma dei campioni (max 32767)

int FigaroCOVal = 0;

void setup() {

  Serial.begin(9600);
  pinMode(FigaroHeater, OUTPUT);
  pinMode(FigaroCircuit, OUTPUT);
  pinMode(FigaroCOPin, INPUT);
}

void loop( ) {

  digitalWrite(FigaroCircuit, LOW);       // turn OFF sensing VCC

  analogWrite(FigaroHeater, 245);         // turn ON heating (recommended 4.8 volts)
  delay(14);                              // heating time
  analogWrite(FigaroHeater, 0);           // turn off heating

  delay(981);                             // ritardo prima attivazione di lettura
  digitalWrite(FigaroCircuit, HIGH);      // turn ON sensing VCC
  delay(3);                               // ritardo prima della lettura

  Somma = 0;
  for (byte I = 0; I < N; I ++) {         // ciclo di letture (@ 8620 sample/s)
    Somma += analogRead(FigaroCOPin);
  }
  FigaroCOVal = Somma / N;                // media per eliminazione "rumore" ed errore su prima lettura
  Serial.println(FigaroCOVal);            // display result (0-1023)
}
340  International / Software / Re: Sensore TGS 2442 . Aiuto! on: July 06, 2013, 06:46:07 pm
Se intendi caricare un vettore con le N=10 letture è possibile, ma inutile.

L'unico motivo per farlo sarebbe quello di dover trattare i dati prima di fare la media: ad esempio un filtro digitale passa basso.
341  International / Hardware / Re: dimmer 220v aiuto on: July 06, 2013, 11:56:27 am
ATTENZIONE!

MI sono accorto di aver scelto il MOC3031M (250V) al posto del MOC3041M (400V)
342  International / Hardware / Re: dimmer 220v aiuto on: July 06, 2013, 02:56:44 am
Dai miei calcoli la potenza dissipata passando da 33 a 360 non supera i 100mW.
343  International / Hardware / Re: dimmer 220v aiuto on: July 06, 2013, 12:58:31 am
Ho modificato lo schema in base alle indicazioni dei datasheet.

Potete dare un vostro parere?
344  International / Software / Re: Mi servono 6-7 decimali ma float non va.... on: July 05, 2013, 11:06:31 pm
Lesto, per favore, chiariscimi questo concetto.

Ho provato a dichiarare una variabile long long, ma l'IDE 1.0.5 non me la riconosce:

long long Prova = 12345678901;

error: integer constant is too large for 'long' type

Ma se faccio così il compilatore non da errore:
long long Prova = 12345678901ULL;
345  International / Software / Re: Mi servono 6-7 decimali ma float non va.... on: July 05, 2013, 02:28:19 pm
Leo, conosci le motivazioni tecniche di una simile limitazione?
Pages: 1 ... 21 22 [23] 24 25 ... 63