Show Posts
Pages: 1 ... 387 388 [389] 390 391 ... 681
5821  International / Generale / Re: digitalRead() e ciclo if on: April 14, 2012, 02:59:13 am
Forse manca qualche &
if (v1==1 && v2==1 && v3==0 && v4==0)

Non manca nessuna &, di questa cosa abbiamo discusso abbondantemente in un altro topic, ovvero l'uso degli operatori logici bitwise nelle if e quali sono i pro e i contro, nel caso specifico va benissimo usare il confronto bitwise visto che parliamo di valori booleani.

5822  International / Generale / Re: Costruire driver motore on: April 14, 2012, 02:52:16 am
Ma la perdita di efficienza del driver si ha nel momento in cui gli di degli impulsi pwm oppure sono danni che persistono nel tempo?

La perdita di efficienza è intesa come rapporto tra energia fornita al ponte e quella che arriva al motore, se il motore è fermo non c'è nessuno consumo di energia, salvo i pochi mA usati dalla logica del ponte.
Danni ne fai solo se il ponte surriscalda troppo per via della perdita di efficienza, l'energia viene dissipata in calore invece di arrivare al motore, però consumi molta più energia del dovuto e di conseguenza accorci la durata delle eventuali batterie o regali soldi all'Enel se lo alimenti da rete.
5823  International / Generale / Re: Costruire driver motore on: April 14, 2012, 01:56:27 am
Cavolo.. Allora è vero che quando credi di aver capito tutto ti sbagli smiley

Il vero errore è fidarsi ciecamente di quello che si trova in giro per la rete senza verificare  smiley-grin
Tieni presente che molti siti sono fotocopie, o scopiazzature, di altri che a loro volta hanno attinto a fonti poco attendibili e/o errate, è in questo modo che si propagano rapidamente le cavolate.
5824  International / Generale / Re: Costruire driver motore on: April 14, 2012, 01:21:44 am
però se vuoi agire sulla velocità dei motori devi controllare i pin ENABLE con degli impulsi pwm (analogWrite())

No, non si deve connettere il PWM all'Enable degli IC serie 29x e similari.
L'Enable serve unicamente per spegnere il ponte, non per applicarci il PWM, è un errore grave che porta come conseguenza una grossa perdita di efficienza.
Tutti gli H bridge della serie 29x andrebbero controllati esclusivamente in modo LAP, ovvero con due segnali PWM tra loro complementari applicati su i due input (IN1 e IN2 oppure IN3 e IN4) del ponte, l'Enable o si tiene alto fisso con una pull up oppure si controlla con un segnale dedicato se è necessario spegnere il ponte.
5825  International / Generale / Re: digitalRead() e ciclo if on: April 14, 2012, 01:08:45 am
non va, lo stato è costantemente HIGH xo ho provato su di un attiny85 può essere quello la causa?

La if che ti ho scritto è perfettamente funzionante, puoi verificarlo con il semplice sketch di test che ti allego, inoltre non è possibile che sia sempre vera a meno che in ingresso non hai sempre 1100, il che indicherebbe un problema su come sono connessi i dip switch.
La seconda parte dello sketch, quella nel secondo for, ti fa vedere come unire i quattro ingressi per ottenere un valore numerico compreso tra 0 e 15 in modo da poter usare una switch per decodificare la combinazione impostata con i dip switch

Code:
byte v1,v2,v3,v4,i,valore;

void setup()
{
  Serial.begin(9600);
 
  for(i=0;i<16;i++)  // verifica valore in ingresso
   {
    v1= i & 0b00000001;
    v2= i>>1 & 0b00000001;
    v3= i>>2 & 0b00000001;
    v4= i>>3 & 0b00000001;
   
    Serial.print(v1,DEC); 
    Serial.print(v2,DEC);
    Serial.print(v3,DEC);
    Serial.print(v4,DEC);
    Serial.print(" ");
   
    if (v1==1 & v2==1 & v3==0 & v4==0)
     {
      Serial.println("condizione vera");
     }
    else Serial.println("condizione falsa"); 
   }
   
    Serial.println();
    Serial.println();
   
   for(i=0;i<16;i++)  // sommatoria singoli bit per ottenere un valore unico
   {
    v1= i & 0b00000001;
    v2= i>>1 & 0b00000001;
    v3= i>>2 & 0b00000001;
    v4= i>>3 & 0b00000001;
    Serial.print(v1,DEC); 
    Serial.print(v2,DEC);
    Serial.print(v3,DEC);
    Serial.print(v4,DEC);
    Serial.print(" "); 
   
    valore  =  v1 & 0b00000001;
    valore += v2<<1 & 0b00000010;
    valore += v3<<2 & 0b00000100;
    valore += v4<<3 & 0b00001000;
   
    Serial.println(valore,DEC);
       
   } 
   
}

void loop()
{
}
5826  International / Generale / Re: digitalRead() e ciclo if on: April 13, 2012, 11:48:23 am
come posso fare a creare quindi un ciclo if che come condizione abbia la mia combinazione?

if (v1==1 & v2==1 & v3==0 & v4==0)
{
 // quello che devi fare
}

5827  International / Generale / Re: Strumento di misura on: April 13, 2012, 05:10:00 am
Forse, io non ho mai provato, si può utilizzare l'ADC interno dell' ATmega con la tecnica dell'oversampling per aumentare la risoluzione dell'ADC

L'oversampling e conseguente decimazione per aumentare la risoluzione del ADC funziona solo se il segnale analogico è rumoroso, e c'è tutta una serie di considerazioni su come e quanto deve esserlo, in fin dei conti questa tecnica è un compromesso di condizioni e non una soluzione assoluta.
Una cella di carico fornisce un segnale abbastanza pulito quindi l'oversampling non è applicabile a meno di non introdurre volontariamente un rumore su Aref, ma qui le cose cominciano a farsi molto complicate e difficilmente gestibili a livello amatoriale senza disporre di idonea strumentazione per la messa a punto del sistema.
Esempio pratico, l'oversampling funziona bene con uscite analogiche da sensori mems che sono molto rumorose di loro, non funziona per niente se la applichi ad una tensione presa da un partitore resistivo alimentato da una tensione pulita.
5828  International / Megatopic / Re: swRTC on: April 13, 2012, 05:00:05 am
come mai quando carico l'esempio di questa libreria sul serial monitor mi vengono fuori caratteri strani? Dove sbaglio? grazie

Hai verificato che il baud rate del serial monitor sia lo stesso previsto nello sketch ?
5829  International / Generale / Re: Arduino Standalone on: April 13, 2012, 04:58:04 am
@anatol: il condensatore da 0.1uF va sul pin1 da un lato e tra il pulsante e la resistenza dall'altro

Quello è l'ingresso per il segnale DTR proveniente da una porta seriale per l'autoreset del micro durante la programmazione, ovvero è giusto che un capo del condensatore è apparentemente appeso in aria.
5830  International / Generale / Re: Strumento di misura on: April 13, 2012, 04:52:05 am
Inizialmente si e' parlato di ADC per cui io intendo un coso nero con dei piedini

Si ma il coso nero pieno di piedini in qualche modo deve comunicare con il mondo esterno, ovvero una parte di quei piedini sono un qualche bus di comunicazione.

Quote
Per essere precisi si deve allora parlare di "Scheda di acquisizione analogica completa di sistema di comunicazione"

Un conto è una scheda intera, che potrebbe anche lavorare totalmente stand alone e magari salvare i dati su una SD, e un conto è parlare del singolo componente, inteso come circuito integrato, ADC che per forza di cose deve possedere un modo per comunicare con il mondo esterno.

5831  International / Generale / Re: Strumento di misura on: April 13, 2012, 04:38:26 am
Intendevo dire che dovendo entrare da un AIn sempre 1024 avra' ed a lui servono 10000 punti ; lasciando perdere la storia del 1%

Dove sta scritto che un ADC esterno si collega ad un ingresso analogico di Arduino ?
Un ADC esterno o comunica tramite interfaccia parallela, tanti pin impegnati, oppure tramite un bus seriale come la I2C, SPI etc, e ovviamente passa i dati con la sua risoluzione, ovvero se è da 12 bit avrai un valore intero contenente un valore al massimo pari a 4096.
5832  International / Hardware / Re: Bici elettrica con arduino (controller pwm) on: April 13, 2012, 04:32:02 am
Lo immaginavo, tu cosa consigli, dici che è il caso di stare intorno ai 10-15Khz ?

Impossibile darti un valore preciso senza conoscere esattamente tutti i parametri elettrici del motore, cosa spesso non si trova nemmeno sul data sheet, infatti si fa prima a trovarli con misure dirette, che strumentazione hai a disposizione ?
5833  International / Generale / Re: Strumento di misura on: April 13, 2012, 04:29:48 am
Ma se poi i calcoli li fa Arduino da dove passi per avere una risoluzione maggiore ??

E da quando i calcoli di Arduino sono limitati a 10 bit ?
Se non hanno cambiato il compilatore stamattina mi risulta che i calcoli li puoi fare fino 32 bit  smiley-mr-green
5834  International / Megatopic / Re: swRTC on: April 13, 2012, 04:27:25 am
dice + o - 5 ppm.... eppure il cronometro in questione perde al massimo 2 centesimi in 3 giorni, provato sincronizzandolo con un'apposito sincronizzato gps. Probabilmente hanno lavorato molto sul software e sui controlli di temperatura (attaccato a lui c'è un sensore di temperatura).

Se conosci perfettamente la curva di deriva termica del quarzo, il che vuol dire provarlo in laboratorio in condizioni controllate e con strumentazione di precisione, puoi compensare l'errore da software, previa taratura iniziale di precisione, se conosci in modo preciso la temperatura del quarzo.

5835  International / Generale / Re: Strumento di misura on: April 13, 2012, 04:19:22 am
Ma se poi devi entrare su Arduino sempre 10 bit avrai  smiley-fat

Se usi un ADC esterno la risoluzione sarà quella di quest'ultimo e non certo quella del ADC di Arduino.
Pages: 1 ... 387 388 [389] 390 391 ... 681