Nell’introduzione pre-pasquale dell’Orto idroponico verticale con Arduino ho accennato all’uso di alcuni sensori che ti permettono di monitorare le condizioni climatiche dell’ambiente e le proprietà dell’acqua di irrigazione.
in questo articolo riprendo con l’analisi del primo dei sensori che abbiamo utilizzato: il sensore EC.
Il primo passo che ho fatto quando ho sentito parlare di questo sensore è stato ricercare su wikipedia cosa fosse un sensore EC e cosa potesse misurare, ho trovato:
An electrical conductivity meter (EC meter) measures the electrical conductivity in a solution. It is commonly used in hydroponics, aquaculture and freshwater systems to monitor the amount of nutrients, salts or impurities in the water.
Compreso, almeno a grandi linee, quale fosse lo scopo del sensore e la sua utilità nell’Orto idroponico verticale con Arduino ho iniziato a pensare come realizzarne uno o dove acquistarne uno già pronto.
Nella ricerca di informazioni e di chiarimenti ho scoperto che tra i frequentatori di WeMake ed al progetto dell’orto c’e Paolo Bonelli un appassionato arduino e conoscitore di chimica Ph, EC, ecc.. autore di un progetto “Acid Carousel” per il monitoraggio accurato delle acque, interamente realizzato con arduino e tagliato a laser.
Tornando al sensore EC ho chiesto a Paolo dei consigli ed ho ottenuto le risposte ed il sensore finito .. in pieno stile maker e con grande spirito di condivisione.
Cosa occorre per realizzare il tuo sensore EC laser cut
Paolo ha realizzato il sensore utilizzando:
- n.1 resistenza da 470 ohm;
- n.1 basetta di plexyglass tagliata ed incisa a laser;
- n.2 viti di acciaio inossidabile;
- n.2 bulloni di acciaio inossidabile;
- n.1 cavo trifilare;
- n.1 bacchetta di colla a caldo per sigillare il retro del sensore;
Il sensore EC per l’orto idroponico verticale con arduino
Per la realizzazione del sensore EC, Paolo, ha disegnato e tagliato a laser le basette necessarie, puoi scaricare qui i due file condivisi da Paolo:
spiegandomi che la distanza tra i due bulloni influenza il comportamento del sensore come i materiali impiegati ed il tipo di vite, tolleranza della resistenza e cavi utilizzati.
Per scongiurare almeno il primo fattore ha preferito affidare al taglio laser la basetta in modo da essere certo che tra due sensori la distanza tra le viti sia sempre uguale.
Con l’uso della funzione engrave del laser ha anche realizzato degli incavi nelle basette in cui alloggiare i cavi di connessione e la resistenza:
poi ha assemblato il tutto:
sigillando con la colla a caldo il retro del sensore per renderlo isolato e lasciare che solo la parte esposta delle viti sia in contatto con il liquido da misurare:
Un po di teoria prima dei test
Paolo ha dedicato alcune ore non solo alla costruzione dei sensori per l’orto idroponico verticale ma sopratutto alla taratura del sensore ed a spiegare il principio di funzionamento e le formule che poi ha applicato allo sketch:
E’ questo che accade quando si incontrano appassionati con grandi conoscenze e voglia di condividerle con chi è disposto ad accrescere le proprie conoscenze.
Lo sketch di test
Paolo ha realizzato uno sketch di test per due sensori, i due che avremmo utilizzato nell’Orto Idroponico e me lo ha dato perché potessi adattarlo all’orto.
Iniziamo dallo sketch di Paolo, l’originale:
/* Conduttimetro Collegamenti hardware sensore rosso blu bianco P1 ------O O------P2-----RRRRR-------P3 Lato sensore 0 D2 elettrodi A0 470 ohm D3 Lato Arduino 1 D8 elettrodi A1 470 ohm D9 Lato Arduino */ byte nsens = 2; byte P1[] = {51,50}; byte P2[] = {A15,A14}; byte P3[] = {53,52}; // parametri di taratura in uS/cm float A[] = {870.43,822.71}; float B[] = {-1.194,-1.190}; // resistenza fissa tra P1 e P3 float R1 = 470.; // ohm // inizializzo resistenza tra i due elettrodi float RS[] = {0,0}; // inizializzo conducibilità specifica float CS[] = {0,0}; // variabili di lavoro byte isens = 0; byte n = 50; #define ECHO; void setup () { Serial.begin(9600); delay(100); // setta come output le porte digitali for(byte isens = 0; isens < nsens ; isens++){ pinMode(P1[isens],OUTPUT); pinMode(P3[isens],OUTPUT); } } ////////////////////////////////////////////////////////// void loop () { Serial.print( "Loop sensore 1: " ); Serial.println( readEC( 0 ) ); Serial.print( "Loop sensore 2: " ); Serial.println( readEC( 1 ) ); delay( 100 ); } ////////////////////////////////////////////////////////// float readEC( byte isens ) { float RS1 = 0.; float RS2 = 0.; float VCC = 5000.; float Vconv = VCC/1024.; float V1 = 0.; float V2 = 0.; float VSG = 0.; float runningAvg1 = 0.; float runningAvg2 = 0.; float runningAvg3 = 0.; // ciclo di misura su un sensore for(byte i = 0; i < n; i++) { digitalWrite(P1[isens],HIGH); digitalWrite(P3[isens],LOW); runningAvg1 = runningAvg1 + Vconv*analogRead(P2[isens]); digitalWrite(P1[isens],LOW); runningAvg2 = runningAvg2 + Vconv*analogRead(P2[isens]); digitalWrite(P3[isens],HIGH); runningAvg3 = runningAvg3 + Vconv*analogRead(P2[isens]); } VSG = runningAvg2/n; V1 = runningAvg1/n; V2 = runningAvg3/n; // compute RH and VS if(V1 < 2.){ RS[isens] = 60000.; CS[isens] = 0.; } else { // correggo con la galvanica V1 = V1-VSG; V2 = V2-VSG; // primo calcolo di RS RS1 = R1*(VCC-V1)/V1; // secondo calcolo di RS e media tra i due (RS in kohm) RS2 = R1*V2/(VCC-V2); RS[isens] = (RS1 + RS2)/2000.; // calcolo CS secondo i parametri di taratura if( RS[isens] < 0.5) { CS[isens] = 1300; } else{ CS[isens] = A[isens]*pow(RS[isens],B[isens]); } } #ifdef DEBUG Serial.print(" sensore # "); Serial.print(isens); Serial.print(" Galvanica: "); Serial.print(VSG,2); Serial.print(" V1 = "); Serial.print(V1,0); Serial.print(" V2 = "); Serial.print(V2,0); Serial.print(" RS1 = "); Serial.print(RS1,0); Serial.print(" RS2 = "); Serial.print(RS2,0); Serial.print(" RS = "); Serial.print(RS[isens],3); Serial.print(" CS = "); Serial.print(CS[isens],0); Serial.println(); #endif return CS[isens]; }
le righe di commento 001-007 contengono delle informazioni importanti in merito alla connessione di ciascun sensore ad arduino. Nota che nessun pin è connesso a +5v o Gnd ma ogni pin estremo è connesso ad un pin digitale ed i pin di misura sono connessi a pin analogici, il motivo è che nessun terminale del sensore deve sempre essere connesso all’alimentazione positiva o negativa del circuito ma dovrai alternare l’alimentazione positiva e negativa sugli elettrodi per evitare gli errori dovuti alla corrente galvanica ( approfondimento );
linee 008-011: definisci delle variabili di tipo byte in cui specifichi il numero di sensori ( nel nostro caso 2 ) e i pin a cui sono connessi i rispettivi P1,P2 e P3 ( ricorda che per il progetto Orto Idroponico Verticale abbiamo utilizzato un Arduino Mega sia per necessità di più ingressi sia per la sua maggiore memoria );
linee 013-014: imposta due parametri di taratura per ciascun sensore: parametro A e B che ti serviranno poi per il corretto calcolo di EC rilevato dal sensore, per la taratura Paolo ha utilizzato diversi tipi di acque di cui erano note le caratteristiche EC eseguite in laboratorio;
linea 016: definisci il valore della resistenza che hai utilizzato sui sensori, nel nostro caso sono entrambe da 470ohm;
linea 018: inizializza il valore di resistenza dei due elettrodi a 0;
linea 020: inizializza il valore di conducibilità specifica di ciascun sensore a 0;
linee 022-023: imposta il contatore isens a 0 con cui partirai nei cicli for su tutti i sensori e la variabile n con cui definisci il numero di misurazioni da eseguire;
linee 027-035: la funzione setup() non è complessa e oramai, se hai seguito i miei appunti su corso base sai anche cosa accade senza necessità che te lo rispieghi;
linee 038-046: anche le linee della loop() sono molto chiare e semplici per cui evito di ripetere sempre le medesime informazioni, le uniche linee su cui puoi soffermarti sono la linea 041 e la linea 043 che richiamanlo la funzione readEC() ciascuna passando l’indice del sensore che desideri sia interrogato e del quale ti interessa il valore misurato;
linee 051-061: sei già all’interno della funzione readEC il cui compito è eseguire la misurazione e restituire alla loop() il valore EC misurato dal sensore richiesto. In queste linee definisci alcune delle variabili di tipo float che ti serviranno per calcolare il valore EC da restituire;
linea 064: imposta un ciclo for che eseguirà una sequenza di operazioni, descritte nelle linee sotto, da 0 ad n dove n è il numero di campionamenti che ti interessa e che hai definito alla linea 023;
linee 065-066: imposta ad HIGH il P1 ed a LOW il P3;
linea 067: misura e calcola il valore runningAvg1 come somma del suo precedente valore misurato nel ciclo for e del prodotto tra Vconv ed il valore letto sul pin analogico P2 relativo al sensore di cui ti interessa la misura;
linea 068: imposta a LOW il valore del pin relativo al contatto P1;
linea 069: misura e calcola il valore runningAvg2 similmente a come hai già fatto per runningAvg1 in quanto in questa condizione la polarizzazione di P1 è LOW come quella di P3;
linea 070: imposta ad HIGH P3;
linea 071: misura e calcola il valore runningAvg3 similmente a come hai già fatto per runningAvg1 in quanto in questa condizione la polarizzazione di P1 è LOW e quella di P3 è HIGH;
linee 073-075: calcola il valore reale di VSG,V1 e V2 dividendo i rispettivi runningAvg per il numero di campionamenti;
linee 077-080: se il valore di V1 è inferiore a 2.0 imposta sia RS sia CS ai rispettivi valori indicati, RS = 60000 e CS = 0;
linee 082-083: se il valore di V1 è maggiore di 2 correggi la misura influenzata dalla corrente galvanica sottraendo sia da V1 sia da V2 il valore VSG;
linea 085: calcola il valore di RS1 come il prodotto della resistenza per il rapporto tra la differenza di potenziale VCC-V1 e V1 stesso;
linea 087: esegui un calcolo simile per RS2 invertendo la posizione di V2 nel rapporto;
linea 088: esegui la media tra RS1 ed RS2 riassegnando il valore alla variabile RS;
linea 090: se il valore di RS è inferiore 0.5 allora il valore di CS è il massimo misurabile ossia 1300 Siemens ( 1.3 microSiemens )
linea 091: con un valre di RS maggiore di 0.5 applichi la formula:
CS[isens] = A[isens]*pow(RS[isens],B[isens]);
ossia CS è uguale al prodotto del valore di taratura A, relativo al sensore di cui ti interessa la misura, per RS elevato alla potenza del suo corrispettivo B. La funzione pow restituisce il valore del primo parametro elevato alla potenza del secondo;
linee 094-112: invia al monitor seriale il risultato dei valori letti e dei calcoli eseguiti per poter fare un debug dei parametri prima di inserire lo sketch in quello dell’Orto idroponico verticale con arduino;
linea 114: restituisci alla funzione loop() il solo risultato relativo al valore di CS richiesto.
Ora sei pronto per eseguire il test dei tuoi sensori EC autocostruiti e passare al test.
Buon orto idroponico verticale.
47 commenti
2 ping
Vai al modulo dei commenti
Salve, stavo studiando il codice dello sketch e non capisco dove il signore prende il valore di RS=60000 alla riga 078 ..
grazie mille
Autore
Ciao Cristian,
alla linea 75 la variabile RS[isens] non viene presa ma impostata a 60000. è un assegnazione di valore fisso.
Si scusami mi sono espresso male io, volevo sapere da dove ricava il valore di 60000 che utilizza come costante
grazie ancora.
Scusa è possibile avere le misure precise per realizzare il conduttimetro.
Autore
Ciao Giovanni,
nell’articolo trovi sia il file in formato dxf sia svg da cui puoi prendere le misure che cerchi.
Ciao Mauro,
Intanto complimenti, ti seguo da un po’ e spesso hai risolto dei miei rompicapi quindi colgo l’occasione per ringraziarti.
Ora vorrei cimentarmi con la costruzione di questo sensore EC ma per la realizzazione avrei bisogno di sapere l’interasse da centro vite e centro vite per avere la stessa distanza di quello che hai presentato, inoltre mi sarebbe di aiuto sapere che viti hai usato se M4 o M5.
Grazie in anticipo e ancora complimenti.
Autore
Ciao Luca,
lascio il tuo commento on-line in quanto essendo stato realizzato a laser da Paolo non so con precisione che interasse e tipo di viti abbia utilizzato.
Se incontro Paolo mi faccio fornire i disegni o dare le info che mi chiedi.
Ciao a tutti. I bulloncini in acciaio inox sono M4 e la loro distanza è 20 mm. Lo spessore della basetta in metacrilato è 6 mm. Adesso non ho per le mani un bullone di quelli per dirvi la lunghezza, però posso dirvi che dopo aver infilato il bullone sulla basetta e serrato con il suo dado, la parte filettata sporge di poco fuori dal dado.
Oggi passo a Mauro il file del disegno per la lasercut.
Una cosa importante da tener presente è che questo sensore va bene per conducibilità non superiori a 1300 microSiemens/cm, perchè la resistenza tra gli elettrodi diventa troppo piccola. Per andare oltre questo valore bisogna aumentare la distanza tra i bulloni o diminuire la superficie immersa degli elettrodi e ovviamente rifare la taratura. Ci sto lavorando.
A presto e buon lavoro
Paolo
Autore
Grazie Paolo,
disegni inseriti nell’articolo per il download
Salve sono un appassionato di elettronica e da qualche tempo mi sono avvicinato ad arduino. Sto lavorando su un progetto ma ho qualche difficoltà mi potreste dare una mano. Grazie in anticipo
Autore
Ciao Francesco,
questo non è un forum ma un blog, se commenti l’articolo che stai leggendo per chiedere aiuto o chiarimenti sarò il primo a offrirtene.
Quando si cerca di scaricare i file “conducibilimetro dxf” e “conducibilimetro svg” da errore 403.
Autore
Ciao CiccioM,
grazie per la segnalazione, corretto il bug.
Ciao! Sto cercando di riprodurre lo schema elettrico come illustrato nelle prime righe di commento dello sketch ma non riesco a riproporlo sulla mia basetta, potresti condividere uno schematico disegnato, una foto oppure anche semplicemente aiutarmi a nella sua interpretazione?
Grazie 🙂
Autore
Ciao Alain,
lo schema è molto semplice ed è riportato in formato ascii nelle prime linee dello sketch:
sensore rosso blu bianco
P1 ——O O——P2—–RRRRR——-P3 Lato sensore
0 D2 elettrodi A0 470 ohm D3 Lato Arduino
Trovi la descrizione nella spiegazione dell’articolo.
Buongiorno Mauro,
complimenti per gli articoli e grazie per la condivisione.
Una domanda sugli elettrodi: sto lavorando ad un sensore per il mio orto idroponico e già dalle prime prove ho notato un problema che dopo 2 giorni di lettura è diventato evidente. Premetto che voglio rifare il sensore con materiali diversi (le viti in inox del “brico” forse non sono di prima qualità e il dubbio rimane). Le letture sono coerenti e corrette e ho provato in piu’ campioni.
– Elettrodo P2/P3 –> arrugginita la parte finale del filetto e parte del dado
– Elettrodo P1 —> è diventato bianco opaco come se il “calcare” presente nell’acqua di fosse depositato.
E’ capitato anche a Voi un fenomeno simile?
Grazie mille
Giuseppe
p.s. risolta questa ho un secondo problema che credo sia dovuto alla massa, un’interazione con la sonda PH. Ma lasciamo la domanda per il seguito!
Autore
Ciao Giuseppe,
il fenomeno che osservi è l’ossido-risuzione dovuta all’elettrolisi, dovresti trovare su wikipedia una esauriente spiegazione.
Hai usato come sketch quello proposto nell’articolo?
Paolo, coautore dell’orto idroponico e fisico, ha scritto uno sketch proprio in grado di rallentare questo fenomeno.
Il nostro sensore a mesi di distanza dall’installazione risulta ancora pulito e funzionante.
Salve, vorrei sapere come si stabiliscono i parametri di taratura alle linee 13 e 14.
grazie!
Autore
Ciao Toni,
lascio a Paolo la risposta avendo lui provveduto a fornirmeli.
Scusate Toni e Mauro se rispondo solo ora!
I parametri di taratura del conduttimetro sono ricavati con un metodo molto semplice ed economico. Ho preso 5-6 bottiglie di acqua minarale non gassata con Conducibilità specifiche diverse. Questo parametro è infatti riportato sull’etichetta e riguarda la Conducibilità Specifica a 20°C. Le acque in commercio hanno questo parametro molto diverso, si va da 15 a 1200 uS/cm (microSiemens su cm). La procedura è descritta in un pdf che ho scritto e che chiedo a Mauro di allegare.
Autore
Grazie Paolo,
il file che descrive tutto è già linkato in altri articolo che raccontano il progetto di Paolo, sempre u questo blog.
Inserisco il link anche in questo commento: http://media.wix.com/ugd/a251d5_2f5b617f91fc43e291db46600b5c6a10.pdf
Salve ho riportato il codice come nell’esempio cambiando solo i parametri dei pin avendo un Arduino UNO
e un sensore solamente
byte P1 [] = {12};
byte P2 []= {A0};
byte P3 [] = {13};
mi restituisce un errore quando vado a compilare su questa riga
runningAvg3 = runningAvg3 + Vconv*analogRead(P2{isens});
l’errore e’:
sketch_nov05a:73: error: expected ‘;’ before ‘]’ token
expected ‘]’ before ‘{‘ token
dove sto sbagliando?
Autore
Ciao Fabio,
l’errore che stai usando le parentesi {} al posto delle parentesi [] leggi la medesima linea sul mio sketch non usa le parentesi graffe
Perdonatemi la grande ignoranza in materia ma ho molti dubbi:
– cambiando i materiali usati (grandezza dei bulloni, distanza tra gli stessi) quali valori cambierebbero?
– la taratura va rifatta da noi, con lo stesso procedimento spiegato da Paolo?
– ho letto sul PDF che ci sarebbe la possibilità di correggere i valori con la temperatura dell’acqua. Come si può includere tale valore?
Spero di poter risolvere i miei dubbi perchè la prima prova non mi da valori possibili (nell’ordine di massimo 10 per acque che riportano oltre 100 in etichetta).
Grazie mille.
Autore
Ciao Luca,
per tutte le modifiche devi far riferimento al PDF di Paolo.
I sensori sono stati costruiti, calcolati e tarati da Paolo che è un Fisico Ambientale ed io non sarei in grado di darti delle risposte in tale direzione.
Salve,
non predisponendo di un taglio laser , signor. Mauro Alfieri , può indirizzarmi da chi può effettuare un taglio in modo da creare la basetta del sensore EC ?
Autore
Ciao Francesco,
solitamente io mi rivolgo ad un FabLab.
Se proprio non ne hai nessuno in zona posso chiedere a Paolo quanto costerebbe realizzare per te il numero di sensori che mi indicherai.
Buona sera Mauro, al momento utilizzo un solo sensore, ma solo variando nello sketch il campo nsens da 2 a 1, I valori che mi da non sono corretti.
Bisogna eseguire altre variazioni di codice se si utilizza un solo sensore?
Grazie mille
Autore
Ciao Cristian,
tu possiedi il medesimo sensore realizzato da Paolo? Se si devi eseguire le tarature previste nel documento rilasciato oda paolo sul proprio sito.
Sono le tarature a rendere il sensore funzionante.
Se solo un micron di distanza tra le viti cambia o il materiale di cui sono fatte va rieseguita la taratura
Buongiorno,
davvero complimenti per il progetto e mille grazie per averlo condiviso, sto pensando di realizzare un progetto molto simile al vostro orto idroponico e sarei stato perso senza il vostro esempio.
Una domanda, i sensori EC e PH sono stati testati per un uso continuativo?
Ho trovato diverse fonti che sostengono che, per lasciare i sensori perennemente in acqua (e quindi poter fare le misure senza intervento umano) questi devono essere di tipo industriale, più costosi e meno comuni di quelli per laboratorio. Anche nel link alla pagina della sonda PH che avete postato nella prima parte del tutorial è indicato “This is a laboratorial probe, it can’t be immersed in the liquid for too long time. You can check here for the whole Industrial kit or a spare Industrial Probe as replacement”.
Nella vostra esperienza, per quanto è stata usata senza interruzioni?
Stesso discorso per la sonda EC artigianale, è affidabile nel tempo?
Grazie
Autore
Ciao Daniele,
le tue osservazioni sono corrette. Per un uso intensivo della sonda Ph dovrai orientarti verso prodotti adatti a tale uso, anche come segnalato nel sito del venditore.
Considera che il mio esperimento, in quanto tale, è stato scopo di laboratorio ed ha funzionato per circa un anno prima di essere dismesso.
In merito ai sensori EC posso dirti che, al contrario del ph metro, alla fine dell’esperimento risultava solo leggermente intaccato dall’uso grazie al modo in cui i poli vengono polarizzati.
Grazie mille Mauro, la tua risposta conferma in parte i miei sospetti ma anche mi conforta per l’aspetto EC.
Purtroppo avevo già dovuto scartare la vostra soluzione EC perché i valori che devo leggere superano quelli che indichi, ho però trovato questo tutorial https://hackaday.io/project/7008-fly-wars-a-hackers-solution-to-world-hunger/log/24646-three-dollar-ec-ppm-meter-arduino che sfrutta lo stesso vostro concetto (data la misura e sapendo la distanza tra gli elettrodi…), usa una presa standard (quindi dimensioni standard = letture unificate e in più facilmente reperibile) e restituisce il range di valori ideale per il mio caso.
A questo punto tenterò di seguire il tutorial e testerò io stesso l’affidabilità nel tempo, un anno sarebbe più che gradito.
L’unico dubbio che ho è che nel tutorial usa la sonda °C DS18B20 e dicono di utilizzare una resistenza di circa 500 Ohm perché è quella che dà un più ampio range ma in rete trovo sempre indicato di utilizzare, con la DS18B20, resistenza da 4,7K Ohm o 10K Ohm.
Ho capito male qualcosa o lui usa proprio una resistenza da 0,5K invece di una da 10k? Se è così, comporta problemi?
Autore
Ciao Daniele,
anche io la DS18B20 la uso sempre con una resistenza da 10K.
Se ti occorrono maggiori info sul tutorial che hai trovato e chiarimenti sulle scelte fatte dall’autore ti consiglio di scrivergli sarà certamente più chiaro, veloce e preciso rispetto a delle ipotesi che potrei fare io.
ed ecco svelato l’arcano
https://wp.josh.com/2014/06/23/no-external-pull-up-needed-for-ds18b20-temp-sensor/
Autore
Grazie Daniele.
Grazie Mauro, bel progetto!
avrei qualche domanda: lasciando il circuito in azione dopo secondi si iniziano a formare bollicine sugli elettrodi per fenomeni di elettrolisi; non sarebbe meglio una volta effettuate tutte le 50 misure riportare entrambe le uscite a 0? successivamente ho portato il tempo del ciclo a 1000, in pratica così ogni secondo la misura e quindi la corrente passa solo per qualche millesimo di secondo.
Non ho ben capito il passaggio da resistenza in ohm a microsiemens:
CS[isens] = A[isens]*pow(RS[isens],B[isens])
la conduttività in siemens non dovrebbe essere l’inverso della resistenza moltiplicata la distanza degli elettrodi e divisa per la superficie degli elettrodi stessi?
qui nella correzione vedo un coefficiente e la resistenza elevata a una potenza negativa!?
grazie in anticipo!
Autore
Ciao Gabriele,
lascio il tuo commento on-line perché Paolo, fisico ed autore dei sensori e del codice ad essi relativi, possa darti info in merito.
Grazie!
tra l’altro ieri ho attivato la modalità debug dove mostra le correnti galvaniche; portando P3 a LOW dopo la riga 71 le correnti galvaniche mi passano da circa 500 che avevo prima a 0 e le bollicine sugli elettrodi praticamente spariscono
Autore
Ottimo Gabriele.
Salve, sto riproducendo il tuo progetto di conduttimetro
Solo che verificando il codice risulta questo errore :
———————————————————————————–
C:\Users\giova\Desktop\sketch_nov29a\sketch_nov29a.ino:25:13: warning: ISO C++11 requires whitespace after the macro name
#define ECHO;
^
sketch_nov29a:10:14: error: ‘A15’ was not declared in this scope
byte P2[] = {A15,A14};
^~~
C:\Users\giova\Desktop\sketch_nov29a\sketch_nov29a.ino:10:14: note: suggested alternative: ‘A5’
byte P2[] = {A15,A14};
^~~
A5
sketch_nov29a:10:18: error: ‘A14’ was not declared in this scope
byte P2[] = {A15,A14};
^~~
C:\Users\giova\Desktop\sketch_nov29a\sketch_nov29a.ino:10:18: note: suggested alternative: ‘A4’
byte P2[] = {A15,A14};
^~~
A4
exit status 1
‘A15’ was not declared in this scope
———————————————————————————–
Penso che ci sia qualche problema con il parametro A14 in riga 3
byte P2[] = {A15, A14};
Come posso risolvere, grazie in anticipo.
Autore
Ciao Giovanni,
l’errore dice chiaramente che A15 non è definito, che board arduino stai utilizzando ?
Il progetto prevede una Mega in quanto dotata di 16 pin Analogici ( quindi anche A15 )
Se usi una scheda differente devi adattarti lo sketch.
Ciao Mauro, grazie al tuo blog trovo sempre utili spunti e suggerimenti per i miei progetti!
Ho provato a replicare il sensore EC che sono riuscito a far funzionare abbastanza bene, non possedendo una fresa cnc l’ho realizzato a mano ed ora avrei la necessità di tararlo! Ho visto i pdf di Paolo che appunto suggerivano di procurarsi delle bottiglie d’acqua con valori di conducibilità noti, ma non è spiegato come ricavare il valori di taratura da inserire nelle righe 12 e 13, cioè ci sarà una formula immagino dove io inserisco i valori di resistenza letti dal sensore il valore di conducibilità e ricavo il dato mancante?
Grazie
Autore
Ciao Massimiliano,
non ricordo di aver utilizzato formule differenti da quelle riportate da Paolo nel PDF, se hai dubbi puoi scrivergli e sono certo che saprà darti buone indicazioni sulla taratura.
Salve vorrei fare due domande, ho provato a costruire il sensore segundo alla lettera le misure e le indicazioni… solo che mettendolo alla prova non riesce a leggere un valore superiore a 1500 / 1600 certe volete anche non oltre 1300. Come posso fare ad aumentare questo limite ? Domanda n,2 , c’è un modo per verificare se il sensore è correttamente connesso ad arduino ? Tipo voglio fare una funzione sensore_available() che ritorna true se è connesso correttamente e false se non lo è. Grazie mille in anticipo
Autore
Ciao Giovanni,
il sensore è stato realizzato da Paolo B. che penso possa darti maggiori informazioni di quanto sarei capace di fare io.
Puoi seguire il suo progetto http://www.coscienzambientale.com e scrivere direttamente a Paolo.
Mauro, questo articolo mi interessa molto, ma trovo delle difficoltà ad applicarlo.
E’ possibile capire meglio come fare la taratura del sistema? Perchè penso che nel tempo i sensori debbano essere tarati o compensati per il degrado naturale, un po’ come la sonda pH.
E’ possibile avere anche lo schema di come collegare i sensori ad arduino?
Grazie.
Autore
Ciao Maurizio,
qui trovi tutti gli articoli di questa serie: https://www.mauroalfieri.it/?s=Orto+idroponico+verticale
[…] è un fisico ed è l’autore del conduttimetro, utilizzato nell’orto idroponico, per cui le prime trasmissioni abbiamo deciso di eseguirle […]
[…] all’amico Paolo Bonelli, già noto per progetti come il sensore EC, pubblicato qualche mese fa saremo presenti con un progetto dal titolo “CoScienza […]