Medidor de pH Arduino
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 |
Herramientas y máquinas necesarias
|
Aplicaciones y servicios en línea
|
Acerca de este proyecto
En este proyecto, fabricaremos un medidor de pH de sobremesa utilizando el circuito de pH analógico Gravity y la sonda de Atlas Scientific y un Arduino Uno. Las lecturas se mostrarán en una pantalla de cristal líquido (LCD).
Nota:
- Este medidor fue desarrollado en una computadora con Windows. No se probó en Mac.
- El recinto no es resistente al agua.
Paso 1:preparar la carcasa
Seguridad :Recuerde tener cuidado al manipular herramientas / maquinaria y usar equipo de seguridad adecuado, como gafas, guantes y respiradores.
La carcasa utilizada es una carcasa de plástico ABS. Tiene que ser modificado para el medidor de pH.
Cortar la abertura para la pantalla LCD
a) La pantalla LCD se coloca en la parte superior (cubierta) del gabinete. Centre un rectángulo de 98x40 mm en la cubierta.
b) Coloque la pieza en el tornillo de banco y taladre un orificio piloto de 3,2 mm (1/8 ") en el rectángulo que se marcó.
c) Utilice este orificio piloto como punto de partida para la broca para cortar paneles de yeso de 3,2 mm (1/8 "). Dado que es un trabajo pequeño, usaremos la broca en el taladro manual en lugar de una máquina cortadora de paneles de yeso. Trabaje en el interior de la rectángulo en lugar de las líneas, ya que puede ser un poco difícil cortar de manera recta con esta broca en el taladro.
d) A continuación, use una lima manual para eliminar el exceso de material y dé forma al rectángulo al tamaño requerido.
Cortar las aberturas para el conector BNC y los puertos Arduino
Las aberturas para el conector BNC y los puertos Arduino están en el costado de la parte inferior del gabinete.
a) Utilizando las dimensiones que se proporcionan a continuación, marque el punto central del círculo y los contornos de los dos rectángulos.
b) Coloca la pieza en el tornillo de banco y corta las aberturas. La abertura circular se realiza mediante brocas. Los rectangulares se fabrican siguiendo un proceso similar al utilizado para hacer la apertura de la pantalla LCD.
Equipa la placa base para montar componentes
La placa base se utiliza para montar el Arduino, el sensor de pH y la mini placa de pruebas. Se utiliza una lámina acrílica de 3,2 mm de grosor.
a) Con una sierra de cinta, corte la lámina acrílica a 135x62,5 mm.
b) Marque las posiciones de los cuatro agujeros como se muestra a continuación. Taladre orificios de 2,38 mm (3/32 ") de diámetro. Avellane los orificios de un lado de la placa a una profundidad de 3 mm y un diámetro de 4,4 mm (11/64"). Esto es necesario para mantener una superficie inferior plana cuando se insertan los tornillos para sujetar los separadores.
c) Fije los separadores de 11 mm con los tornillos proporcionados. El sensor de pH viene con 4 separadores y tornillos. Utilice dos de ellos para Arduino.
Paso 2:instale la electrónica en la carcasa
a) Inserte la placa base en la parte inferior de la carcasa. Manténgalo en posición con tornillos o pegamento caliente.
b) Monte el sensor de pH en la placa base. Asegure a los separadores con tornillos.
c) Monte el Arduino Uno en la placa base. Asegure a los separadores con tornillos.
d) Agrega la mini protoboard en la placa base.
e) Suelde los pines del cabezal a la pantalla LCD (pines incluidos). Inserte la pantalla LCD en la parte superior de la carcasa y use un poco de pegamento caliente para mantener la pantalla en su lugar.
Paso 3:Conecte los componentes electrónicos juntos
Conecte los componentes que se muestran en el esquema anterior.
Use la mini placa de pruebas para 1kΩ y 220Ω y para distribuir los pines de tierra y 5V de Arduino.
Las dos resistencias se utilizan para establecer el contraste de la pantalla.
Hojas de datos
Sensor de pH por gravedad, sonda de pH
Paso 4:finalizar el montaje
Una vez completado el cableado:
a) Junte las partes superior e inferior de la carcasa con los tornillos proporcionados.
b) Conecte la sonda al conector BNC.
Paso 5:Cargue el código en Arduino Uno
El código de este proyecto utiliza bibliotecas personalizadas y archivos de encabezado. Tendrá que agregarlos a su IDE de Arduino para usar el código. Los pasos a continuación incluyen el proceso de hacer esta adición al IDE.
a) Conecte el Arduino a su computadora y abra el IDE. El IDE se puede descargar desde este ENLACE si no lo tiene. Vaya a Herramientas -> Placa -> Seleccione Arduino / Genuino Uno . Vaya a Herramientas -> Puerto -> seleccione el puerto donde está conectado el Arduino.
b) Agregar biblioteca de pantalla de cristal líquido:en el IDE, vaya a Sketch -> Incluir biblioteca -> Administrar bibliotecas . En la barra de búsqueda del administrador de la biblioteca, ingrese "liquidcrystal". Busque el paquete titulado "LiquidCrystal Built-in de Arduino, Adafruit". Puede que esté instalado o no. Si no es así, seleccione el paquete y haga clic en instalar .
c) Agregue la biblioteca de sensores Atlas Gravity:descargue el archivo zip desde el siguiente ENLACE. El archivo se guardará como "Atlas_gravity.zip". En el IDE, vaya a Sketch -> Incluir biblioteca -> Agregar biblioteca ZIP . Busque el archivo "Atlas_gravity.zip" y seleccione para agregar.
d) A continuación, tenemos que agregar el código del medidor de pH. Copie el código de este ENLACE en el panel de trabajo IDE.
e) Compile y cargue el código en Arduino.
f) Las lecturas de pH se mostrarán en la pantalla LCD. También puede ver las lecturas en el monitor en serie. Para abrir el monitor en serie, vaya a Herramientas -> Monitor en serie o presione Ctrl + Mayús + M en tu teclado. Establezca la velocidad en baudios en 9600 y seleccione "Retorno de carro".
Paso 6:calibre el sensor de pH
Nota:Si planea usar una fuente de alimentación externa para el Arduino, conéctela al Arduino antes de realizar la calibración. Esto garantizará que los niveles de referencia se establezcan correctamente, lo que ayudará en la calibración correcta.
Este medidor de pH se puede calibrar con una, dos o tres puntos de calibración. Se requieren soluciones tampón estándar (pH 4, 7 y 10)
El monitor de serie se utiliza para el proceso de calibración. El usuario podrá observar el cambio gradual en las lecturas a medida que llegan a la estabilización y enviar los comandos apropiados.
Los datos de calibración se almacenan en la EEPROM del Arduino.
Comandos de calibración
Punto bajo: cal, 4
Punto medio: cal, 7
Punto más alto: cal, 10
Borrar calibración: cal, borrar
Pasos
a) Retire la botella de remojo y enjuague la sonda de pH.
b) Vierta un poco de la solución de pH 4 en una taza. Asegúrese de que haya suficiente para cubrir el área de detección de la sonda.
c) Coloque la sonda en la taza y revuélvala para eliminar el aire atrapado. Observe las lecturas en el monitor de serie. Deje que la sonda se asiente en la solución hasta que las lecturas se estabilicen (un pequeño movimiento de una lectura a la siguiente es normal)
d) Una vez que las lecturas se estabilicen, ingrese el comando cal, 4 en el monitor de serie. La calibración a pH 4 ahora está completa.
Repita los pasos a-d para pH7 y pH10. Recuerde enjuagar la sonda mientras pasa a las diferentes soluciones tampón.
¿Qué pasa con la compensación de temperatura?
El sensor utilizado en este proyecto tiene una precisión de +/- 0,2%. El medidor de pH funcionará con esta precisión en el rango de temperatura de 7 a 46 ° C. Fuera de este rango, el medidor deberá modificarse para compensar la temperatura. Nota:La sonda de pH se puede someter a un rango de 1 a 60 ° C.
Código
- código del medidor de pH arduino
código del medidor de pH arduino C / C ++
/ * Una vez cargado, abra el monitor en serie, establezca la velocidad en baudios en 9600 y agregue "Retorno de carro" El código permite al usuario observar lecturas de pH en tiempo real así como calibrar el sensor. Uno, dos o tres puntos Se puede realizar la calibración. Comandos de calibración:punto bajo:"cal, 4" punto medio:"cal, 7" punto alto:"cal, 10" borrar calibración:"cal, borrar" * / # include "ph_grav. h "// archivo de encabezado para el sensor de pH por gravedad Atlas Scientific # incluye" LiquidCrystal.h "// archivo de encabezado para pantalla de cristal líquido (lcd) String inputtring =" "; // una cadena para contener los datos entrantes del PCboolean input_string_complete =false; // una bandera para indicar si hemos recibido todos los datos de PCchar inputtring_array [10]; // una matriz de caracteres necesaria para la cadena parsingGravity_pH pH =A0; // asigna el pin analógico A0 de Arduino a la clase Gravity_pH. conecte la salida del sensor de pH al pin A0LiquidCrystal pH_lcd (2, 3, 4, 5, 6, 7); // haga una variable pH_lcd y asigne pines digitales arduino a pines lcd (2 -> RS, 3 -> E, 4 a 7 -> D4 a D7) void setup () {Serial.begin (9600); // habilita el puerto serie pH_lcd.begin (20, 4); // inicia la interfaz lcd y define el tamaño del lcd (20 columnas y 4 filas) pH_lcd.setCursor (0,0); // coloca el cursor en la pantalla en la columna 1, fila 1 pH_lcd.print ("--------------------"); // mostrar caracteres pH_lcd.setCursor (0,3); // coloca el cursor en la pantalla en la columna 1, fila 4 pH_lcd.print ("--------------------"); // mostrar caracteres pH_lcd.setCursor (5, 1); // coloca el cursor en la pantalla en la columna 6, fila 2 pH_lcd.print ("Lectura de pH"); // mostrar "Lectura de pH" if (pH.begin ()) {Serial.println ("EEPROM cargada");} Serial.println (F ("Usar comandos \" CAL, 4 \ ", \" CAL, 7 \ ", y \" CAL, 10 \ "para calibrar el circuito a esos valores respectivos")); Serial.println (F ("Use el comando \" CAL, CLEAR \ "para borrar la calibración")); } void serialEvent () {// si el puerto serie del hardware_0 recibe un carácter inputtring =Serial.readStringUntil (13); // leemos la cadena hasta que veamos uninput_string_complete =true; // establece la bandera usada para decir si hemos recibido una cadena completa de la PC} void loop () {if (input_string_complete ==true) {// verifica si los datos recibieron inputtring.toCharArray (inputtring_array, 30); // convierte la cadena en una matriz de caracteres parse_cmd (inputtring_array); // envía datos a la función pars_cmd input_string_complete =false; // restablece la bandera utilizada para decir si hemos recibido una cadena completa de la PC inputtring =""; // limpia la cadena} Serial.println (pH.read_ph ()); // Salida de lectura de pH al monitor serial pH_lcd.setCursor (8, 2); // coloca el cursor en la pantalla en la columna 9, fila 3 pH_lcd.print (pH.read_ph ()); // salida de pH a lcd delay (1000);} void parse_cmd (char * string) {// Para llamar a funciones de calibración strupr (string); // convierte la cadena de entrada a mayúsculas if (strcmp (cadena, "CAL, 4") ==0) {// compara la cadena de entrada del usuario con CAL, 4 y si coinciden, procede pH.cal_low (); // función de llamada para calibración de punto bajo Serial.println ("LOW CALIBRATED"); } else if (strcmp (string, "CAL, 7") ==0) {// compare la cadena de entrada del usuario con CAL, 7 y si coinciden, proceda con pH.cal_mid (); // llamar a la función para la calibración del punto medio Serial.println ("MID CALIBRATED"); } else if (strcmp (string, "CAL, 10") ==0) {// compare la cadena de entrada del usuario con CAL, 10 y si coinciden, proceda con pH.cal_high (); // función de llamada para calibración de punto alto Serial.println ("HIGH CALIBRATED"); } else if (strcmp (string, "CAL, CLEAR") ==0) {// compare la cadena de entrada del usuario con CAL, CLEAR y si coinciden, proceda con pH.cal_clear (); // llamar a la función para borrar la calibración Serial.println ("CALIBRACIÓN BORRADA"); }}
Esquemas
Proceso de manufactura