Show Posts
Pages: 1 ... 13 14 [15] 16 17 ... 20
211  International / Generale / Re: Comprare arduino neofita on: December 08, 2012, 11:10:56 am
Io la leonardo la sconsiglierei,
perchè? è molto molto simile alla uno e costa pressochè uguale...
212  International / Generale / Re: Comprare arduino neofita on: December 08, 2012, 10:38:27 am
Salve, scrivo per la prima volta in questo forum e vedo che c'è una bella community dietro ad Arduino. Andiamo al dunque..sono uno studente in ingegneria informatica che sta frequentando il corso di elettronica. Essendo poco chiaro e poco pratico quello che si fa a lezione, avevo intenzione di comprare un bel kit per cominciare a fare esperimenti con l'arduino. Il problema è che non ho trovato da nessuna parte qualcosa che mi guida all'acquisto. Non ho idea delle differenze tra le varie versioni e non ho idea di cosa comprare e cosa potrebbe servirmi. In più non ho idea dei vari prezzi delle componenti. Non volendomi fare fregare chiedo a voi esperti che sicuramente conoscete molto di più questo mondo. Vi ringrazio per l'attenzione e aspetto vostre risposte. smiley

be io ho comprato un arduino ethernet ma perchè avevo già in mente una cosa che poi ho effettivamente realizzato... magari ora come primo approccio prenderei il leonardo.... poi ti serve un cavetto usb che puoi fregare al tuo cellulare...poi una basetta millefori da prototipi  e del filo rigido  e poi dipende da cosa vuoi fare... qualche led ed un pugno di resistenze direi che è il minimo che ti può servire.
...il tester ce l'hai no?
...PS: io non so se ho trovato un folle al mio corso di elettronica ma fin che non è arrivato all'elettronica digitale ero vicino al suicidio.... boo... non so se spiegare gli orbitali dei drogaggi dei transistor può andare bene come primo approccio al capire il funzionamento di un transistor... comunque quello che volevo dire è che non è esattamente automatico che l'arduino ti possa servire al corso ma in linea di massima male non ti fa quindi tantovale provare..
213  International / Software / Re: Problemi sul software per un progetto! on: December 08, 2012, 10:04:23 am
altra cosa:
Code:
void lcdlm35() {
  lcd.clear();
  lcd.print( "Temperatura...");
  tempC = analogRead(sensore);
  tempC = (5.0 * tempC * 100.0)/1024.0;
  lcd.setCursor(0, 1);
  lcd.print(tempC);
  lcd.print( (char) 223);                                    // <-------------------- perchè???
  lcd.print(" Celsius ");
  delay(1500);//delay(750)   ;                             // <--------------------QUI DIREI PERCHE' PERCHE' PERCHE'???
  lcd.clear();                                                     // <-------------------- perchè???
}
214  International / Software / Re: Problemi sul software per un progetto! on: December 08, 2012, 09:59:32 am
Il programma funziona come volevo finalmente!!! Grazie!!!
Solo che adesso ho riscontrato un nuovo problema...
Quando si attivano il led,il servo e il buzzer la temperatura sale da 25° a 35°....
Questo è un problema dovuto all'alimentazione oppure a qualcos'altro???
(all'alimentazione intendo adesso perchè devo comprare una batteria che sia utile solo al buzzer e al servo, adesso sono alimentati con arduino)

...guarda che non ci hai detto come hai collegato le cose... in particolare si alza la temperatura di che? del nocciolo? dell'incubatrice? cosa è che fa abbassare ed alzare la temperatura di questa cosa? barre di uranio arricchito?  smiley-mr-green
... e soprattutto quando hai testato il tuo display e  l'lm35 li hai testati approfonditamente per verificare che la temperatura fosse corretta e stabile?
... comunque devi stare all'occhio alle isteresi che non hai gestito per nulla.
215  International / Software / Re: Problemi sul software per un progetto! on: December 08, 2012, 06:09:54 am
Code:
#include <Servo.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float tempC;     
int sensore = A1;
int val = 0;                   
int vecchio_val = 0;           
int stato = 0;
int valore;
int angolo = 0;
Servo mioservo;


const byte tempOttima = 0;
const byte tempOttimaMax = 20;
const byte tempCritica = 25;
const byte ledgreen = 10;
const byte ledyellow = 9;
const byte ledred = 8;

bool green=false;
bool yellow=false;
bool red=false;
bool buzzer=false;
bool servo=false;
 
void setup() {                 
  lcd.begin(16, 2);
  pinMode(13, INPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  mioservo.attach(6);
  pinMode(7, OUTPUT);
}
void loop() {
  lcdlm35();
 
  if ((tempC >= tempOttima) && (tempC <= tempOttimaMax))
  {green = true;}
  else { green = false;};
 
  if ((tempC >tempOttimaMax) && (tempC <= tempCritica))
  {yellow = true; }
  else { yellow = false; };
 
  if (tempC > tempCritica)
  {red = true;}
  else {red = false;}

    //*********************************************************************
    //                                           via tutta 'sta roba....
 // if (tempC > tempCritica)
 // {buzzer = true;}
  //else {buzzer = false;}
 
 // if (tempC > tempCritica)
 // {servo = true;}
 // else {servo = false;}
    //*********************************************************************
  aggiornacolori();
  }

void lcdlm35() {
  lcd.clear();
  lcd.print( "Temperatura...");
  tempC = analogRead(sensore);
  tempC = (5.0 * tempC * 100.0)/1024.0;
  lcd.setCursor(0, 1);
  lcd.print(tempC);
  lcd.print( (char) 223);
  lcd.print(" Celsius ");
  delay(1500);//delay(750);
  lcd.clear();
}

void aggiornacolori() {
  if (green == true) {
    digitalWrite(ledgreen, HIGH);
  }
  else {
    digitalWrite(ledgreen, LOW);
  };
  if (yellow == true) {
    if(( millis() % 1000) > 500)
    {
      digitalWrite(ledyellow, HIGH);
    }
    else {
      digitalWrite(ledyellow, LOW);
    }
  }
  else {
    digitalWrite(ledyellow, LOW);
  }
  if (red == true) {
    //tone(7, 1000);                                     <-----questo lo spostiamo poi come ti ho detto prima
    // apriamo il servo;
     mioservo.write(90);                          //il mio servo si apre massimo di 90 gradi... vedi col tuo che movimento fa...

    if(( millis() % 1000) > 500) {
      tone(7, 1000);                                      // <----------aggiunto 1000hz
      digitalWrite(ledred, HIGH);
    }
    else {
     tone(7, 2000);                                     // <-------------aggiunto: occhio la frequenza è diversa 2000hz
     digitalWrite(ledred, LOW);
     
    }
  }
  else {
    noTone(7);
    digitalWrite(ledred, LOW);
     mioservo.write(0);                                //riporta il servo in posizione chiusa.
  }

    // via questo
 //              if (servo == true) {
  //              servo1();}

}

//void servo1()
//{
 /// via tutta questa procedura non ti serve
//}
}


ecco... speriamo vada...
prima però vedi di aprire il programma esempio dei servo e verificare che il motore si muova come uno si auspicherebbe... il programma esempio sweep si muove di 180 gradi avanti e poi 180 indietro molto lentamente perchè lo fa a step di 1 grado aspettanto il movimento... nel mio servo dopo i 90gradi il motore prende a grattare indi per cui  mi sono fermato a 90 gradi ed ho lasciato che lo facesse la libreria servo senza attese e delay a tutta birra.
216  International / Software / Re: Problemi sul software per un progetto! on: December 08, 2012, 05:49:28 am
Allora!!!
Ho usato la funzione tone!!!
E il risultato mi va bene!!!
L'ho scritto anche nel post precedente...Tanto è vero che in uno dei post di qsecofr è presente questo "comando"...o sbaglio?
Io ho seguito il suo consiglio per il semplice motivo che era il più semplice. Adesso vi riposto lo sketch...
.....
Il servo adesso non è collegato!!!
P.S.
da come potete notare non ho fatto di testa mia!!!

concedimi la battuta: più che altro quando hai fatto di testa tua non ha funzionato...il che onestamente per uno alle prime armi è assolutamente normale...non che io sia infallibile anzi:ogni programmatore fallisce n volte prima di portare a termine il programma ... si chiama fase di debug ma non si bolla un programma in fase di debug come non funzionante e lo si mette nel cassetto... la programmazione non è una lampadina che o è buona o è fulminata è un processo produttivo fatto di step da raggiungere (e capire) pianpiano.
La cosa che un po' mi infastidisce è  che diremo "tarocchi" il mio sorgente e poi dici che non funziona... e basta... e non aggiungi altro... ed io sto li 3 gg a pensare ma... porca eva sono 2 if... deve funzionare... e poi mi accorgo che non hai messo l'else... o non hai messo il tone come ti ho detto...infatti il bitonale funziona se applichi quello che ti ho detto qualche messaggio fa...
ben detto questo continuiamo con il sorgente tanto ormai siamo agli sgoccioli... prossimo messaggio...

...ah... poi pensiamo all'isteresi della temperatura... non hai notato nulla di strano?


217  International / Software / Re: Problemi sul software per un progetto! on: December 08, 2012, 03:05:36 am
@acca90:
ok, vedo che non rispondi alle nostre domande, non segui i nostri consigli e fai tutto di testa tua  smiley-sweat
Onore al merito, in bocca al lupo per il tuo progetto, io mi tiro indietro.

è si... c'ha ragione leo... tra l'altro il doppio tono se fai come ti ho detto io è assolutamente funzionante ed assolutamente simile al quello della tua funzione buzzer... e quanto al servo la domanda era intesa sul cosa deve fare questo servo...quanto deve muoversi in particolare e come... e poi deve aprire una finestra? deve aprire un rubinetto? deve far scendere delle barre di boro nel nocciolo?
218  International / Software / Re: Problemi sul software per un progetto! on: December 07, 2012, 03:53:08 pm
Sono riuscito a farlo funzionare come volevo....anche se fa 1 solo nota!!!ma come allarme è più che sufficiente!!!adesso tocca al servo!!!

be penso che tu debba dirci cosa sbagliavi... vabbè pensiamo al futuro: cosa deve fare questo servo e che sorgente hai in questo momento?
219  International / Software / Re: Problemi sul software per un progetto! on: December 07, 2012, 01:57:46 pm
il fatto è che facendo come mi hai consigliato tu succedono 2 cose:
1) non produce una nota completa...emette solo un brevissimo suono!
2) anche se scende sotto i 25° non si spegne e continua a "suonare"!
Ho fatto esattamente come mi hai indicato tu!!!!

ps
non è che sono legato ai delay smiley....il fatto è semplicemente che io voglio che questo dannato buzzer emetta quel suono così com'è impostato in quel processo!!!se c'è un buon modo per sostituirlo non ho problemi.Ma quello che mi avevi suggerito ieri non andava bene smiley-sad

e lo facciamo con i tone... riposta il programma... impossibile che non si spenga... se me lo riposti poi lo testo: questa volta mi sono procurato il simulatore e durante il we posso provare anche ad attaccarmi col mega.
220  International / Software / Re: Problemi sul software per un progetto! on: December 07, 2012, 01:45:42 pm
ma la funzione tone cosa ti ha fatto di male? fa esattamente quello che vuoi... anche il doppio suono se lo applichi esattamente come ti ho detto di fare sopra... non blocca il processo con questi %Péç°ç di delay che ti stanno tanto simpatici e che ti bloccano aggiornamento temperatura e blink dei led e ti manderanno sicuramente scemo con il servo... che cosa vuoi di più?

nel mio ciclo originale mi sembra che quando tornava giù la temperatura il ciclo percorreva l'else e metteva il red ed il jellow a false... spegnendo tutto...
221  International / Software / Re: come proteggere il codice da lettura on: December 06, 2012, 04:55:25 pm
...be ero/sono programmatore... non più ma prendevo anche soldi col lavoro che facevo e so cosa significa tutela del software ma siccome qui si sta parlando di un arduino pensavo - forse sbagliando - che
1) ci fosse anche tutto un workaround di hardware accanto che "diluisce" di molto l'incidenza in euro del software
2) il software fosse tutto sommato "semplice"
3) il progetto fosse limitato a "uno o comunque pochi arduino" (magari se hai una scheda da vendere in migliaia di copie non usi arduino ma ti fai fare il tuo pcb con il tuo atmel eccetera)
pertanto ho portato ANCHE un altro punto di vista...sarà poi "fischio" a decidere se la mia casistica che ho portato a puro titolo di esempio sia lontana o vicina al lavoro che sta facendo
 
222  International / Software / Re: come proteggere il codice da lettura on: December 06, 2012, 03:24:26 pm
... sono interessanti i metodi che ha descritto leo... però sono molto giuste le cose che ha detto cece.

Nel mio lavoro c'è un noto produttore di macchine (il più grande probabilmente) che si fa fare normali  inverter(ed altro) con firmware proprietario in modo da poter rivendere solo i suoi ricambi...ma io quando prendo una macchina la compro tutta hardware e software e non faccio anche un programma di assistenza obbligatorio a vita... inoltre, dato che le macchine costano diverse centinaia di migliaia di euro e pesano diverse tonnellate trovo abbastanza ridicoli quelli che ti montano le chiavette hardware o 'ste cavolate: per Dio hai una chiave Hardware da 100 quintali attaccata al tuo software: che te ne fai del sofware senza la macchina?
 quindi indovina quante macchine ho di questa ditta? conviene?
e quindi tornando alla tua richiesta: sicuro che valga la pena rischiare di far incazzare il cliente dato che tanto il sorgente non lo recuperi comunque?
223  International / Software / Re: Problemi sul software per un progetto! on: December 06, 2012, 02:35:45 pm
Code:
if (red == true) {
    if(( millis() % 1000) > 500) {
      digitalWrite(ledred, HIGH);
    }
    else {
     digitalWrite(ledred, LOW);
    }
  }
  else {
    digitalWrite(ledred, LOW);
  }
  if ( buzzer == true) {
    if((millis()% 1000) < 500) {
      buzzer1();}
  }
 


vedi il codice sopra? il red è il mio if... il buzzer è il tuo...se il boolean "buzzer"  è falso tu devi spegnerlo...ti manca il ramo else... addirittura potresti buttar via il tuo lavoro ed integrare il buzzer nel mio if red... fare tipo una cosa così:

Code:
if (red == true) {
    tone(pin, 1000);
    if(( millis() % 1000) > 500) {
      digitalWrite(ledred, HIGH);
    }
    else {
     digitalWrite(ledred, LOW);
    }
  }
  else {
    noTone(pin);
    digitalWrite(ledred, LOW);
  }

...forse poi spostando il tone dopo il digitalWrite High e mettendone un tone ad altra frequenza dopo il digitalwrite low potresti ottenere un bitonale simpatico.

...passiamo al servo?
224  International / Software / Re: iniziare seriamente con avr studio on: December 06, 2012, 07:11:48 am
@qsecofr: ovviamente atmelstudio ignora cosa sia arduino e le sue librerie (tranne che per il due dove nell'ultima versione c'è un template), per lui esiste il micro atmega328, la libreria libc, i programmatori ufficiali Atmel, etc.. devi quindi compilare e caricare con qualche altro tool o con avrdude il file .hex generato su arduino. Non è semplice come con l'ambiente di Arduino, se sei agli inizi lascia perdere.

Ciao

be si sono molto agli inizi... praticamente il primo arduino l'ho preso ad agosto di quest'anno....e sono un hobbista perchè faccio tutt'altro nella vita... Me la caviccio come "logica" del programma e so qualcosa di C/asm da studi/passione ma intuisco che non avrei reali vantaggi pratici nel passaggio ad avrstudio... quello che mi manca maggiormente dell'ambiete ide di arduino è di un sistema di debug... ho provato per la prima volta qualche gg fa un simulatore arduino ma mi sta letteralmente sfondando le OO perchè essendo free-share parte un cronometro di 30 secondi ogni volta che cambio una virgola di programma...potrei anche spendere 'sti 20 dollari per lo sblocco ma non sono pienamente convinto del coso in particolare la gestione dei "millis()" mi lascia un pelo perplesso.
225  International / Software / Re: Azzerare la funzione millis() on: December 06, 2012, 06:27:04 am
no no, è chiarissimo quello che hai detto, ma nel mio caso a denominatore non ho un intero ma un double per come l'ho definito io...infatti la prima versione del programma funziona..è nella seconda che c'è qualche problema che non riesco ad individuare...forse è la funzione delayMilliseconds a dare qualche problema non capisco...eppure l'ho ottenuta con delle semplici conversioni direttamente dalla prima, non riesco a capire dove sta il problema...
ahh si hai ragione... ho fatto confusione.


ma perchè il SALI aumenta il ritardo?  Non dovrebbe andare in accellerazione e quindi diminuire i tempi morti?

altra cosa... vedo currentMillis ma tu stai lavorando con i micros.... non ti conviene mettere i micros anche in questo test?
...comunque vedo che tieni alti gli intervalli a 100 millisecondi quindi non dovrebbe essere questo che ti infastidisce.... può succedere che il tuo upDelayTime superi in qualche modo i 100.000 microsecondi e pertanto ti ritrovi ad ogni step già a dover aggiornare?




Code:


if (currentMillis - previousMillis > interval) {
      previousMillis = currentMillis; 
      upDelayTime += ritardo;
    }
    digitalWrite(motorPin1, HIGH); 
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH); 
    digitalWrite(motorPin4, LOW); 
    delayMicroseconds(upDelayTime);


...un'altra cosa io non capisco come ti funziona la funzione di discesa... per me la tua procedura dovrebbe tenere una velocità costante con delay 2 e poi improvvisamente bloccarsi quando hai superato i 150(?) cicli.
Pages: 1 ... 13 14 [15] 16 17 ... 20