Pages: [1]   Go Down
Author Topic: errore in programma per misurare la pressione atmosferica  (Read 155 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
sto cercando di usare un sensore di pressione atmosferica
http://www.mouser.com/ds/2/187/Liquid_Media_SSC_Analog-191223.pdf

vorrei collegare il sensore ad arduino 1 collegato ad una LCD keypad shield esattamente come ho trovato sul sito seguente:

http://hab.hampson.net.au/?p=378

il programma per effettuare la misurazione è il seguente:

Code:
#define ADC_HONEYWELL 0 // Arduino analog pin

const float factor = 0.2666666; //
const float base = 0.5;  //
int ADCnumber = 0;
float pvoltageDC = 0.0;
float pressure = 0.0;

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );

void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor( 0, 0);  //top left
lcd.print("Pressure");
lcd.setCursor(8, 1);
lcd.print("psi");
lcd.setCursor( 11,0);
lcd.print("CHNSA");
}
void loop() {
getPressure();
delay(5000);
}

float getPressure(void) {
ADCnumber = analogRead(ADC_HONEYWELL);
Serial.print("ADC Read Number:");
Serial.println(ADCnumber);
pvoltageDC = ((float)ADCnumber / 1024)*5;
Serial.print("Voltage:");
Serial.println(pvoltageDC,3);
pressure =((pvoltageDC – 0.5 )/factor);
Serial.print("Pressure:");
Serial.print(pressure,3);
Serial.println(" psi");
Serial.println("");
lcd.setCursor( 0, 11);
lcd.print(pressure,3);

return pressure;
}


Per compilarlo sto usando IDE 1.05-r2, però appare il seguente errore : Stray '(' in program

Qualcuno potrebbe aiutarmi a capire che significa?

Grazie

Falcon
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22907
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E' un problema di codifica, questi sono gli errori:

Code:
sketch_jul16a:19: error: stray '\' in program
sketch_jul16a:19: error: stray '\' in program
sketch_jul16a:21: error: stray '\' in program
sketch_jul16a:21: error: stray '\' in program
sketch_jul16a:23: error: stray '\' in program
sketch_jul16a:23: error: stray '\' in program
sketch_jul16a:32: error: stray '\' in program
sketch_jul16a:32: error: stray '\' in program
sketch_jul16a:35: error: stray '\' in program
sketch_jul16a:35: error: stray '\' in program
sketch_jul16a:37: error: stray '\' in program
sketch_jul16a:38: error: stray '\' in program
sketch_jul16a:38: error: stray '\' in program
sketch_jul16a:40: error: stray '\' in program
sketch_jul16a:40: error: stray '\' in program
sketch_jul16a:41: error: stray '\' in program
sketch_jul16a:41: error: stray '\' in program
sketch_jul16a.ino: In function 'void setup()':
sketch_jul16a:19: error: 'u201cPressure' was not declared in this scope
sketch_jul16a:21: error: 'u201cpsi' was not declared in this scope
sketch_jul16a:23: error: 'u201cCHNSA' was not declared in this scope
sketch_jul16a.ino: In function 'float getPressure()':
sketch_jul16a:32: error: 'u201cADC' was not declared in this scope
sketch_jul16a:35: error: 'u201cVoltage' was not declared in this scope
sketch_jul16a:37: error: expected `)' before 'u2013'
sketch_jul16a:37: error: expected `)' before ';' token
sketch_jul16a:38: error: 'u201cPressure' was not declared in this scope
sketch_jul16a:40: error: 'u201d' was not declared in this scope
sketch_jul16a:41: error: 'u201c' was not declared in this scope
vedi che ti segnala tutti codici Unicode? Devi controllare lo sketch e correggere nei punti che ti dice, principalmente le virgolette -> "
« Last Edit: July 17, 2014, 02:52:07 pm by leo72 » Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Caro Leo,
grazie per la risposta rapida.
Mi scuso se sono insistente
Quando  ho fatto copia ed incolla del programma  dal sito a IDE ho corretto passo per passo tutte le virgolette .
Dopo averle corrette tutte però la riga     37 :

   pressure smiley-cry(pvoltageDC – 0.5 )/factor);

appare evidenziata in arancione .

Probabilmente si tratta di un errore " super evidente ", ma sto imparando il linguaggio C da autodidatta ed ancora non sono molto esperto.

Potresti aiutarmi a capire perchè "sta divisione",che è la chiave del programma ,presenta un errore ?
Grazie
Falcon



Logged

Switzerland
Online Online
Faraday Member
**
Karma: 114
Posts: 5978
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No, è ancora un carattere invalido ed invisibile che ti stai trascinando dietro ...
... ho idea che tu abbia aperto i sorgenti con un editor RTF invece che con un normale editor TXT.

Per editare i programmi, NON USARE MAI cose come Write, Word o similari ... infilano nel codice un sacco di porcheria che poi non vedi (così come, su Mac, fa TextEdit) !

Comunque, hop preso il tuo codice, ho ripulito anche quella riga, ho aggiunto la libreria Wire che avevi dimenticato, l'ho riformattato (IDE -> Tools -> Auto Format) e ... compila senza errori :

Code:
#define ADC_HONEYWELL 0 // Arduino analog pin

const float factor = 0.2666666; //
const float base = 0.5;  //
int ADCnumber = 0;
float pvoltageDC = 0.0;
float pressure = 0.0;

// include the library code:
#include <Wire.h>
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );

void setup() {
   Serial.begin(9600);
   lcd.begin(16, 2);
   lcd.setCursor( 0, 0);  //top left
   lcd.print("Pressure");
   lcd.setCursor(8, 1);
   lcd.print("psi");
   lcd.setCursor( 11,0);
   lcd.print("CHNSA");
}
void loop() {
   getPressure();
   delay(5000);
}

float getPressure(void) {
   ADCnumber = analogRead(ADC_HONEYWELL);
   Serial.print("ADC Read Number:");
   Serial.println(ADCnumber);
   pvoltageDC = ((float)ADCnumber / 1024)*5;
   Serial.print("Voltage:");
   Serial.println(pvoltageDC,3);
   pressure = ((pvoltageDC - 0.5) / factor);
   Serial.print("Pressure:");
   Serial.print(pressure,3);
   Serial.println(" psi");
   Serial.println("");
   lcd.setCursor( 0, 11);
   lcd.print(pressure,3);

   return pressure;
}

... poi se fa o no quello che deve fare ... non ne ho idea  smiley-mr-green smiley-mr-green smiley-mr-green

Guglielmo
Logged

Search is Your friend ... or I am Your enemy !

Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset



Gentilissimo Guglielmo,

Ho copiato il programma dal sito che ho postato sopra e lo ho incollato direttamente su IDE, ma la libreria Wire manca anche sul sito.
Tra un paio di settimane riceveró un sensore che , peró , è differente da quello che è sul sito , su cui ho trovato il programma, perché il mio sensore  misura la pressione dell'acqua spinta da una siringa contro una membrana .
Sicuramente  dovrò correggere le variabili (  float factor e base)   che credo siano tratte dai datasheets  del sensore , ma spero di farcela.
Ti farò sapere se il programma funziona .
Ora non posso che ringraziarTi di cuore per l'aiuto che mi Hai dato.
Ciao
 Falcon smiley


Logged

Pages: [1]   Go Up
Jump to: