Pages: [1] 2   Go Down
Author Topic: Sonda PH + interfaccia + Arduino UNO  (Read 1709 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 131
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buonasera a tutti!
Ho acquistato questi 2 oggetti:
http://www.robot-italy.com/it/3550-asp200-2-1m-bnc-ph-lab-electrode.html
http://www.robot-italy.com/it/1130-ph-orp-adapter.html
Cioè una sonda PH e una sheda per interfacciarsi con un micro.

Ora vorrei scrivere un piccolo listato per provare a misurare il ph.
Quindi ho cercatro la formula e ho trovato queste 2 (una tiene conto della temperatura)
http://www.phidgets.com/docs/1130_User_Guide#Measuring_the_pH

le ho provate ma escono valori molto strani e soprattutto se stacco la sonda non cambiano i valori...
Secondo voi è giusta quella formula da usare con arduino?
le 2 formule sono queste:
ph = 0.0178 * sensorValue -1.889
e l'altra:
pH= 7 - (2.5 - analogRead(PHprobe)/200) / (0.257179 + 0.000941468 * WaterTemp);
Logged

Offline Offline
Sr. Member
****
Karma: 5
Posts: 407
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

le ho provate ma escono valori molto strani e soprattutto se stacco la sonda non cambiano i valori...
se la sonda non funziona credo sia inutile chiedersi se la formula è giusta smiley-wink
Logged

La vera saggezza sta in colui che sa di non sapere. Perché io so di sapere più di te, che pensi di sapere. (Socrate)

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

valori strani tipo?...

la seconda formula del link è sicuramente più corretta
la tua non so se è tanto corretta, avresti dovuto scrivere così

pH = 7 - (2,5 - ((5*analogRead (PHprobe)*100)/1024) / 200) / (0,257179 + 0,000941468 * WaterTemp);

logicamente va tarata poi in base ai valori della sonda
inoltre la variabile pH deve essere float
comunque non credo che quell'interfaccia vada bene con arduino perchè da anche segnali negativi e arduino legge solo tensioni positive
Logged

Trentino
Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho la stessa sonda, l'ho temporaneamente messa da parte ma penso che Vinciolo abbia ragione, c'è il modo per
poter renderla compatibile se solo trovo i link..  smiley-confuse
Logged

_________________________________________
     ...veramente ai primi passi!        
       portate pazienza,GRAZIE!    

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21871
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...comunque non credo che quell'interfaccia vada bene con arduino perchè da anche segnali negativi e arduino legge solo tensioni positive
Da cosa lo deduci?
Le specifiche danno solo i valori della parte entrata (sonda) e non della parte uscita analogica. Mancando schema o dati rilevanti é difficile dire cosa non funziona. Sulla pagina é stata fatta la domanda se utilizzabile con Arduino:
Quote
domanda: 25/09/12 07.41 Buongiorno,
E' possibile interfacciare questa scheda con Arduino per controllare il PH di un acquario.
Attendo risposta grazie

Risposta:
    Questa scheda fornisce un'uscita analogica. E' quindi sicuramente possibile interfacciarlo con Arduino e/o con la maggior parte dei microcontrollori che hanno almeno una porta analogica. Ovviamente questa e' solo l'interfaccia, la sonda va acquistata a parte tra quelle consigliate nella descrizione.

Ciao Uwe
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 131
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho trovato e provato questo esempio. ho provato a modificare la formula così:
pH3 += 7 - (5 - analogRead(PHprobe)/1024) / (0.257179 + 0.000941468 * WaterTemp);
nello sketch originale era:
pH3 += 7 - (2.5 - analogRead(PHprobe)/1024) / (0.257179 + 0.000941468 * WaterTemp);

e questo è lo sketch:

Code:
const int PHprobe = 1;
#define PHprobe 3

void setup() {
  Serial.begin(9600);
}

void loop() {
int WaterTemp = 18;
float pH1, pH2, pH3;
int i;

for(i = 0;i <= 7;i++) {
pH2 += 0.0178 * analogRead(PHprobe) - 1.889;
  pH3 += 7 - (5 - analogRead(PHprobe)/1024) / (0.257179 + 0.000941468 * WaterTemp);
            delay(1000);
      }

pH1 = analogRead(PHprobe);
       Serial.print(pH1,  DEC);
       Serial.print("\n");
       pH2 = pH2 / 8;
        Serial.print(pH2,  DEC);
        Serial.print("\n");
        pH3 = pH3 / 8;
         Serial.print(pH3,  DEC);
         Serial.print("\n");
       Serial.print("====================================");
       Serial.print("\n");
       delay(1000);
}

edit by mod: per favore includi il codice usando gli appositi tag

i valori che mi da sono:
301.0000000000
3.9427247047
-11.2398262023

e oltre tutto sono sempre gli stessi dentro e fuori dall'acqua. per questo dicevo che la sonda non funziona. ma non avendone 2 non posso provarlo. e quindi mi piaceva avere un esempio sicuramente funzionante in modo da poter capire se la colpa è della sonda o dello sketch. questo esempio non credo sia corretto ma è l'unico che ho trovato. come faccio a dire che è colpa della sonda se non ho le certezze che lo sketch funzioni?
« Last Edit: October 27, 2013, 12:17:11 am by leo72 » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 131
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sul fatto che si possa interfacciare con arduino credo proprio di si anche se la scheda di interfaccia è studiata per un altro sistema.
Logged

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

...comunque non credo che quell'interfaccia vada bene con arduino perchè da anche segnali negativi e arduino legge solo tensioni positive
Da cosa lo deduci?
Le specifiche danno solo i valori della parte entrata (sonda) e non della parte uscita analogica. Mancando schema o dati rilevanti é difficile dire cosa non funziona. Sulla pagina é stata fatta la domanda se utilizzabile con Arduino:
Quote
domanda: 25/09/12 07.41 Buongiorno,
E' possibile interfacciare questa scheda con Arduino per controllare il PH di un acquario.
Attendo risposta grazie

Risposta:
    Questa scheda fornisce un'uscita analogica. E' quindi sicuramente possibile interfacciarlo con Arduino e/o con la maggior parte dei microcontrollori che hanno almeno una porta analogica. Ovviamente questa e' solo l'interfaccia, la sonda va acquistata a parte tra quelle consigliate nella descrizione.

Ciao Uwe


l'ho detto per il semplice motivo che anche io sto facendo un automazione per acquario e mi serve una sonda+ interfaccia pH per arduino e quella l'avevo scartata perchè con arduino non funzionava
avevo trovato le specifiche cercando con google
alla fine ho dovuto costruirmela io l'interfaccia, se cercate con google c'è pH Duino
interfaccia per pH fatta appositamente per arduino


p.s. i venditori dicono qualsiasi cosa pur di vendere...


p.p.s. perdonami lucadh  ma non hai scritto la formula come te l'ho scritta io...fai attenzione devi leggere i mV in entrata

inoltre su quale pin colleghi la sonda?

const int PHprobe = 1;
#define PHprobe 3
????
non vedo da nessuna parte un #define PHprobe A1 (oppure altre A?)
« Last Edit: October 23, 2013, 05:55:47 am by vinciolo » Logged

Disperso nel nauseante oceano della burocrazia
Offline Offline
Edison Member
*
Karma: 77
Posts: 2461
Io sono l'ultimo,
e parlero' al vuoto
in ascolto.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi viene un dubbio, dal punto in cui dici che se anche stacchi la sonda i valori non cambiano ... ma la sonda la stai provando immersa in un liquido, vero ?

Lo so che puo sembrare una domanda banale, ma quelle sonde se non sono immerse non funzionano, e la maggior parte della gente non lo sa ... smiley-wink
Logged

"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

Offline Offline
Full Member
***
Karma: 0
Posts: 131
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho provato anche con la formula come hai detto tu ma non funziona. sempre valori errati...
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 5017
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma la user guide dice e mostra che la sonda devi collegarla a una interfaccia e quella interfaccia ad un "InterfaceKit 8/8/8"
Code:
1.Connect the pH/ORP Adapter Board to the Analog Input #6 on the PhidgetInterfaceKit 8/8/8 board using the sensor cable. In this example, we are using a pH electrode.
2.Connect the electrode to the adapter board using the BNC connector.
3.Use the DIP switch to select pH or ORP to correspond to the type of electrode you are using.
4.Connect the InterfaceKit 8/8/8 to your PC using the USB cable.
http://www.phidgets.com/docs/1130_User_Guide

Il tutto con un device driver (Phidget library) su un S.O. tipo Windows, Linux o Mac.
Mi pare strano che senza una parte dell'HW lo colleghi ad Arduino e riesci a leggere qualcosa.
Visto poi tutto l'HW che c'e' su quel dispositivo al punto 4, che si chiama "InterfaceKit 8/8/8".
Logged

my name is IGOR, not AIGOR

Offline Offline
Full Member
***
Karma: 0
Posts: 131
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ora non vorrei dire stupidaggini ma credo che arduino vada a sostituire l' InterfaceKit 8/8/8.  loro vendono un kit già completo ma si può adattare ad arduino però non trovo come si faccia...
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 5017
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sempre sul sito del produttore c'e' una domanda diretta:

E' possibile interfacciare questa scheda con Arduino per controllare il PH di un acquario. Attendo risposta grazie
Questa scheda fornisce un'uscita analogica. E' quindi sicuramente possibile interfacciarlo con Arduino e/o con la maggior parte dei microcontrollori che hanno almeno una porta analogica. Ovviamente questa e' solo l'interfaccia, la sonda va acquistata a parte tra quelle consigliate nella descrizione.


Però anche a me non mi sembra ci siano ulteriori chiarimenti. Inoltre c'e' del codice C# ma che richiede una libreria NET di nome Phidget.NET
Come idea, potresti provare a registrarti al loro forum e poi cercare li la parola Arduino, magari qualcosa trovi:
http://www.phidgets.com/phorum/
« Last Edit: October 23, 2013, 10:30:09 am by nid69ita » Logged

my name is IGOR, not AIGOR

Disperso nel nauseante oceano della burocrazia
Offline Offline
Edison Member
*
Karma: 77
Posts: 2461
Io sono l'ultimo,
e parlero' al vuoto
in ascolto.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa, ma codice a parte, qual'e' l'uscita di quella particolare sonda ? ... magari saro' io che non sono capace di trovarlo, ma su 6 venditori da cui ho trovato quell'articolo, non ce n'e' uno che riporti uno straccio di link ad un datasheet serio ...
Logged

"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 45
Posts: 1507
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho verificato con Excel le due formule iniziali ed entrambe forniscono gli stessi risultati impostando a 25°C la temperatura.

Il valore che si deve fornire alle formule è quello del campionatore ADC a 10 bit ovvero un numero tra 0 e 1023.
In particolare lo "zero" del sensore corrispondente a pH 7 si ottiene per ADC = 500, mentre pH 0 si ottiene per ADC = 100 e pH 14 si ottiene con ADC = 890.

Il grafico risulta lineare, ma credo sia impreciso poiché il sensore, stante alle caratteristiche dichiarate, è di tipo "non raziometrico".

Ma c'è un problema relativo alla precisione dei calcolo float sul moltiplicatore della temperatura 0,000941468: dubito fortemente che il compilatore di Arduino possa funzionare correttamente con oltre 5 cifre decimali.
« Last Edit: October 23, 2013, 11:41:33 am by cyberhs » Logged

Pages: [1] 2   Go Up
Jump to: