Pages: [1] 2   Go Down
Author Topic: Creazione strumentazione per moto  (Read 1096 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti! Mi presento sono crf97 e da un mese a questa parte ho iniziato ad interessarmi ad Arduino, un po per motivi pratici(come vedete dal titolo) un po per curiosità. Arrivo al dunque, io vorrei praticamente programmare Arduino in particolare, Arduino Mega 2560, come strumentazione per il mio quad. La strumentazione comprende: contagiri, contachilometri e relativo tachimetro, indicatore livello benzina, indicatore temperatura e credo nient'altro. Girando un po nel forum ho visto alcuni codici per il contagiri:
 
Code:
byte sensore = 12;
byte LED1 = 1;
byte LED2 = 2;
byte LED3 = 3;
byte LED4 = 4;
byte LED5 = 5;
byte LED6 = 6;
byte LED7 = 7;
byte LED8 = 8;
byte LED9 = 9;
byte LED10 = 10;
byte LED11 = 11;
byte pin_rpm[11];
float RPM;
float ms;
float minuto = 60000.000;
unsigned long timeout = 1000;
void setup()
{
  Serial.begin(9600);
  pinMode(sensore, INPUT);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  pinMode(LED7, OUTPUT);
  pinMode(LED8, OUTPUT);
  pinMode(LED9, OUTPUT);
  pinMode(LED10, OUTPUT);
}

void loop()
  {
    
    ms = pulseIn(sensore, HIGH, timeout);
    RPM = (float)minuto / ms;
    if (RPM >= 500.00) pin_rpm[0] = 1; else pin_rpm[0] = 0;
    if (RPM >= 1000.00) pin_rpm[1] = 1; else pin_rpm[1] = 0;
    if (RPM >= 2000.00) pin_rpm[2] = 1; else pin_rpm[2] = 0;
    if (RPM >= 3000.00) pin_rpm[3] = 1; else pin_rpm[3] = 0;
    if (RPM >= 4000.00) pin_rpm[4] = 1; else pin_rpm[4] = 0;
    if (RPM >= 5000.00) pin_rpm[5] = 1; else pin_rpm[5] = 0;
    if (RPM >= 6000.00) pin_rpm[6] = 1; else pin_rpm[6] = 0;
    if (RPM >= 7000.00) pin_rpm[7] = 1; else pin_rpm[7] = 0;
    if (RPM <= 8000.00) pin_rpm[8] = 1; else pin_rpm[8] = 0;
    if (RPM >= 9000.00) pin_rpm[9] = 1; else pin_rpm[9] = 0;
    if (RPM >= 10000.00) pin_rpm[10] = 1; else pin_rpm[10] = 0;
    for (byte i=1; i < 12; i=i++)
   digitalWrite(i, pin_rpm[i-1]);
      }
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 e per il contachilometri ho copiato quello presente su questo topic  smiley-red http://forum.arduino.cc/index.php?topic=112968.0



 I miei dubbi sono:
- Posso racchiudere i vari codici ( di cui mancano quello per i due indicatori) in un unico sketch ?
-Se questo non è possibile che soluzioni posso adottare ?
Grazie in anticipo.

P.S. Il contachilometri come si può vedere stampa il risultato su un LCD grafico mentre i due indicatori e il contagiri non sono altro che dei led messi in fila.
Logged

italy
Offline Offline
Sr. Member
****
Karma: 6
Posts: 291
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao, benvenuto al forum,

Visto che voui usare un LCD per il resto dei dati, perchè non visualizzare gli RPM sul display e relegare a pochi led, magari la funzione cambiata o shiftlight?  useresti meno led e sarebbe anche meglio, appena intravedi con la coda dell'occhio i led che si accendono in successione, sai che stai vicino al massimo (limitatore) e devi cambiare (a patto ci sia il cambio, ovvio).

Per usare una funzione conta Chilometri ti serve anche un sensore posto su una ruota, poi con i dati della circonferenza ruota e il numero di impulsi a giro, ti ricavi la distanza percorsa e quindi anche la velocità.  Per il livello carburante dipende dal metodo di rilevamente che hai a disposizione sul mezzo, di solito sono dei potenziometri e quindi potresti misurare la resistenza ma va creato un  circuito per farlo (molti galleggianti per auto hanno un singolo filo e per leggerlo dovresti fare un piccolo circuito con qualche resistenza e il +5V) quindi bel progettino.
Logged

"The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle" - Steve Jobs

Italy (Venice)
Offline Offline
Edison Member
*
Karma: 22
Posts: 1246
Quello che non c'è non si può rompere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Certo che puoi fare tutto con un unico microcontrollore, ma non puoi copiare i incollare i vari sketch e basta, bisogna integrare i vari moduli in modo che il programma esegua tutti i moduli in "multitasking" e assicurarsi che ogni modulo non usi le stesse risorse hardware all'interno del MC e che non entrino in conflitto

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Eh giá, ora che ci penso usare tutti quei led è un po scomodo anche perché si occupano moltissime uscite .inoltre ora stavo proprio riflettendo... non è che quei led sul manubrio mi accecano ? Direi di si. Ricapitolando potrei utilizzare 2 lcd uno per il contachilometri e uno per il contagiri dove a quest'ultimo sono collegati 2-3 led per indicare la cambiata perfetta ed il fuorigiri. Per i sensori del contachilometri, temperatuta e benzina ho quasi trovato tutto. Per il contachilometri ho un paio di reed utilizzatinnegli allarmi pronti per essere posizionati sulla ruota, per la temperatura utilizzerò un LM35, per la benzina ho iniziato a costruire un sensore di livello composto da dei reed posti all'interno di un tubicino, che entra nel serbatoio , e a varie altezze in modo tale da segnare il livello. Presto meterò gli ultimi due sketch. Che dite ?

P.s. ah dimenticavo per i due indicatori dovrò inevitabilmente usare dei led messi in sucessione
Logged

italy
Offline Offline
Sr. Member
****
Karma: 6
Posts: 291
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non capisco perché usare due LCD, dopotutto aggiungerebbe più difficoltà al progetto, dovrai avere due linee seriali come minimo, è fattibile credo, ma dispendioso e mi accodo a quello che ha detto Icio.

Per il livello carburante sono un pò perplesso della soluzione indicata, sarebbe meglio un galleggiante secondo me, ma se hai già fatto qualche esperimento, continua pure, sarà interessante vedere il risultato.   

Io ti consiglierei usare un bel display LCD, diciamo un 2x16, 2x20 o ancora meglio, un 4x20 alfanumerico seriale, così occupi solo 3-4 pin al massimo, ne esistono di già compatibili con Arduino e semplici da utilizzare (con librerie e non). 

Per i LED io ti consiglierei di usarne 5-6 al massimo, messi in successione e programmati in base al fuorigiri, metterei uno bello luminoso (i super led) rosso come ultimo, diciamo 300 giri prima del limitatore, e poi di lì a scendere, uno ogni 100-200 giri, magari con colori che passano dal rosso (vicino al fuorigiri) al verde (lontano dal fuorigiri) passando per il giallo (a metà strada, ottimo per la cambiata senza incorrere in problemi come troppo vicino o troppo lontano dal limitatore, ma questo è un'aspetto che è importante solo nelle corse...).

Se poi hai tanta pazienza, voglia di imparare ed un budget maggiore, potresti giocare con un bel LCD TFT di quelli con shield per la mega da 2,8-3,2"  ma quelli che ho viato in giro, non sono seriali, ma paralleli ed occupano un casino di pin, poco eficiente secondo me, meglio uno con protocollo seriale SPI, ho giocato con un 4D Systems e non è malvagio (si trovano anche diversi kit e shield ma sono costosini rispetto a quelli paralleli).
Logged

"The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle" - Steve Jobs

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai ragione... Unica cosa è che non ho molte esperienze di programmazione conosco il c++, perchè lo stiamo studiando a scuola. ma comunque, per quanto riguarda l'LCD, il TFT mi attira un bel po il problema è proprio quello di come programmarlo! io vorrei creare un qualcosa tipo questo http://www.motocicliste.net/moto/fazer/strumentazione.jpg purtroppo qui si usano i led come contagiri che a me piacciono moltissimo  smiley-cry
Logged

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 37
Posts: 1276
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Fai attenzione: non è conveniente usare i pin 0 ed 1 poiché sono riservati al Serial Monitor.
Logged

italy
Offline Offline
Sr. Member
****
Karma: 6
Posts: 291
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Guarda cosa potresti fare con un TFT: 

http://forum.arduino.cc/index.php?topic=231066.msg1667483#msg1667483 

qui ho messo due foto di un piccoletto da 1,44 pollici che si programma abbastanza facilmente (il manuale è ben spiegato comando per comando, ci vuole solo tanta pazienza  ed impegno),  i comandi sono abbastanza semplici da automatizzare quindi se stai già studiando il C++ a scuola, calcola che quello di arduino è ancora più semplificato, proprio per consentire a persone non del mestiere di accedervi. 
Logged

"The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle" - Steve Jobs

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bene allora opterò per un bel tft più o meno grande su cui farò stampare i risultati del contachilometri, temperatura e livello benzina... per il contagiri voglio usare i led scusatemi ma ho la fissa del contagiri con i led !! ahahahah smiley-lol
Logged

italy
Offline Offline
Sr. Member
****
Karma: 6
Posts: 291
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vada per i LED allora! smiley-grin  Se vuoi fare qualcosa come quello della moto yamaha da te indicato in foto, potresti usare uno piccolo o poco più grande come il mio e metterci i led tutti in torno!! dovresti solo potergli fare un bel case per inglobare il tutto!!
Logged

"The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle" - Steve Jobs

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si per il case non ho problemi... anzi è l'ultimo pensiero ! che dici un TFT da 2,4" potrebbe andare bene ?
Logged

italy
Offline Offline
Sr. Member
****
Karma: 6
Posts: 291
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Penso proprio di si, va benissimo, ma mi raccomando, facci una protezione intorno per evitare che la luce solare gli batta contro, non so fino a che punto sono resistenti ad essa, purtroppo non credo siano pensati per uso in esterni, quindi prendi le dovute precauzioni.
Logged

"The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle" - Steve Jobs

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Guarda questo tft! http://www.ebay.it/itm/Arduino-Uno-2-4-TFT-LCD-Shield-Touch-Panel-Display-Screen-/321354672060?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item4ad23b27bc&_uhb=1 non costa tanto! che dici può andare ?
Logged

italy
Offline Offline
Sr. Member
****
Karma: 6
Posts: 291
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

in realtà, non costa niente o quasi!! ma purtroppo credo abbia due difetti:

1-dicono sia per la UNO, può essere usata sulla Mega ma andrebbe più lenta della metà (!?) per i pin diversi tra le due schede,
2-è del tipo parallelo, ovvero ti occupa un sacco di pin che potresti usare per altro, ma nel tuo caso, con la Mega non credo vi siano dei problemi, semmai, cercane specifiche per la MEGA ne ho visti vari e quasi tutti su quel prezzo o poco più.  Se però lo prendi seriale lo potresti un giorno usare con altri micro, basterà rivedere il codice un po, mentre questi paralleli, specie se montati su shield, sono "condannati" alla board per la quale sono stati pensati, riconvertirli si può, ma con un bel groviglio di cavi e/o un PCB creato apposta, mmmm, non mi sembra il massimo.  Ti consiglio di cercare, non affrettarti e fai bene a chiedere opinione, magari eviti qualche spiacevole inconveniente...
Logged

"The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle" - Steve Jobs

Pages: [1] 2   Go Up
Jump to: