Show Posts
Pages: [1] 2 3 ... 20
1  International / Software / Re: acquisizione segnale analogico e misurazione della frequenza on: February 09, 2013, 04:56:11 pm
... dovresti sforzarti di capirlo se no è un imbroglio non un esame... ho messo anche dei commenti...
in ogni caso leggo lo stato della porta, se cambia di stato entro nell'if. All'interno dell'if se il segnale è high significa che siamo facendo una sistole, c'è un if di antirimbalzo che forse non serve e viene incrementato un contatore del battito. quando il segnale torna low significa che si è in fase di diastole e quindi modifica solo lo stato ed aspetta la prossima sistole.


grazie mille mi hai aiutato moltissimo, è il mio progetto di maturità, te ne sono grato... un ultima richiesta che ti faccio se è possibile... potresti spiegarmi i passaggi di questo pezzo di codice? all'esame dovro saper spiegare bene tutti i passaggi e quellli su cui ho delle perplessità sono questi
Code:
void loop() {
   
   
  stato = digitalRead(CardioPin);
  if (stato != ultimoStato) {

    if (stato == HIGH) {
      //sistole...fronte di salita...
      digitalWrite(ledPin, HIGH);
      if ( millis()- oldMillis_antiBounce  > 10)
              {  // se impiega meno di 10 millisecondi per cambiare di stato è un rimbalzo e non lo conto
              contatore ++;
              oldMillis_antiBounce = millis();

              };
                   
      } else {
      // else stato = low significa che sono in diastole
              digitalWrite(ledPin, LOW);
     
     
    }
    ultimoStato = stato;  // lo stato è variato
  }

   if ( millis()- oldMillis  > 15000) {
     //15 secodi di statistica... calcolo media

ecc.
2  International / Software / Re: acquisizione segnale analogico e misurazione della frequenza on: February 06, 2013, 11:50:39 am
ciao allora guarda alla fine è tutto a posto va bene cosi... volevo chiederti una cosa.... a seconda dei valori della variabile bpm devo regolare con la pwm la velocità di un motore..... questo è il pezzo di codice che ho scritto alla fine del programma... ma non accade nulla, la velocità del motore rimane sempre la stessa e non so se sia il massimo o un volero intermedio.... l'interfacciamento del motore è ok, ho provato con il programma fading e funziona non so perche non funziona con quest'altro programma... puoi aiutarmi?
 if ( 0 <= bpm <= 70)
  { analogWrite(tappetopin, 255);}
 if ( 70 < bpm <= 80)
  { analogWrite(tappetopin, 229);}
    if ( 80 < bpm <= 100)
    {analogWrite(tappetopin, 204);}
    if ( 100 < bpm <= 120)
  { analogWrite(tappetopin, 178);}
      if ( 120 < bpm <= 140)
  { analogWrite(tappetopin, 153);}
 if ( 140 < bpm <= 160)
  { analogWrite(tappetopin, 125);}
if ( 160 < bpm)
  { analogWrite(tappetopin, 102);}


si non si fa così il test... si fa
if ((a > 100) && (a < 120))
3  International / Software / Re: acquisizione segnale analogico e misurazione della frequenza on: January 20, 2013, 03:58:22 pm
mm no ho collegato direttamente al pin di arduino l'ucita del sensore.... a che servono queste resistenze di cui parli?

dipenda un po' da che tipo di uscita hai da gestire. La prima cosa che ti invito a fare è gestire in analogica l'uscita di modo che se il segnale non è esattamente 5 volt lo becchiamo lo stesso.
Le resistenze di pulldown sono delle resistenze, di solito grandine, che si mettono tra il pin e massa: questo evita che eventuali disturbi possano alzare il pin... non sempre sono necessarie: sono necessarie ad esempio se metti un tasto... non so se servono: probabilmente non servono però va provato.
4  International / Generale / Re: Università on: January 19, 2013, 09:41:57 am
"Sviluppare macchine che possono lavorare in ambienti che sono ostili o pericolosi per l'uomo"
Però a quanto vedo dalle materie è orientata alle industrie..

è si: poi quando si va a lavorare spesso l'ambiente ostile è quello  smiley-mr-green e il più delle volte le applicazioni non sono esattamente algoritmi di intelligenza artificiale: si tratta di comandare motori, rulliere, finecorsa, sensori di temperatura...
5  International / Software / Re: 2 sensori di temperatura con un allarme e tacitazione on: January 19, 2013, 07:12:42 am
su due piedi ti proporrei questo schema:
Code:
temp1 = leggitemperatura1()
temp2 = leggitemperatura2()
tasto = digitalread(pintasto) // tacitazione
stampa temp1
stampa temp2

if temp1 > 23 || temp2 > 23
    allarme = true;

if temp1 < 23 && temp2 < 23
    allarme = false;


if allarme
     digitalwrite led, high
else
     digitalwrite led, low
     tacitazione = false


if tasto ==high
tacitazione = true
 


if allarme && !tacitazione
     accendi buzzer

if tacitazione
spegni buzzer
6  International / Software / Re: 2 sensori di temperatura con un allarme e tacitazione on: January 19, 2013, 07:03:21 am
ho modificato il post, spero si legga bene  smiley

purtroppo i due sensori interferiscono gli uni gli altri: l'accensione del led del primo sensore viene spenta (dopo il delay) dallo stato del secondo sensore e viceversa. la stessa variabile cambialecose è comune e quindi crea dei conflitti inoltre il programma è gonfio di delay che ti bloccano il programma dandoti l'impressione per 1 secondo che funzioni (ma così non è).
 Non riesco a darti una istruzione da cambiare: secondo me andrebbe ripensato il codice ma sicuramente ci sono tanti tanti metodi per arrivare allo stesso risultato.
7  International / Software / Re: 2 sensori di temperatura con un allarme e tacitazione on: January 19, 2013, 04:54:41 am
però mi pare che qui leggi un solo sensore... e l'altro come hai fatto lo sketch?
ps: includi il codice tra i tag code... trovi  questo tasto di sopra: #
si legge meglio.
un'altra cosa: parli di led lampeggiante ma non capisco come lo gestisci questo lampeggio: a me sembra più una normale tacitazione + spegnimento dell'allarme fintanto che la temperatura non torna bassa.
8  International / Generale / Re: Arduino UNO vs Leonardo on: January 19, 2013, 04:11:59 am
io ho quasi sempre preso leonardo... mi sono sempre trovato abbastanza bene. Vero è che ci sono degli shield  che non contemplano la Leonardo per via di taluni pin spostati però la leonardo ti da di contro qualche pin in più e questa cosa dell'usb che però onestamente non mi è mai interessata.
Svantaggi io sinceramente non ne ho da segnalare... ecco alcune librerie (anzi solo una che mi ricordi: per gli encoder) ho dovuto modificarle perchè non sapevano come era fatto il chip del leonardo (gli interrupt)... però tutto sommato ci ho impiegato anche poco...è imho solo questione di tempo: leonardo è giovane.
Per la possibilità di friggere il leonardo io sinceramente non ci ho mai dato tanto peso: se lo friggo tutto sommato non costa una follia: ne compro un altro: però dipende ovviamente anche da cosa devi farci e quanti devi comprarne di questi controller.... però l'uno che ho comprato era comunque smd quindi cambiare eventualmente il chip sarebbe stato improponibile.



9  International / Generale / Re: Università on: January 19, 2013, 03:57:19 am
non so se la mia esperienza può esserti d'esempio: io ero ragioniere programmatore, dovendo scegliere l'università ha scelto informatica (ex scienze dell'informazione)...di la mi portava il cuore.... non ad economia e commercio..... Ho fatto solo la laurea breve (quella volta era abbastanza separata) perchè (pur non andando per nulla male) offriva un concentrato un po' meno "palloso" (... certi esami tipo analisi 2... fisica 2....non c'erano... insomma spero di spegazzarmi) e dopo perchè volevo inserirmi nel mondo del lavoro.
Ho trovato posto come programmatore vb ancora prima di finire il corso poi per soldi e per opportunità dopo qualche anno ho lasciato il mondo dell'informatica per tutt'altro settore.
Come te ho cercato una facoltà che primariamente mi piacesse come materie trattate perchè studiare quello che ti piace è tutt'altra cosa: l'ho trovata ma parzialmente: analisi matematica, matematica discreta ed altri esami "pallosi" te li troverai inevitabilmente nel tuo percorso.
Al contrario di te io ho sempre lavorato più con i dati che con l'hardware trovando soddisfazione  a lavorare in campi "contabili" o "database" pur sognando ( non lo nascondo) di poter lavorare su "hardware" cosa che non ho fatto... e qui arrivo a quello che volevo dirti: va bene studiare quello che ti piace ma dopo lo studio devi andare a lavorare per portarti a casa un pezzo di pane: sei ormai adulto e devi pensare a quello che farai dopo: per fortuna imho non cambia tantissimo ma è per te d'obbigo riflettere se può essere più facile  a prescindere dai tuoi gusti personali inserirti in un ambito "commerciale" con database, report, statistiche oppure + hardware (...e potrebbe essere plc, automazioni industriali). Di buono è che qualsiasi scelta farai avrai una buona gamma di opportunità: cosa che per esempio certe gettonate università "letterarie" non ti offrono.
Non credere che sia tutto bello... certo fare report da un database sql mi annoia a morte ma mettersi a programmare in piedi i tempi di intervento su un plc mentre il meccanico tira di flessibile una piastra d'acciaio in un capannone a 40 gradi in pieno luglio o congelato in pieno inverno non è facile comunque.
Comunque quello che volevo spiegare è che  qualsiasi lavoro andrai un domani a fare ti diventerà alle volte palloso ed alle volte ti piacerà di più: il lavoro più che "piacerti" sempre e comunque deve esserti "sopportabile" e darti da vivere a te e alla famiglia che hai o avrai.... se poi ti da  soddisfazioni molto meglio ma primariamente quello che si chiede al lavoro sono i soldi per vivere (cosa che a 18 anni - mantenuto dai miei - io davo per assodato ma quando hai una famiglia tua e le tasse da pagare non è proprio così palese che bastino).


10  International / Hardware / Re: Un pulsante in ingresso può comandare 2 o più uscite? on: January 16, 2013, 03:34:50 am
Essendo all'inizio e non conoscendo la programmazione in generale non riesco a capirci nulla....
a mente più lucida vedremo...


dai non abbatterti: hai usato funzioni ben più complesse nel tuo programma: leggi riga per riga il codice di leo e scrivilo giù in C funzionante... funzionerà al primo colpo... in pratica l'algoritmo legge se il tasto è premuto, se il tasto è premuto incrementa uno stato (passa da uno stato al successivo). poi c'è uno switch/case o degli if che in base allo stato accenderanno una luce o l'altra luce...

11  International / Software / Re: Doppio conteggio HIGH LOW di un pin in HIGH on: January 15, 2013, 03:51:06 pm
allora poniamo un altra domanda

io devo leggere degli impulsi che variano da 1 al secondo ad arrivare a 5000 al secondo
arduino è in grado? oppure esiste un sensore un qualunque micro che può fare questa operazione e poi inviare i dati ad arduino?

contando poi che questa lettura è un componente di una cosa molto + ampia

la variabile giri2 la incrementi facendo giri2++ ... non la metti ad uno... e non la azzerri fintanto che non vedi una caduta del segnale... però arduino ha 1 secondo di tempo prima di stampare... in 1 secondo se per caso i giri sono lenti e quindi il pin non cambia di stato la variabile giri2 ha il tempo di fare il giro... 2^16 e tornare a 0... da quello che ho capito giri2 per te è solo un flag per non conteggiare un altro giro... quindi non vedo perchè la incrementi continuamente: dopo che è passata per l'1 lasciala a 2 fintanto che non c'è il fall del segnale.

... quindi la tua risposto sarebbe: non è che arduino non ce la fa... ce la fa troppo...

... studiati bene la soluzione che ti è stata proposta con l'interrupt: è bella, elegante, funzionale, efficace.

12  International / Software / Re: acquisizione segnale analogico e misurazione della frequenza on: January 15, 2013, 03:34:56 pm
allora ho provato e il led che esce dal buffer è sincorno con il led che sta prima del buffer... com'è sta cosa che non prende  alcuni battiti? alcune volte il led si accende poco e l'arduino non li prende... altre volte il led si accende del tutto e non li prende...

allora significa che il segnale di input in realtà non è un vero 5 volt pulito come si pensava ma delle volte è meno. Fai questa sostituzione (pseudocodice)

int val = analogread(cardiopin)
if val >100
  stato = HIGH
else
  stato = LOW
endif
 
e poi continui... vediamo cosa esce: prelevo un segnale più basso...

a... sarebbe bello vedere anche come lo attacchi questo affare... ci sono resistenze di pulldown?
13  International / Hardware / Re: Sensore di temperatura collegato con 10m di filo on: January 12, 2013, 05:11:14 pm
faccio troppa fatica a seguirvi... quello che posso dire dalle mie prove è che la misura dello 0 nel ghiaccio è complicata con questo sensore perchè lo zero è border line per questo sensore tantè che mi pare di aver pure letto che ci sono delle tolleranze diverse sotto i 5 gradi. Se a questa incertezza di base aggiungiamo una misurazione sul ghiacchio fatta alla carlona, magari con il sensore mezzo bagnato e con lo schema 8 si farà fatica a dimostrare qualcosa....non abbiamo nessun punto fisso e tutto variabile di troppo.
Comunque lo schema 8 in linea di massima funziona anche mettendo 220 ohm quindi se le tue resistenze non sono completamente scampanate ed esegui lo schema 8 bene ti calcoli i gradi con il giusto internal reference e togli 10 come dice lo schema della TI ti devi avvicinare alla realtà: l'ho provato e mi funziona.


14  International / Hardware / Re: Sensore di temperatura collegato con 10m di filo on: January 12, 2013, 04:15:09 pm
la granita è pronta ho fatto delle prove ma sono da buttare, il termometro a mercurio mi diceva zero gradi, e sul serial monitor mi usciva un 330, ho pensato che è sbagliato perchè michele mi ha detto che ci dovevamo aspettare 150 o qualcosa di simile ma non era uscito perchè il sensore non riesco ad isolarlo bene cioè una volta mi è entrata l'acqua e ha bagnato i pin del sensore.
mi dice come devo isolare il sensore??
@qsecofr non ho capito la storia del palloncino, cioè prendo un palloncino e dove va messa l'aria metto il sensore??e poi butto tutto nella granita??

ho solo preso un palloncino da bambini... quelli per i gavettoni o ancora meglio quelli lunghi e stretti che usano i pagliacci per fare le spade ed i copricapi ai bambini... e ci ho infilato dentro il sensore... poi io di solito metto un po di scotch (o carta) tra i 3 piedini di modo che non si tocchino durante l'inserimento nel palloncino.... tutto la... poi magari sul definitivo farai una cosa con un tubetto di rame, silicone o cose simili.
15  International / Software / Re: Calcolo checksum 1 byte on: January 12, 2013, 03:53:59 pm
io farei cosi allora

Code:

byte CheckSum(byte arr[], int dim_array){
   byte total = 0;
  
   for(int i=0; i<dim_array; i++)
            total = (total + arr[i]);

   if(total>256) //100h = 256;
      total = total % 256;

   return total
}

il total è rimasto dichiarato byte... non supera mai il 256... sommando fa overflow...
Pages: [1] 2 3 ... 20