Show Posts
|
|
Pages: 1 ... 25 26 [27]
|
|
392
|
International / Italiano / Re: consigli per Contagiri a lancetta
|
on: July 08, 2011, 07:52:25 am
|
lo scarno e inutile codice attuale! vedrò di postare gli sviluppi man mano! //Costanti*******************************
//Variabili****************************** volatile unsigned int rpm = 0; volatile unsigned long timeold = 0; volatile byte cycle = 0;
//include******************************** #include <LiquidCrystal.h>
//inizializza display******************** LiquidCrystal lcd(8, 7, 6, 5, 4, 3);
void setup() { Serial.begin(9600); attachInterrupt(0, rpm_fun, FALLING); digitalWrite(2, HIGH); lcd.begin(16, 2); }
void loop() { lcd.clear(); lcd.setCursor(0, 1); lcd.print("Valve |"); lcd.setCursor(15, 1); lcd.print("|"); lcd.setCursor(0, 0); lcd.print("RPM "); lcd.print(rpm); lcd.print(" T= "); lcd.write(223); delay(100); }
void rpm_fun() { cycle++; if(cycle == 10) { rpm = 0; rpm = (60000/(millis()-timeold)*10); Serial.println(rpm); timeold = millis(); cycle = 0 ; } }
non fate caso all'accozzaglia di cose inutili che ho scritto sul display, è solo per vedere gli ingombri delle varie cose da visualizzare!
|
|
|
|
|
393
|
International / Italiano / Re: consigli per Contagiri a lancetta
|
on: July 08, 2011, 07:46:18 am
|
|
no bhe, volevo capire come effettuare il calcolo!
il conteggio dei giri verrà poi fatto con un sensore IR o Hall direttamente sull'albero motore!
darò comunque un'occhiata a quel post di cui parli!
|
|
|
|
|
394
|
International / Italiano / Re: consigli per Contagiri a lancetta
|
on: July 08, 2011, 07:00:32 am
|
|
contattami via msn o mail e ti faccio vedere il mezzo. qui mi sembra un po OT.
bhe, di certo non voglio fare tutto e subito. parto con il conta giri, e temperatura, poi pian piano....si vedrà!
ho dato un'occhiata alla libreria servo, sembra semplice da usare. bastano i gradi o i millisecondi da dare in pasto al servo!
vedremo se riesco a fare qualcosa! provo a reperire un servo nel pomeriggio!
|
|
|
|
|
395
|
International / Italiano / Re: consigli per Contagiri a lancetta
|
on: July 08, 2011, 05:37:08 am
|
si hai ragione, scusa. non ho ben spiegato il progetto! si parla di un tentativo di creazione di strumentazione per la mia Vespa da gara. vedrò di andare per step, ma alla fine vorrei qualcosa che abbia: contagiri, sensore temperatura liquido, voltmetro batteria, e controllare un servo che in base ad una tabella e al numero di giri mi apra la valvola di scarico. poi chi sa, se ci si riesce ci metto pure la sonda K! progetto arduo? forse si, per le mie nozioni di programmazione, ma non demordo! poi se mi date anche una mano....ce la posso fare! 
|
|
|
|
|
396
|
International / Italiano / Re: consigli per Contagiri a lancetta
|
on: July 08, 2011, 04:42:53 am
|
|
bhe, perche i Vu-meter andrebbero in crisi con un minimo di vibrazioni del mezzo, e quelli delle auto sono.....un po grossini!
poi suppongo che quelli delle auto o moto, siano a servo, fanno pure il check iniziale per regolare il tutto!
|
|
|
|
|
397
|
International / Italiano / Re: dubbio su temporizzazione!
|
on: July 08, 2011, 04:28:00 am
|
|
niente, alla fine ho cancellato tutto, foglio bianco e ho riscritto tutto da me. Non sarà ottimizzato e perfetto, ma funziona e restituisce il giusto conteggio!
bhe, almeno ci si avvicina. perche ho deciso di eseguire i calcoli sotto interrupt, pertanto una lieve imperfezione ci sarà. Ma il progetto è di sola visualizzazione, pertanto va bene!
ho attaccato un LCD e buttato su il risultato. regolato il tutto, è abbastanza reattivo.
ora il prossimo step che mi è venuto in mente è.....visualizzare il tutto in "analogico", cioè a dire, a lancetta!
l'idea sarebbe di prendere un piccolo servo, il più veloce che trovo ( ne ho visto uno a 0.07 sec.) e porlo dietro un quadrante con una lancetta attaccata!
però, al momento non ho idea di come arrivare dai giri ai gradi! consigliate un map()? o che altro?
|
|
|
|
|
398
|
International / Italiano / Re: dubbio su temporizzazione!
|
on: July 07, 2011, 03:11:27 am
|
|
giri al secondo dici?
io ho connesso un'aggeggino che usavo tempo fà per testare alcune CDI, un semplice disco con un sensore di hall e una calamita. un'impulso per giro!
a quello che dovrebbe essere una rotazione di circa 1000-1500 giri minuto il programma ne restituisce circa 500. poi, al massimo l'aggeggino raggiunge circa 15.000 RPM, ma mi segna massimo 5000 giri!
strano dico io!
|
|
|
|
|
400
|
International / Italiano / consigli per Contagiri a lancetta
|
on: July 07, 2011, 02:48:36 am
|
volevo modificare questo codice per eliminare il doppio rilevamento ad ogni giro. http://www.arduino.cc/playground/Main/ReadingRPMa primo acchitto, vedendo quel 30 nel calcolo, pensavo che inserendo 60 avrei risolto, ma mi ritornano valori dell'ordine dei 20000!! e soprattutto molto ma molto istabili! suppongo sia un'errore nei calcoli e nelle variabili, nelle quali commetto sempre errori! ci gioco da pochissimo, abbiate pietà! ciao e grazie!
|
|
|
|
|
401
|
International / Italiano / Re: Presentazione più consiglio
|
on: July 02, 2011, 09:54:49 am
|
|
spero di non tediarvi con domande idiote, ma sono all'inizio, sopportatemi!
esiste un modo per risalire al tempo impiegato dall'Arduino a compiere una riga di codice? così che possa calcolarmi i tempi delle varie operazioni che svolge per sottrarli ai ritardi che devo impostare!
grassie!
|
|
|
|
|
402
|
International / Italiano / Re: Presentazione più consiglio
|
on: July 02, 2011, 07:47:49 am
|
|
uhm, niente male come soluzione!
No, in teoria, ogni interrupt è distante abbastanza uno dall'altro per permettere lo svolgimento del ritardo assegnato!
ho letto pocanzi che il Delaymilliseconds() funziona sotto interrupt perche prende forza proprio dalle operazioni matematiche sui Mills(). Proverò entrambi i metodi!
Poi ho pure scoperto come creare un Timer facilmente usando i Mills(). Prima programmavo i PIC della Microchip, e li per stabilire un timer non era cosa così immediata!
|
|
|
|
|
403
|
International / Italiano / Presentazione più consiglio
|
on: July 02, 2011, 06:08:43 am
|
|
salve!
Un nuovo possessore di Arduino si unisce a voi! Mi chiamo Giuseppe, Piacere!! Lo posseggo da meno di una settimana, e già mi sono divertito parecchio a provare svariati esempi proposti, poi tagliuzzandoli, unendoli, modificandoli e un paio di robettine idiote le ho pure fatte da me solo!
adesso vorrei iniziare un progettino un po più utilizzabile e che richieda un po di impegno. sempre se riesco eh!
Nell'analizzare inizialmente cosa dovrebbe fare l'Arduino, mi sorge un dubbio. inizialmente il lavoro sarebbe, creare un'interrupt che risponda all'arrivo di un cambio di livello su un'ingresso digitale. Una volta avviato questo interrupt, all'interno dovrei piazzargli una funzione che rispedisca fuori il segnale (sempre digitale, singolo impulso alto) con un determinato ritardo in millisecondi, da prelevare da un'apposita tabella di valori. ora, ho letto che il Delay() non funziona all'interno degli interrupt, perche usa la funzione Mills() per lavorare, cosa che và in contrasto con la natura dell'interrupt, che di natura interrompe il Main Loop!
come posso avere un qualcosa che applichi questo ritardo all'interno dell'interrupt senza dover ricorrere alla funzione Delay()??
vi ringrazio anticipatamente per l'aiuto! e mi scuso in anticipo se, da novellino, sparo boiate!
saluti!
|
|
|
|
|