Go Down

Topic: errore in programma per misurare la pressione atmosferica (Read 281 times) previous topic - next topic

Redwin

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: [Select]
#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

leo72

#1
Jul 16, 2014, 10:50 pm Last Edit: Jul 17, 2014, 09:52 pm by leo72 Reason: 1
E' un problema di codifica, questi sono gli errori:

Code: [Select]
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 -> "

Redwin

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




gpb01

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: [Select]

#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
Search is Your friend ... or I am Your enemy !

Redwin



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



Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy