Loading...
Pages: 1 2 [3] 4 5 ... 7   Go Down
Author Topic: uso particolare 7805 - data logger per auto  (Read 2729 times)
0 Members and 1 Guest are viewing this topic.
Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16470
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Puoi dare un'occhiata a questo articolo:
http://www.ladyada.net/make/logshield/lighttemp.html
lì si parla di Data Logging Shield di Adafruit ma il principio è lo stesso: leggere dei dati e salvarli su una SD.
Logged


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

Perchè non isoli l'ingresso con un fotoaccoppiatore veloce e fai passare solo gli impulsi ??
Moreno
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie per le dritte. Nel link ho notato gnuplot, pare molto bello come programma, potrei provare ad utilizzarlo...
Per fotoaccoppiatore che intendete? Una fotoresistenza con una fonte luminosa?
in ogni caso lo sketch è quasi finito, devo provarlo e per questo mi serve arduino. Per questo devo aspettare di tornare a Milano e devo aspettare che mi arrivi
Logged

Offline Offline
Sr. Member
****
Karma: 7
Posts: 293
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie per le dritte. Nel link ho notato gnuplot, pare molto bello come programma, potrei provare ad utilizzarlo...
Per fotoaccoppiatore che intendete? Una fotoresistenza con una fonte luminosa?
in ogni caso lo sketch è quasi finito, devo provarlo e per questo mi serve arduino. Per questo devo aspettare di tornare a Milano e devo aspettare che mi arrivi

sono dei componenti... simili ad integrati: di solito hanno 4 o 6 piedini e sono composti da un led ed un fototransistor (o altro tipo di ricevitore tipo triac o mosfet)... si comportano similmente a dei relay ma sono decisamente più veloci ed adatti ad "arduino". Devi calcolare una resistenza per la parte trasmettitore (che è appunto un led ma è incluso nella plastica)
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qsecofr ti ringrazio per la spiegazione, ora mi acculturo su questa tecnologia ma ho paura che non vada bene per la mia applicazione,vedi il motore è bilanciato ed applicare su una puleggia qualcosa che interrompa la luce vorrebbe dire sbilanciare il tutto, a meno che non faccia in modo da alimentare il led del fotoaccoppiatore con il 12V (applicando una resistenza) e poi collegando la parte "sensore" ad Arduino, in questo modo avrei i sistemi separati ed eviterei di bruciare la scheda in caso di errore.
Questo secondo modo mi piace non poco, forse intendevi questo?
Grazie, un saluto.
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mi sono appena informato, ho scritto una boiata chiedo scusa.
Il fotoaccoppiatore è una figata!! Penso proprio che punterò su questo componente.
Qualcuno sa quanti Hz può reggere prima di fare errori?
Grazie
Logged

Offline Offline
Sr. Member
****
Karma: 7
Posts: 293
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mi sono appena informato, ho scritto una boiata chiedo scusa.
Il fotoaccoppiatore è una figata!! Penso proprio che punterò su questo componente.
Qualcuno sa quanti Hz può reggere prima di fare errori?
Grazie

si si intendeva di alimentare il led con la parte "motore" e ricevere da arduino il segnale del transistor pulito e sicuro al 100%.
Per i tempi di risposta purtroppo devi guardare il datasheet del componente... il 4n32 (molto comune) si spegne in 100 microsecondi ma ce ne sono di veramente veloci specie se smonti apparati tipo vecchi modem o plc... però i tempi di risposta dipendono moltissimo  dal "carico" che metti sul transistor:  più consumi prima si spegne.... di solito sul datasheet ci sono pure le tabelle in tal senso.... anche perchè non è detto che siano tutti esattamente velocissimi tant'è che io un mesetto fa avevo un encoder da gestire e non ce l'ho fatta proprio per questo motivo: alla fine ho usato il sicuramente meno sicuro ma rapido partitore con zener...
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ti ringrazio, guarderó un pò di schede tecniche di fotoaccoppiatori anche se 100 microsecondi dovrebbero essere sufficenti. Avendo io una frequenza max di 134 Hz. Ma piuttosto sto cercando in giro per il forum come fare a dare un nome dinamico a dei file sulla sd, ma non riesco a trovare nulla.
Come posso passare una string come parametro quando creo un nuovo file?
Grazie
Logged

Offline Offline
Sr. Member
****
Karma: 7
Posts: 293
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ti ringrazio, guarderó un pò di schede tecniche di fotoaccoppiatori anche se 100 microsecondi dovrebbero essere sufficenti. Avendo io una frequenza max di 134 Hz. Ma piuttosto sto cercando in giro per il forum come fare a dare un nome dinamico a dei file sulla sd, ma non riesco a trovare nulla.
Come posso passare una string come parametro quando creo un nuovo file?
Grazie

in che senso dinamico? non ti prende una variabile stringa come nome del file? attento al nome corto "vecchio dos".... 8.3
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no se dichiaro una variabile string e la passo al posto del nome file non gli piace. Ora accendono il pc e vi mando la prima versione dello sketch
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ecco qui, tenete conto che è il primo programma che scrivo e che non l'ho ancora testato, inoltre mancano ancora i pezzi dove si calcolano i valori da mostrarsi per temperatura e lambda (per ora mostra i dati come ricevuti), quando avrò arduino provvederò ad inventarmi un modo per convertire i dati in valori intellegibili.

Quote


#include <LiquidCrystal.h>
#include <SD.h>

LiquidCrystal Lcd(12, 11, 5, 4, 3, 2);
int InBobina = 7;
int TimeBobina;
int InEgt = A0;
int InLambda = A1;
int Rpm;
boolean SalvaFile = false;
boolean Recording;
int FileCounter = 0;
boolean Button = 6;
String Record = "";
String FileName;



void setup() {
  Lcd.begin(16, 2); 
  pinMode(InBobina, INPUT);
  pinMode(Button,INPUT);
  pinMode(InEgt,INPUT);
  pinMode(InLambda,INPUT);
}

void loop() {
  TimeBobina = pulseIn(InBobina, HIGH);
  Rpm = 60000 / TimeBobina;
  Lcd.setCursor(0,1);
  Lcd.print("Rpm:      Rec:");
  Lcd.setCursor(0,2);
  Lcd.print("Egt:      λ:");
  Lcd.setCursor(6,1);
  Lcd.print(Rpm);
  Lcd.setCursor(6,2);
  Lcd.print(InEgt);
  Lcd.setCursor(14,2);
  Lcd.print(InLambda); 

  if (Button == HIGH){
    if (SalvaFile){
      SalvaFile = false;
      Recording = false;
    }
    else {
      SalvaFile =true;
    }  

    if (SalvaFile){

    }
    if (!Recording){
      Recording = true;
      if (!SD.begin(4)) {
        Lcd.clear();
        Lcd.print("SD initialization failed!");
        return;
      }
      FileName = "";
      FileName += FileCounter;
      FileName += ".csv";
      if (!SD.exists("Record.txt")){
      File dataFile = SD.open(FileName, FILE_WRITE);
      //File dataFile = SD.open("record.txt", FILE_WRITE);
      Record += "Rpm;InEgt;InLambda";
      dataFile.println(Record);
      dataFile.close();
      Record = "";     
      }
      //File dataFile = SD.open("record.txt", FILE_WRITE);
      File dataFile = SD.open(FileName, FILE_WRITE);
      Record += String(Rpm);
      Record += ",";
      Record += String(InEgt);
      Record += ";";
      Record += String(InLambda);         
      dataFile.println(Record);
      dataFile.close();
    }
  } 
}




Grazie, saluti
Nicola
Logged

Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16470
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://arduino.cc/en/Reference/SDopen
Se vedi, il metodo open() vuole una stringa di tipo char* mentre tu dichiari NomeFile di tipo String.
Devi fare la conversione fra NomeFile e char*

http://arduino.cc/en/Reference/StringObject
http://arduino.cc/en/Reference/String
http://arduino.cc/en/Reference/StringToCharArray
Logged


Offline Offline
Jr. Member
**
Karma: 1
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie mille, mi era sfuggito, ora provo!
Logged

Offline Offline
Sr. Member
****
Karma: 7
Posts: 293
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie mille, mi era sfuggito, ora provo!

attento che ti manca anche da modificare la chiamata alla funzione sd.exist
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si si, ti ringrazio, mancano vari pezzi e soprattutto devo testarlo? non sono sicuro che funzioni.
Logged

Pages: 1 2 [3] 4 5 ... 7   Go Up
Print
 
Jump to: