Tabla de contenido:

Proyectos de bricolaje - My Aquarium Controller: 4 pasos
Proyectos de bricolaje - My Aquarium Controller: 4 pasos

Video: Proyectos de bricolaje - My Aquarium Controller: 4 pasos

Video: Proyectos de bricolaje - My Aquarium Controller: 4 pasos
Video: TUTORIAL PARA LA ACTUALIZACIÓN DE EHEIM LEDCONTROL+ WIFI 2024, Mes de julio
Anonim
Proyectos de bricolaje - My Aquarium Controller
Proyectos de bricolaje - My Aquarium Controller
Proyectos de bricolaje - My Aquarium Controller
Proyectos de bricolaje - My Aquarium Controller
Proyectos de bricolaje - My Aquarium Controller
Proyectos de bricolaje - My Aquarium Controller

Este foi o projecto mais complexo realizado até agora no nosso canal, este consiste em realizar um "upgrade" a um aquário que sofreu um restauro já há algum tempo, para isso colocamos sensores de, de nível de temperatura água e de fluxo de água, além disto tornamos a iluminação mais económica como também um controlo da temperatura da água do aquário mais eficiente e estável.

O controlo e monitorização é realizada através de um Arduino MEGA, que recebe os sinais vindos dos sensores instalados no aquário, estes depois são analisados sendo luego reflectidas acções de forma a corrigir os parâmetros de temperatura da água ou gerando avisos luminosos e sonoros caso estes estejam foros de padronizados.

Cada um dos sensores utilizados têm características específicas, pois têm funções muito. O sensor de temperatura é constituído por uma NTC (Coeficiente de temperatura negativo), ou seja, a sua resistência diminui com o aumento da temperatura (Ver Gráfico acima). Este tipo de sensor utilizado nos pinos de entrada analógica de Arduino, através de uma montaje divisor de tensión variando y tensión nesse pino entre 0 y 5V (Ver imagen acima).

O sensor de fluxo tem a função de medir a quantidade de água que passa pelas tubagens do filter do aquário, verificando assim se a o filter está a funcionar correctamente. Este es constituido por una pequeña ventoinha, en la que están fijos pequeños ímanes ao longo do seu rotor, que activam magneticamente um sensor interno designado por Hall Switch Effect (Ver imagem acima).

Este ao sentir un pasaje dos ímanes produz um sinal de pulso de onda quadrada, que varia a sua frequência consoante a rotação do rotor, ou seja, consoante a quantidade de agua que passa pelo sensor, assim este deve ser ligado aos pinos de entrada digital hacer Arduino.

Os sensores de nível ou bóias de nível tem como função verificar o nível de água do aquário, pois como a água do aquário é ligeiramente aquecida esta tende em evaporar, assim estes sensores activam avisos semper que o nível está a baixo do desejado.

No aquário estão montados 2 destes sensores que se comportam com interruptores, estes devem ser ligados em serie, pois esta montagem apenas deve activar os avisos caso ambos os sensores estejam activados, diminuindo assim a possibilidade de erro (Ver imagem acima).

A iluminação do aquário foi alterada para LED, sendo que cada LED tem uma potência de cerca de 10W e são adequados para a iluminação de plantas, normalmente designados por Full Spectrum, ou seja, produzem iluminação em todo o espectro de luz que as plantas necessitam.

Como vantagens da utilização deste tipo de iluminação são o facto de os LED serem bastante pequeños em relação à su potência e assim mais económicos, alem disto também iluminam apenas numa direcção não sendo necesários reflectores (Ver imagem acima).

Por fim, instalamos 2ventoinhas de PC que têm a função de arrefecer a água do aquário principalmente quando a temperatura ambiente está elevada o que acontece normalmente durante o Verão, este sistema é muito importante pois a da água é dos parâmetros mais importantes num aquário, estas ventoinhas funcionam a 12V DC y devem ser o más silenciosas posibles.

Caso queiram saber más sobre estes sensores vejam as suas datasheet (Ver ficheiros abaixo) e os nossos tutoriais onde explicamos detalhadamente o seu funcionamento e características.

Sensor de temperatura:

www.instructables.com/id/Arduino-Tutorial-…

Sensor de Fluxo:

www.instructables.com/id/Arduino-Tutorial-…

Paso 1: Preparar Acuario:

Image
Image
Preparar Acuario
Preparar Acuario
Preparar Acuario
Preparar Acuario

Começamos semper os nossos projectos desenhando e testando o circuitos através de uma pequena Breadboard e os componentes necessários para a sua realização, só depois destes testes terminados e confirmada a sua funcionalidade, partimos para a concretização final (Ver circuito acima).

Material necesario:

  • 2x Ventoinhas PC 12V DC 80mm;
  • 4x LED SMD 10W de espectro completo;
  • 4x Dissipadores de calor LED;
  • 6x LED Amarelos de 1W;
  • 4x LED Azuis de 1W;
  • 1x PCB de 4x4 Cm;
  • 2x Bóias de nível;
  • 1x Sensor de Temperatura NTC 10KOhm;
  • 1x Sensor de Fluxo.

Instalación del Sensor de Fluxo:

O sensor de fluxo é muito fácil de instalar pois apenas temos que coloca-lo numa das tubagem de entrada ou saída de água do filtro do aquário, no entanto, utilizamos umas ligações rápidas para mangueiras tornando assim mais fácil a desmontagem do sensor para ser mais fácil a limpeza dos tubos do filtro (ver imagem acima).

Instalação das Bóias de nível:

As bóias de nível são instaladas em cantos opostos do aquário de formas a que a o sistemas seja menos errático. Estão montadas em pequenos soporta desenhados através de o programa de desenho técnico SolidWorks (Ver imagens acima) e materializados através de Impressão 3D (Ver ficheiros abaixo). Estes suportes são facilmente instaláveis no aquário e são ajustáveis para que seja posível colocar como bóias de nível na altura pretendida (Ver ficheiros STL abaixo).

Instalação das Ventoinhas:

Na instalação das ventoinhas do sistema de refrigeração de água, optamos por realizar 2aberturas de cerca de 80mm na tampa do aquário, ou seja, com mesmo diâmetro das ventoinhas de PC utilizado. Estas Ventoinhas funcionam a 12V DC, são muito silenciosas y quando accionadas proporcionam a circulação de ar junto a superfície da água, que consecuentemente faz baixar a temperatura da água do aquário.

Estas ventoinhas e todo o sistema eléctrico ficam completamente ocultos após serem colocadas as suas coberturas, también desenhadas no SolidWorks (Ver Imagens acima) e produzidas através of Impressão 3D (Ver ficheiros abaixo).

Instalação da Iluminação de presença:

Una iluminación de presença ou Luz Lunar é realizada através de uma pequena PCB (Ver imagem acima) onde estão montados os LED de 1Wamarelos e azuis. Esta PCB para desencadenar un programa de diseño de PCB (EasyEDA), una vez que sea posible imprimir o un circuito en un acetato, también deixamos-vos o un desenho de PCB pronto a imprimir o para importar, sendo posible altera-lo (Ver ficheiros abaixo).

Una producción destacada de PCB para la realización de un método químico que consiste en 3 procesos, que se trata de un proceso de revelación, de un proceso de corrosión y de un proceso de limpieza y de finalización. Este método ha sido utilizado recientemente en otros proyectos, para que no se hayan realizado demasiado maçador deixo-vos os enlaces de nuestros proyectos sobre el descriminado de todos los estes processos detalhadamente.

www.instructables.com/id/DIY-Projects-My-U…

www.instructables.com/id/DIY-Projects-My-A…

Esta iluminación solo tiene una estética final, sendo formada por 2 circuitos de LED que pueden ser accionados individualmente o en conjunto, tendo una función de iluminación o aquário cuando la iluminación principal está desligada. No entanto, para que fosse um pouco mais divertido, controlamos esta iluminação consoante as fases da Lua, ligando y desligando os 2 circuito à medida que essas fases vão alterando (Ver imagem acima).

Instalação de Iluminação de principal:

A iluminação principal é composta por 4 LEDSMD de 10WFull Spectrum ideal para iluminação de plantas. Estes são controlados individualmente sendo necesario uma fuente de alimentación con una potencia adecuada para este tipo de LED, pois estes são bastante potentes y exigem uma fonte alimentação estável.

Atenção:

Não ligar os LED directamente à fonte de alimentação, pois deve-se baixar a tensão que alimenta estes LED, vinda da fonte de alimentação para perto da tensão de funcionamento desses LED que é cerca de 9V e como a fonte de alimentação usada é de 12V DC colocamos en serie una resistencia de potencia o disipadora (Ver imagem abaixo).

Da mesma forma que as ventoinhas ficam ocultas todos os LED e o seu respectivo circuito eléctrico através das mesmas coberturas ficando mais estético e seguro, pois o circuito eléctrico fica completamente inacessível (Ver ficheiros abaixo).

Paso 2: Caixa De LED Aquário:

Caixa De LED Aquário
Caixa De LED Aquário
Caixa De LED Aquário
Caixa De LED Aquário
Caixa De LED Aquário
Caixa De LED Aquário

De forma a distribuir as alimentações dos sistemas do iluminação de ventilação do nosso aquário a partir de um único local, construímos um circuito y colocámos todas como resistencias dos LED dos sistemas de iluminación principal e de presença (Ver circuito acima).

Material necesario:

  • 1x Fuente de alimentación IP67 12V 50W;
  • Controlador de velocidad 4x PWM ZS-X4A;
  • 4x Resistências 10 Ohms 10W;
  • 1x Disipador de calor;
  • 1x Ventilador 40mm 12V 0, 1A;
  • 1x Interruptor de 2 posiciones;
  • 1x PCB de 13x10 Cm;
  • 2x Resistências 100 Ohms 2W;
  • 4x Bloque de terminales de 2;
  • 1x Bloque de terminales de 3;
  • 1x Bloque de terminales de 4.

Alem das resistências de potência dos LED SMD de 10W, estes estão ligados a equipamentos PWM Controller ZS-X4A estes permitem controlar una intensidad de iluminación através de uma resistência variável alterando asimilar una frecuencia de pulso na sua saída (Ver gráfico acima).

No entanto, as resistências de potência tendem em aquecerem um pouco sendo necessário colocar um dissipador de calor e uma pequena ventoinha de PC de 40mm, esta funciona 12V DC sendo alimentada através do próprio circuito eléctrico, podendo ser controlado por um interruptor que foi instalado na caixa do circuito.

Alem das resistência dos LED SMD, también foram colocadas as resistências de 100 Ohms do sistema de iluminação de presença, estas têm a mesma função que as anteriores, no entanto com uma potencia de cerca de 2W (Ver cálculos acima).

A PCB deste circuito foi también desenhada através of um program of PCB Design (EasyEDA) onde podemos imprimir e alterar o circuito (Ver ficheiros abaixo), sendo también materializada através de método químico (Ver imagens acima).

Una caja destacada para esta PCB para un diseño en SolidWorks (Ver imágenes acima) y también materializadas através de Impressão 3D. Esta está preparada para a instalação das ventoinha de arrefecimento das resistências de potência e o respectivo dissipador de calor (Ver ficheiros abaixo).

Paso 3: Controlador Do Aquário:

Controlador Do Aquário
Controlador Do Aquário
Controlador Do Aquário
Controlador Do Aquário
Controlador Do Aquário
Controlador Do Aquário

Vamos então ao nosso controlador, este equipamiento irá controlar e monitorizar los sistemas de iluminación principal e de presença, como também a temperatura do aquário. Este é constituído por um Arduino MEGA, que recebe os sinais dos sensores distribuídos pelo aquário, activando posteriormente as ventoinhas de refrigeração da água do aquário e os sistemas de iluminação, isto através de módulos de relés, caso exista algum valor fora dos valores padrão programados, este activa avisos luminosos e sonoros (Ver circuito acima).

Material necesario:

  • 1x Arduino MEGA;
  • 1x LCD 1602;
  • 1x RTC DS1307;
  • 1x Batería de 3V CR2032;
  • 5x Botões de pressão;
  • 1x Resistência variável de 10K Ohms;
  • 1x Resistência 10K Ohms;
  • 1x Resistência 220 Ohms;
  • 6x Resistência 1K Ohms;
  • 1x PCB de 15x10 Cm;
  • 1x LED Azul 1W;
  • 1x LED Amarelo 1W;
  • 1x LED Vermelho 1W;
  • 3x Resistência 100 Ohms;
  • 1x Módulo de 2 Relés;
  • 1x Módulo de 4 Relés;
  • 1x Módulo de 1 Relé;
  • 2x Bloque de terminales de 2;
  • 1x Bloque de terminales de 3;
  • 1x Bloque de terminales de 4;
  • Enchufe de encabezado macho y hembra 5x.

Para a construção deste equipamento são used vários components que já falamos em tutoriais anteriores no nosso canal, tais como o LCD 1602 onde visualizamos a informação do menu, as suas páginas, os dados guardados e inseridos no controller, uma placa RTC DS1307 que fornece informação de hora e datos ao Arduino MEGA, tendo esta uma pilha tipo botão CR2032 para que no perca una información guardada, garantindo que un mesmo sem alimentação o Arduino no deixará de ter a hora e dataactualizadas.

Arduino MEGA:

O Arduino MEGA é uma placa com um micro-controlador que posui 54 pinos de entrada y saída de sinal digital, 14 dos quais podem ser usados como saídasPWM (Pulse-Width Modulation) y 16entradas de sinal analógico. Todos estes pinos podem se utilizan para ligar vários tipos de sensores entre os quais os sensores do nosso aquário. Alem dos sensores estes pinos también podem controlar vários tipos de componentes como Módulos de relés, LCD e LED.

Instalación de LCD 1602:

Para ligar o LCD 1602 teremos de ter em atenção à configuração dos seus pinos durante un montaje sua, sendo que cada pino tem uma função especifica (Ver legenda acima). Esses pinos podem ser agrupados en 3 grupos, o grupo dos Pinos de Alimentação, o de Pinos de Comunicação e o de Pinos de Informação.

Pinos de Alimentação:

  • Gnd;
  • Vcc;
  • V0;
  • LED - ou A (Anodo);
  • LED + ou K (Catodo).

O Pino V0 tem a função de ajustar o contrast dos caracteres, para podermos controlar esse ajuste ligamos este pino a uma resistência variável de 10KΩ, que funcionará como um divisor de tensão alterando assim a tensão entre 0 e 5V (Ver imagem acima).

Os pinos de alimentação do LED de luz de fundo do LCD (A e K) são também ligados aos pinos de Gnd e + 5V do Arduino MEGA, no entanto, ligamos em série uma resistência de 220Ω para que o brilho não seja intenso demasiado, não permitindo que os LED internos do LCD se danifiquem.

Pinos de Comunicação:

  • RS (Seleccionar registro);
  • R / W (lectura / escritura);
  • E (Activar).

Nos pinos de comunicação apenas se deve ter alguma atenção ao pino R / W, pois este deve estar ligado a Gnd, para que seja permitido escrever no LCD aparecendo assim o caracteres, caso contrario podemos estar a ler o dados guardados na memoria interna do LCD.

Pinos de Informação:

  • D0;
  • D1;
  • D2;
  • D3;
  • D4;
  • D5;
  • D6;
  • D7.

Neste projecto utilizamos apenas 4 dos 8 posibilidades pinos de informação, pois utilizar una biblioteca LiquidCrystal.h no código permite o Arduino enviar os dados para o LCD dividido em 2 partes, ou seja, são necessário metade dos pinos para realizar una mesma função, assim o LCD apenas needita dos pinos de informação de D4 a D7.

Caso queiram saber mais sobre o o LCD 1602 vejam o nosso tutorial onde explicamos o seu funcionamento mais pormenorizadamente.https://www.instructables.com/id/Arduino-Tutorial-LCD-Temperature-Sensor/

Instalación de RTC DS1307:

Este componente tem como função fornecer una información de datos e hora de forma precisa e constante, ou seja, mesmo quando una alimentación externa é desligada por algum motivo esta mantém os dados de data e hora semper actualizado nunca perdendo una información.

Neste projecto para usada uma RTC DS1307, que contem 2 linhas de pinos de alimentação e de comunicação (Ver legenda acima), no entanto, iremos utilizar a linha com menos pinos, pois apenas são needários os pinos Gnd, Vcc, SDA e SCL.

Pinos de Alimentação:

  • Gnd;
  • Vcc;
  • Murciélago.

Em relação ao pino Bat apesar de não ser um pino de alimentação coloca-mos-o neste grupo, pois este pino está ligado directamente a batería do tipo botãoCR2032 da RTC que serve de alimentação interna da placa, sendo este pino muito utilizado para a monitorização da carga da bateria.

Pinos de Comunicação:

  • SCL;
  • SDA;
  • DS;
  • SQ.

Os pinos de comunicaçãoSCL e SDA da placa RTC fazem parte de um sistema de comunicação chamado I2C (Ver diagrama acima), onde é possível comunicar com um ou mais equipamentos através de apenas duas únicas linhas, sendo o SDA ou SERIAL DATA a linha que transmite Recibir una información eo SCL o un RELOJ DE SERIE o responder por saber qué equipo está disponible para recibir o enviar una información, ficando asimilar todos los sincronizados.

Caso queiram saber más sobre un RTC DS1307 vejam o nosso tutorial onde explicamos o seu funcionamento mais pormenorizadamente.

www.instructables.com/id/Arduino-Tutorial-Clock-LCD/

Alem dos componentes anteriores, que são os mais importantes, são used também 4botões de pressão que permitem ao utilizador navegar pelas páginas do menu podendo visualizar e alterar a informação fornecida pelos sensores ou guarda no Arduino, estes botões podem ter funções diferentes ao longo do menu depende de la página y el tipo de información visualizada.

A pesar de serem completamente diferentes dos botões de pressão, as bóias de nível funcionam eléctricamente de forma idêntica, pois estas quando accionadas ligam magneticamente um switch.

Caso queiram saber más sobre un montaje y funcionamento dos botones de presión vejam o nuestro tutorial sobre explicamos más pormenorizadamente.

www.instructables.com/id/Arduino-Tutorial-…

Quando foi elaborado circuito da PCB do nosso controlador foi considerado un montaje do divisor de tensão para o sensor de temperatura, permitindo que o Arduino possa realizar una lectura deste sensor. Segundo como especificações do fabricante o sensor de temperatura é de 10KΩ, logo a resistência que escolhemos para o divisor de tensão también deve ser de 10KΩ.

O ponto comum deste divisor de tensão é ligado a um dos pinos analógicos do Arduino Mega (Ver imagem acima), neste caso escolhemos oo pino A0, assim à medida que a temperatura altera a tensão nesse pino analógico também altera entre 0 e 5V, sendo Assim possível ao Arduino realiza essa leitura.

Caso queiram saber más sobre un montaje y funcionamiento del sensor de temperatura vejam o nosso tutorial onde explicamos mais pormenorizadamente.

www.instructables.com/id/Arduino-Tutorial-…

O controlador tem 3avisos luminosos que significam diferentes acontecimentos, o LED de cor azul indica que a temperatura da água está abaixo da temperatura mínima seleccionada, o LED de cor vermelha que indica que a temperatura está acima da temperatura máxima seleccionada e por fim o LED de cor amarela que indica que o fluxo de agua do filter do aquário está abaixo do seleccionado, sendo todos estes ligados a pinos de saída de sinal digital do Arduino MEGA.

Por fim utilizamos 3 módulos de relés diferentes, sendo um de 1relé (Ventoinhas de arrefecimento), outro de 2relés (Iluminação de presença) y por ultimo outro de 4relés (Iluminação principal). Estes são indicados para montagens com o Arduino tendo una particularidade de serem activos não com a saída de sinal digital do Arduino em nível alto mais sim em nível baixo.

A PCB deste circuito foi también desenhada através of um program of PCB Design (EasyEDA) onde podemos imprimir e alterar o circuito (Ver ficheiros abaixo), sendo también materializada através de método químico (Ver imagem acima).

A caixa para esta PCB foi desenhada no SolidWorks (Ver imágenes acima) y también produzidas através de Impressão 3D. Esta divide-se em 3 partes, assim a parte frontal é onde estão indicações das ligações dos nossos sensores ao controlador, a parte intermédia que é onde está montada e fixa a nossa PCB com o Arduino MEGA o LCD ea RTC, por fim a parte traseira onde se encontrará todos os módulos de relés tendo abertura para un pasaje e ligação das respectivas cablagens cablagens (Ver ficheiros abaixo).

Paso 4: Código:

Código
Código
Código
Código
Código
Código
Código
Código

Agora só nos falta programar o nosso controlador do aquário, para isso ligamos o cabo USB ao nosso controlador e carregamos o respectivo código no Arduino MEGA (Ver ficheiro abaixo).

Mas antes, vamos a explicar resumidamente o nosso código, sendo que é neste que vamos a colocar como diferentes funciones necesarias para una elaboración de un menú con diferentes páginas e consecutivamente visualização de diferentes informações, sendo posible navegar por este através dos botões de presión referidos acima.

Assim começamos lugar deve ser elaborado um pequeño esquema de blocos com a estrutura de páginas e funções que o nosso equipamento terá (Ver esquema acima), sendo assim mais fácil elaborar o nosso código e seja needário alterar ou corrigir-lo sabemos semper onde nos encontramos.

// Correr una función LOOP repetidamente:

bucle vacío () {// Condición para una lectura de la distancia: if (Menú == 0) {// Correr una función: Pagina_0 (); } // Condición para la lectura de la temperatura: else if (Menú == 1) {// Correr una función: Pagina_1 (); } // Condición para la lectura de la temperatura: else if (Menú == 2) {// Correr una función: Pagina_2 (); }} // Página 0: void Pagina_0 () {// Código referente a la función de la página. } // Página 1: void Pagina_1 () {// Código referente a función de la página. } // Página 2: void Pagina_2 () {// Código referente a función de la página. }

Caso queiram saber más sobre este tipo de esquema de menú vejam o nosso tutorial sobre explicamos cómo elaborar e programar uma menú no Arduino.

www.instructables.com/id/Arduino-Tutorial-…

Depois de sabermos qual a estrutura do código passamos para as bibliotecas dos componentes que interagem com o Arduino, neste projecto importarmos as bibliotecas LiquidCrystal.h para o LCD 1602, as TimeLib.h, a Wire.hea DS1307RTC.h para a placa RTC DS1307, a Thermistor.h para o nosso sensor de temperatura, e por fim a EEPROM.h que nos permite gravar e ler dados gravados en la memoria de Arduino, tudo es atravesar el gestor de bibliotecas del software de Arduino.

Começamos então pela biblioteca LiquidCrystal.h, esta facilita una configuración de LCD 1602 sendo apenas necesario 2funções para que este funcione correctamente.

Para escrever no LCD é necessário em primeiro lugar definir o local onde se começará a colocar os caracteres, ou seja, a coluna ea linha, depois imprimimos o text que queremos tendo em atenção que este LCD apenas tem 16colunas e 2linhas, caso o texto passe esses limites não aparecerão os caracteres.

// Definir os pinos de comunicação e informação do LCD:

LiquidCrystal lcd ("RS", "E", "D7", "D6", "D5", "D4");

mi

configuración vacía () {

// Inicia una comunicación con LCD 16x2: lcd.begin (2, 16); } void loop () {// Definir una coluna (em 16) e una linha (em 2) do LCD onde escrever: lcd.setCursor (0, 0); // Escreve no LCD: lcd.print ("Temperatura:"); }

Una biblioteca thermistor.h permite-nos apenas com uma função configurar este tipo de sensor de temperatura através do código seguinte.

#include "thermistor.h" // Importar una biblioteca de "termistor"

// Esta función define: THERMISTOR SENSOR (Pino_Sensor, 10000, 3950, 10000); // Pino de entrada do sensor; // Resistência nominal a 25ºC do sensor; // Sensor de coeficiente beta do; // Valor da resistência do sensor.

Como 3bibliotecas, TimeLib.h, Wire.h e DS1307RTC.h contêm comandos, funções e referencias criadas especificamente para trabalhar com a placa RTC.

Una biblioteca TimeLib.h activa como funcionalidades de tempo, como variáveis para segundos, minutos, hora, dia, mês, etc, facilitando la asimilación de cálculos dos valores de tempo.

Una biblioteca Wire.h activa como funciones de comunicación entre equipos através del sistema de comunicación I2C. Os pinos de comunicação deste sistema são diferentes nos vários modelos de Arduino, caso queiram saber quais os pinos utilizados vejam o Link "https://www.arduino.cc/en/Reference/Wire".

Por ultimo a biblioteca DS1307RTC.h activa as funcionalidades que permitem a leitura e escrita de dados de tempo guardados na RTC.

bucle vacío () {

int h, m, s, D, M, A; // Variáveis para alteração da hora e data. // Definir uma nova hora e data: setTime (h, m, s, D, M, A); // Grava na RTC sobre datos de tempo: RTC.set (now ()); // Lê na RTC os dados de tempo: RTC.get (); }

Por fim a biblioteca EEPROM.h que permite gravar e lerdados gravados na memória não volátil do Arduino, sendo possível memorizar valores como por exemplo, hora de ligar iluminação, valores de máxima e mínima e fluxo temperatura de agua mínimo mesmo que Arduino fique sem energia não sendo needário configurar novamente estes valores ou configurações.

Este tipo de memória é diferente nos vários tipos de placas do Arduino, tendo diferentes capacidades, no caso do Arduino MEGA (ATmega2560 - 4096 Bytes) tem 4KB, assim este terá 4096endereços ou posições, onde podemos guardar os nosso dados. No entanto, só podemos guardar nesses endereços dados de 8 bits, ou seja, com um valor até 256 (Ver quadro acima).

Para utilizar una memoria EEPROM de Arduino através esta biblioteca, poderemos utilizar os seus principais comandos: Caso queiram ver mais sobre estes e outros comandos de esta biblioteca, vejam as sua referencia em "https://www.arduino.cc/en/Reference/ EEPROM"

// Apagar os dados na EEPROM.

int i; // Variável para os endereços da EEPROM; bucle vacío () {para (int i = 0; i <EEPROM.length (); i ++) {EEPROM.write (i, 0); // "i" = Endereço onde será escrito 0.}} // ---------------------------------- ------------------- // Ler os dados gravados da EEPROM. int i; // Variável para os endereços da EEPROM; int Valor; // Variável para leitura da EEPROM; bucle vacío () {Valor = EEPROM.read (i); // "i" = Endereço onde serão lidos os dados. } // ----------------------------------------------- ------ // Gravar dados na EEPROM. int i; // Variável para os endereços da EEPROM; int Valor; // Variável para leitura da EEPROM; bucle vacío () {EEPROM.write (i, Valor); // "i" = Endereço onde serão lidos os dados. }

Caso queiram saber más sobre un RTC DS1307 y una memoria EEPROM de Arduino vejam o nosso tutorial onde explicamos pormenorizadamente o como sus funciones y características.

www.instructables.com/id/Arduino-Tutorial-…

Para utilizarmos o Sensor de Fluxo não é needário nenhuma biblioteca, no entanto, temos que recorrer un cálculo de formas a determinar o valor medido pelo sensor. Como este sensor produz um sinal de onde quadrada, que varia a sua frequência consoante a quantidade de agua que pasa por ele, teremos de utilizar a função "PulseIn", que conta o tempo em que esse sinal está em nível alto, bastando colocar un palavra "High" eo tempo em que o sinal está em nível baixo com a palavra "Low", no final a soma destes 2 tempos será o tempo total de cada ciclo, no entanto, este valor de tempo é dado em micro-Segundo, ou seja, 1000000µSeg.

Depois basta um código idêntico ao descrito abaixo para que possamos encontrar o valor pretendido, teremos apenas de ter em atenção quais as características do nosso sensor através da sua datasheet pois a razão de Pulsos / (L / min) pode ser diferente dependiente de cada sensor (Ver cálculos acima).

// Una rotación de LOOP e ejecutada repetidamente: void loop () {// Contagem do tempo de duração de cada pulso em nível Alto e nível baixo. Contagem_Total = (pulseIn (Pino_Sensor, HIGH) + pulseIn (Pino_Sensor, LOW)); // Contagem de numero de pulsos por segundo (1Seg = 1000000µSeg). Calculo_Fluxo = 1000000 / Contagem_Total; // Multiplicação de (Num. Total de pulsos / Seg) x (Características del pulso), // (Ver na Datasheet Flow Sensor e cálculos acima): Calculo_Fluxo = (Calculo_Fluxo * 2.38); // Converte mL / s em mL / min: Calculo_Fluxo = Calculo_Fluxo * 60; // Converte mL / min em L / min Calculo_Fluxo = Calculo_Fluxo / 1000; if (Calculo_Fluxo <0) {Calculo_Fluxo = 0; } else {Calculo_Fluxo = Calculo_Fluxo; }

}

Para controlar los sistemas de iluminación también utilizamos cálculos de formas para facilitar una configuración del controlador, no caso del sistema de iluminación principal o utilizador solo terá de seleccionar 2 parámetros, una hora de inicio del ciclo de iluminación eo número de horas que esse ciclo estará ligado (Ver imagem acima).

Em relação à iluminação de presença ou Lunar apenas teremos seleccionar a data da próxima Lua cheia como o ciclo da lua tem aproximadamente 28 dias o controlador liga e desliga os LED da iluminação de presença alterando a configuração de 7 em 7 dias até complete 28 dias ea Lua cheia novamente.

Como este artigo já vai um pouco longo, podem encontrar o ficheiro com o código completo y que estamos a utilizar actualmente (Ver ficheiro abaixo).

Procurem os nossos outros projectos e tutoriais acerca de Arduino, onde explicamos diversas montagens e o funcionamento dos seus componentes, já agora visitem o nosso canal no Youtube, Instagram, Facebook ou Twitter.

Abraço e até ao próximo projecto.

Recomendado: