Creazione strumentazione per moto

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:

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]);
      }

e per il contachilometri ho copiato quello presente su questo topic :blush: contachilometri digitale GLCD - Generale - Arduino Forum

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.

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.

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

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

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).

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 =(

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

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.

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 XD

Vada per i LED allora! :smiley: 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!!

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

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.

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 ?

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...

ok grazie mille ! in serata comincio a cercare per bene ! 8)

Ragazzi guardate questo kit ! http://www.ebay.it/itm/SainSmart-Mega2560-2-8-LCD-Screen-Display-TFT-LCD-Shield-Kit-For-Arduino-/301130217873?pt=LH_DefaultDomain_0&hash=item461cc27991 comprende praticamente tutto quello di cui ho bisogno TFT, adattatore TFT--->Mega 2560 e scheda Mega 2560 compatibile. che dite può andare ?

Si, si può fare, dovresti solo verificare, visto che viene dalla Cina, se non ti arrivano sorprese sgradevoli con la dogana, a quanto ho letto sul forum, ultimamente la dogana ci stà andando duro con i prodotti provenienza cinese. Del resto, sembra che i prodotti di quel fabbricante non siano malvagi, quindi potrebbe anche andare e se risparmi, tanto meglio. Almeno questa MEGA ha il loro marchio! è un clone, non una contraffazione...

non è la prima volta che prenoto dalla cina ho comprato altre cose e non ho pagato niente ! Proprio qualche giorno fa ho prenotato un regolatore di tensione e per la prossima settimana dovrebbe arrivarvi ! Speriamo bene! comunque... ora prenoto tutto e nel frattempo mi metto a lavoro sul codice !!! :slight_smile:

In effetti è molto difficile che per cose di piccolo valore come queste e comperate come privato ti addebitino l'iva + tasse doganali , cosa molto più facile è che invece di 20gg arrivino dopo 40-50gg