BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   Costruzione di un sensore S/PORT per RPM (arduino pro mini) (https://www.baronerosso.it/forum/circuiti-elettronici/321473-costruzione-di-un-sensore-s-port-per-rpm-arduino-pro-mini.html)

aisalord 25 luglio 14 19:39

Citazione:

Originalmente inviato da romoloman (Messaggio 4340521)
E c'hai ragione anche tu...
PC357NTJ000F Optocoupler SMD Transistor O P x 10 Pieces | eBay

Pin to pin compatibile....

Grande!

Inviato dal mio Desire HD con Tapatalk 2

romoloman 25 luglio 14 19:43

Citazione:

Originalmente inviato da aisalord (Messaggio 4340539)
Grande!

Inviato dal mio Desire HD con Tapatalk 2

Rileggi sopra...

romoloman 29 luglio 14 21:11

1 Allegato/i
Continuiamo con le puntate....

Il codice scaricato dal repositori così come viene fornito non funziona per lo meno per la parte RPM, infatti: restituisce alla radio la rotazione in Hertz e necessita di un minimo di configurazione per l'utilizzo con OpenTX (2940)
devo dire che le modifiche da me apportate sono veramente minime, più che altro mi hanno consentito di capirne il funzionamento per sviluppi futuri, ad esempio per quanto riguarda il livello del carburante per utilizzare altri tipi di sensori quali flussimetri o anche con il sensore attuale tener conto della posizione del veivolo utilizzando un accelerometro.

Il codice da me modificato è contenuto nello zip allegato e la configurazione del sensore avviene mediante il file oxs_config.h

Prima di commentare il codice invece, posto uno sketch di arduino utilizzato su un altro arduino per simulare la centralina dei giri:
Poiché è presente un fotoaccoppiatore, invertente che nella configurazione utilizzata inverte il segnale, ho pensato di generare un impulso negativo molto stretto, nella considerazione che non mi è dato sapere la lunghezza dell'impulso prodotto dalle varie centraline.
Codice:

/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
*/

//generatore di frequenza fissa
boolean Led = 0;

void setup(){
  pinMode(13, OUTPUT);
  pinMode(8, OUTPUT);

  cli(); //disabilito gli interrupts

  TCCR1A = 0;// setto l'intero registro TCCR1A  a 0
  TCCR1B = 0;// idem per TCCR1B
  TCNT1  = 0;// inizializzo il valore del contatore a 0
  // setto il comparatore per una frequenza di 20Hz
  OCR1A = 3124;// = (16*10^6) / (20*256) - 1
  // abilito il modo CTC
  TCCR1B |= (1 << WGM12);
/* 
Tabella del prescaler
CS12        CS11        CS10        Prescaler
0        0        0        0
0        0        1        1
0        1        0        8
0        1        1        64
1        0        0        256
1        0        1        1024
*/ 
  // Setto CS12 per il prescaler a 256
  TCCR1B |= (1 << CS12) ; 
  // abilito l'interrupt
  TIMSK1 |= (1 << OCIE1A);
  sei();//consento gli interrupt
}


ISR(TIMER1_COMPA_vect){
  if (Led){
    digitalWrite(13,HIGH);
    Led = 0;
  } else {
    digitalWrite(13,LOW);
    Led = 1;
  }
  digitalWrite(8,LOW);
  for (int i=1; i<1000;i++) {} //perdo del tempo
  digitalWrite(8,HIGH); 
}
 

void loop(){
  //non usato
}

Il codice non è nulla di particolare, ma utilizza un interrupt sul timer uno per generare l'impulso in modo da garantire una frequenza il più precisa possibile. (20Hz)
Il led collegato in genere sul pin 13 invece lampeggia a frequenza di 10 Hz.

akrobaticone 29 luglio 14 21:51

Il PCB è l'ultimo che hai postato?

romoloman 29 luglio 14 22:04

Citazione:

Originalmente inviato da akrobaticone (Messaggio 4344957)
Il PCB è l'ultimo che hai postato?

No non proprio...
Ho ricevuto oggi i fotoaccoppiatori inglesi... verifico il layout e riposto.

romoloman 29 luglio 14 23:08

1 Allegato/i
Il layout dovrebbe essere questo, ho incluso anche la libreria modificata con l'optoisolatore postato precedentemente.....
Domani preparo il master e ricontrollo, il design dell'optoisolatore l'ho ricavato dal datasheet del produttore.
L'optocoupler è veramente piccolo, giusto quello che ci voleva...

romoloman 30 luglio 14 01:06

3 Allegato/i
Andiamo avanti con le puntate....

qualche foto dei test

In questa immagine al buio l'impulso proveninente dal''arduino che simula la centralina
l'oscilloscopio (molto vecchio, ma è quello che ho in casa) è settato a 2uS per divisione
quindi l'impulso è circa 3.5uS non ho provato ad accorciare ancora, ma di sicuro qualsiasi cosa più lunga funziona (provato anche con l'onda quadra a 10Hz del pin 13)
Allegato 307556

Questo è il banale circuito di test... l'arduino viene alimentato tramite il pin RAW, i pin 8 dei due arduini sono collegati fra loro, quello a sinistra genera il segnale quello a destra lo legge e lo converte in RPM. Il pin A0 (configurato erroneamente nel codice come FUEL) è collegato a VCC
Allegato 307557


questo è quanto si legge sulla radio...
Allegato 307558

A domani per la prossima puntata...

E' sufficiente cambiare il file osx_config.h nel modo seguente per mandare i valori associati al pin corretto nel disegno.
Sostituite
Codice:

#define SETUP_DATA_TO_SEND    \
                        FUEL_FIRST_ID , VOLT1 , 1 , 50 , 0,\
                        VFAS_FIRST_ID , VOLT2 , 3, 10 ,  0,\
                        DEFAULTFIELD , RPM , 1 , 1 ,  0

con

Codice:

#define SETUP_DATA_TO_SEND    \
                        VFAS_FIRST_ID , VOLT1 , 3, 10 ,  0,\
                        FUEL_FIRST_ID , VOLT2 , 1 , 50 , 0,\
                        DEFAULTFIELD , RPM , 1 , 1 ,  0


romoloman 31 luglio 14 22:11

2 Allegato/i
Continuiamo le puntate...
dopo aver verificato che il layout del'opto fosse effettivamente quello, finalmente ho potuto realizzare il PCB

Ho avuto un po' fretta nello sviluppo e alcune thermals non sono venute perfette (del resto sono 8 mils) ma non dovrebbero influenzare il risultato, al massimo rendere un minimo più complessa la saldatura.

gattodistrada 31 luglio 14 22:24

Citazione:

Originalmente inviato da romoloman (Messaggio 4347083)
Continuiamo le puntate...
dopo aver verificato che il layout del'opto fosse effettivamente quello, finalmente ho potuto realizzare il PCB

Ho avuto un po' fretta nello sviluppo e alcune thermals non sono venute perfette (del resto sono 8 mils) ma non dovrebbero influenzare il risultato, al massimo rendere un minimo più complessa la saldatura.

sempre migliori di alcuni CI che mi ha fatto una ditta "professionale".....

romoloman 31 luglio 14 22:58

Citazione:

Originalmente inviato da gattodistrada (Messaggio 4347104)
sempre migliori di alcuni CI che mi ha fatto una ditta "professionale".....

Normalmente faccio anche di meglio... questi sono fatti con lo scanner bromografato e i master stampati a stampante laser


Tutti gli orari sono GMT +2. Adesso sono le 17:37.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002