Índice:

Projetos DIY - Meu controlador de aquário: 4 etapas
Projetos DIY - Meu controlador de aquário: 4 etapas

Vídeo: Projetos DIY - Meu controlador de aquário: 4 etapas

Vídeo: Projetos DIY - Meu controlador de aquário: 4 etapas
Vídeo: COMO FAZER UM PAINEL CONTROLADOR PARA AQUÁRIO - BARATO E EFICIENTE!!! PARTE 1 2024, Julho
Anonim
Projetos DIY - My Aquarium Controller
Projetos DIY - My Aquarium Controller
Projetos DIY - My Aquarium Controller
Projetos DIY - My Aquarium Controller
Projetos DIY - My Aquarium Controller
Projetos DIY - 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 temperatura, de nível de á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 transformados no aquário, estes depois são avaliados após serem reflectidas de forma a corrigir os parâmetros de temperatura da água ou gerando avisos luminosos e sonoros caso estes dois fora do padronizados.

Cada um dos sensores utilizados têm características especificas, pois têm funções muito diferentes. O sensor de temperatura é constituído por uma NTC (Coeficiente de Temperatura Negativa), ou seja, uma resistência de sua resistência com o aumento da temperatura (Ver Gráfico acima). Este tipo de sensor é utilizado nos pinos de entrada analógica do Arduino, através de uma montagem divisor de tensão variando a tensão nesse pino entre 0 e 5V (Ver imagem acima).

O sensor de fluxo tem uma função de medir a quantidade de água que passa pelas tubagens do filtro do aquário, verificando se o filtro está funcionando corretamente. Este é constituído por uma pequena ventoinha, onde estão fixos pequenos ímanes ao longo do seu rotor, que ativam magneticamente um sensor interno designado pelo efeito de switch Hall (Ver imagem acima).

Este ao sentir a passagem 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 do 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 é aquecido esta tende em evaporar, assim estes sensores ativam avisos sempre 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 série, pois esta montagem apenas deve ativar os avisos caso ambos os sensores desaparecidos ativados, 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, iluminação iluminada em todo o espectro de luz que as plantas relativas.

As vantagens da utilização deste tipo de iluminação são o facto de os LED serem bastante pequenos em relação à sua potência e assim mais económica, alem disto também iluminam apenas numa direcção não sendo tratada 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 temperatura da água é dos parâmetros mais importantes num aquário, estas ventoinhas funcionam a 12V DC e devem ser o mais silenciosas possivel.

Caso queiram saber mais sobre estes sensores vejam as suas datasheet (Ver arquivos 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-…

Etapa 1: Preparar Aquário:

Image
Image
Preparar Aquário
Preparar Aquário
Preparar Aquário
Preparar Aquário

Começamos sempre os nossos projectos desenhando e testando os circuitos através de uma pequena Breadboard e os componentes combinados 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 necessário:

  • 2x Ventoinhas PC 12V DC 80mm;
  • 4x LED SMD 10W Full Spectrum;
  • 4 LEDs Dissipadores de calor;
  • 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.

Instalação do Sensor de Fluxo:

O sensor de fluxo é muito fácil de instalar pois apenas temos que colocar-lo numa das tubagem de entrada ou saída de água do aquário, no entanto, utiliza 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:

Como 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 suportes desenhados através do programa de desenho técnico SolidWorks (Ver imagens acima) e materializados através de Impressão 3D (Ver arquivos abaixo). Estes suportes são facilmente instaláveis no aquário e são ajustáveis para que seja possível colocar como bóias de nível na altura pretendida (Ver arquivos 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 e quando acionadas proporcionam a circulação de ar junto à superfície da água, que consequentemente faz baixar a temperatura da água do aquário.

Estas ventoinhas e todo o sistema eléctrico ficam completamente ocultos após serem colocadas como suas coberturas, também desenhadas no SolidWorks (Ver Imagens acima) e produzidas através de Impressão 3D (Ver arquivos abaixo).

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

A iluminação 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 foi através de um programa de PCB Design (EasyEDA), onde é possível imprimir o circuito em acetato, também deixamos-vos o desenho do PCB pronto a imprimir ou para importar, sendo possível altera-lo (Ver arquivos).

A produção deste PCB foi realizada através do método químico que consiste em 3processos, que são o processo de revelação, o processo de corrosão e o processo de limpeza e acabamento. Este método tem sido utilizado por nós recentemente em outros projectos, para que não seja demasiado maçador deixo-vos os links de outros projectos onde é descriminado todos estes processos detalhadamente.

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

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

Esta iluminação tem apenas uma estética estética, sendo formada por 2circuitos de LED que podem ser accionados individualmente ou em conjunto, tendo a função de iluminar o aquário quando a iluminação principal está desligada. No entanto, para que fosse um pouco mais divertido, controlamos esta iluminação consoante as fases da Lua, ligando e 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 necessário uma fonte de alimentação com a potência adequada para este tipo de LED, pois estes são bastante potentes e adaptáveis uma fonte estável.

Atenção:

Não ligar os LED diretamente à 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 LEDs que é cerca de 9V e como uma fonte de alimentação utilizada é de 12V DC colocamos em serie uma resistência de potência ou dissipadora (Ver imagem abaixo).

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

Etapa 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 de iluminação de acordo com o nosso aquário a partir de um único local, construímos um circuito onde colocámos todas as resistências dos LEDs dos sistemas de iluminação principal e de presença (Ver circuito acima).

Material necessário:

  • 1 fonte de alimentação IP67 12V 50W;
  • 4x PWM Speed Controller ZS-X4A;
  • 4x Resistências 10 Ohms 10W;
  • 1x Dissipador de calor;
  • 1x Ventilador 40mm 12V 0, 1A;
  • 1x Interruptor de 2 posições;
  • 1x PCB de 13x10 Cm;
  • 2x Resistências 100 Ohms 2W;
  • 4x Bloco Terminal de 2;
  • 1x Bloco Terminal de 3;
  • 1x Bloco Terminal de 4.

Alem das resistências de potência dos LED SMD de 10W, estes estão ligados a equipamentos PWM Controller ZS-X4A permitem controlar a intensidade da iluminação através de uma resistência variável alterando assim a frequência do 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, também foram colocadas como resistências de 100 Ohms do sistema de iluminação de presença, estas têm uma função mesma que as anteriores, no entanto com uma potência de cerca de 2W (Ver cálculos acima).

Um circuito PCB foi também criado através de um programa de PCB Design (EasyEDA) onde podemos imprimir e alterar o circuito (Ver arquivos abaixo), sendo também materializada através de método químico (Ver imagens acima).

A caixa desta para esta PCB foi criada no SolidWorks (Ver Imagens acima) e também materializadas através de Impressão 3D. Esta está preparada para a instalação do ventoinha de arrefecimento das resistências de potência e o respectivo dissipador de calor (Ver arquivos abaixo).

Etapa 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 equipamento irá controlar e monitorizar os sistemas de iluminação 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, ativando posteriormente como ventoinhas de refrigeração da água do aquário e os sistemas de iluminação, isto através de módulos de iluminação, caso exista algum valor para os valores padrão programados, esta activa, avisos luminosos e sonoros (Ver circuito acima).

Material necessário:

  • 1x Arduino MEGA;
  • 1x LCD 1602;
  • 1x RTC DS1307;
  • 1x Bateria 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;
  • 1 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 Bloco Terminal de 2;
  • 1x Bloco Terminal de 3;
  • 1x Bloco Terminal de 4;
  • 5x Soquete de cabeçalho masculino e feminino.

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

Arduino MEGA:

O Arduino MEGA é uma placa com um micro-controlador que possui 54 pinos de entrada e saída de sinal digital, 14 dos quais podem ser usados como processos PWM (Modulação por largura de pulso) e 16entradas de sinal analógico. Todos estes pinos podem ser utilizados para ligar vários tipos de sensores entre os quais os sensores do nosso aquário. Alem dos sensores estes pinos também podem controlar vários tipos de componentes como Módulos de Relés, LCD e LED.

Instalação do LCD 1602:

Para ligar o LCD 1602 teremos de ter em atenção à configuração dos seus pinos durante a sua montagem, sendo que cada pino tem uma função específica (Ver legenda acima). Esses pinos podem ser agrupados em 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 contraste 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 demasiado intenso, não permite que os LED internos do LCD se danifiquem.

Pinos de Comunicação:

  • RS (Seleção de Registro);
  • R / W (leitura / gravação);
  • E (ativar).

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 os caracteres, caso contrario podemos estar a ler os dados guardados na memória interna do LCD.

Pinos de Informação:

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

Neste projeto utilizamos apenas 4 dos 8 pinos possíveis de informação, pois utilizando uma biblioteca LiquidCrystal.h nenhum código permite o Arduino enviar os dados para o LCD dividido em 2 partes, ou seja, são necessários metade dos pinos para realizar a mesma função, assim o LCD apenas requer dos pinos de informação de D4 a D7.

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

Instalação da RTC DS1307:

Este componente tem como função fornecer a informação de dados e hora de forma precisa e constante, ou seja, mesmo quando a alimentação externa é desligada por algum motivo esta mantém os dados de dados e hora sempre atualizados nunca perdendo a informação.

Neste projeto foi utilizado um RTC DS1307, que contem 2 linhas de pinos de alimentação e de comunicação (Ver legenda acima), no entanto, iremos utilizar uma linha com menos pinos, pois apenas são colocados os pinos Gnd, Vcc, SDA e SCL.

Pinos de Alimentação:

  • Gnd;
  • Vcc;
  • Bastão.

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 diretamente à bateria do tipo botãoCR2032 da RTC que serve de alimentação interna da placa, sendo este pino muito utilizado para 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 e recebe a informação e o SCL ou SERIAL CLOCK o responsável por saber quando é que os equipamentos têm que receber ou enviar uma informação, ficando assim todos sincronizados.

Caso queiram saber mais sobre um 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 utilizados também 4botões de pressão que permite ao usuário navegar pelas páginas do menu podendo visualizar e alterar a informação obtida pelos sensores ou guarda no Arduino, estes botões podem ter funções diferentes ao longo do menu depende da página e do tipo de informação visualizada.

Um peso de serem completamente diferentes dos botões de pressão, como bóias de nível eletricamente de forma idêntica, pois estas quando acionadas ligam magneticamente um interruptor.

Caso queiram saber mais sobre a montagem e funcionamento dos botões de pressão vejam o nosso tutorial onde explicamos mais pormenorizadamente.

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

Quando foi elaborado o circuito da PCB do nosso controlador foi considerada uma montagem do divisor de tensão para o sensor de temperatura, permitindo que o Arduino pudesse realizar a leitura deste sensor. Segundo as especificações do fabricante o sensor de temperatura é de 10KΩ, logo a resistência que escolhemos para o divisor de tensão também 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 realizar essa leitura.

Caso queiram saber mais sobre a montagem e funcionamento do 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 água do filtro do aquário está abaixo do selecionado, 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) e por ultimo outro de 4relés (Iluminação principal). Estes são indicados para montagens com o Arduino tendo uma particularidade de ativos não com a saída de sinal digital do Arduino em nível alto mais sim em nível baixo.

Um circuito PCB foi também criado através de um programa de PCB Design (EasyEDA) onde podemos imprimir e alterar o circuito (Ver arquivos abaixo), sendo também materializada através de método químico (Ver imagem acima).

A caixa para esta PCB foi criada no SolidWorks (Ver Imagens acima) e também produzidas através de Impressão 3D. Esta divisão se em 3 partes, assim como a parte frontal é onde estão as 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 e o RTC, por fim a parte Onde se encontra todos os conjuntos de relés tendo abertura para a passagem e ligação das últimas cablagens cablagens (Ver arquivos abaixo).

Etapa 4: Código:

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

Agora só falta nos 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 explicar resumidamente o nosso código, sendo que é neste que vamos colocar as diferentes funções necessárias para a preparação de um menu com diferentes páginas e consecutivamente visualização de diferentes informações, sendo possível navegar por este através dos botões de pressão consolidada acima.

Assim começamos lugar deve ser elaborado um pequeno esquema de blocos com uma 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 caso seja necessário alterar ou corrigir-lo sabemos sempre onde nos encontramos.

// Correr a função LOOP repetidamente:

void loop () {// Condição para a leitura da distância: if (Menu == 0) {// Correr a função: Pagina_0 (); } // Condição para a leitura da temperatura: else if (Menu == 1) {// Correr a função: Pagina_1 (); } // Condição para a leitura da temperatura: else if (Menu == 2) {// Correr a função: Pagina_2 (); }} // Página 0: void Pagina_0 () {// Código referente como função desta página. } // Página 1: void Pagina_1 () {// Código referente função desta página. } // Página 2: void Pagina_2 () {// Código referente à função desta página. }

Caso queiram saber mais sobre este tipo de esquema de menu vejam o nosso tutorial onde explicamos como elaborar e programar uma menu 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 projeto importarmos as bibliotecas LiquidCrystal.h para o LCD 1602, como TimeLib.h, um Wire.hea DS1307RTC.h para uma placa RTC DS1307, a Termistor.h para o nosso sensor de temperatura, e por fim a EEPROM.h que nos permitir gravar e ler dados gravados na memória do Arduino, tudo isto através do gestor de bibliotecas do software do Arduino.

Começamos então pela biblioteca LiquidCrystal.h, esta facilita a configuração do LCD 1602 sendo apenas necessário 2funções para que este funcione corretamente.

Para escrever no LCD é necessário em primeiro lugar definir o local onde se escolher a colocar os caracteres, ou seja, a coluna ea linha, depois imprimimos o texto que queremos tendo em atenção que este LCD apenas tem 16 colunas 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");

e

void setup () {

// Inicia a comunicação com LCD 16x2: lcd.begin (2, 16); } void loop () {// Define uma coluna (em 16) e a linha (em 2) do LCD onde escrever: lcd.setCursor (0, 0); // Escreve no LCD: lcd.print ("Temperatura:"); }

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

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

// Esta função define: THERMISTOR SENSOR (Pino_Sensor, 10000, 3950, 10000); // Pino de entrada do sensor; // Resistência nominal a 25ºC do sensor; // Coeficiente beta do sensor; // Valor da resistência do sensor.

As 3bibliotecas, a TimeLib.h, a Wire.h e a DS1307RTC.h determinam comandos, funções e referências especificamente para trabalhar com uma placa RTC.

A biblioteca TimeLib.h activa as funcionalidades de tempo, como variáveis para segundos, minutos, hora, dia, mês, etc, facilitando assim os cálculos dos valores de tempo.

A biblioteca Wire.h ativa as funções de comunicação entre equipamentos através do sistema de comunicação 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 último a biblioteca DS1307RTC.h ativa como características que permitem a leitura e escrita de dados de tempo guardados no RTC.

void loop () {

int h, m, s, D, M, A; // Variáveis para alteração da hora e dados. // Definir uma nova hora e dados: setTime (h, m, s, D, M, A); // Grava no RTC os dados 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 iluminação, valores de temperatura máxima e mínimo e fluxo de agua mínimo mesmo que Arduino fique sem energia não sendo necessário configurar novamente estes valores ou configurações.

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

Para usar a memória EEPROM do Arduino através desta biblioteca, poderemos usar os seus principais comandos: Caso queiram ver mais sobre estes e outros comandos desta biblioteca, vejam como sua referência em "https://www.arduino.cc/en/Reference/ EEPROM"

// Apagar os dados na EEPROM.

int i; // Variável para os endereços da EEPROM; void loop () {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; loop void () {Valor = EEPROM.read (i); // "i" = Endereço onde será 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; void loop () {EEPROM.write (i, Valor); // "i" = Endereço onde será lidos os dados. }

Caso queiram saber mais sobre um RTC DS1307 e a memória EEPROM do Arduino vejam o nosso tutorial onde explicamos pormenorizadamente o quanto suas funções e características.

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

Para usarmos o Sensor de Fluxo não é necessário nenhuma biblioteca, no entanto, temos que recorrer a cálculos 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 passa por ele, teremos de utilizar uma função "PulseIn", que conta o tempo em que esse sinal está em nível alto, bastando colocar a a palavra "High" e o 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 folha de dados pois a razão de Pulsos / (L / min) pode ser diferente dependendo de cada sensor (Ver cálculos acima).

// A rotina de LOOP e executada 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 do Pulso), // (Ver na Folha de Dados Sensor de Fluxo 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 os sistemas de iluminação também utiliza cálculos de formas a alterar a configuração do controlador, no caso do sistema de iluminação principal o usuário apenas seleciona 2 parâmetros, a hora de início do ciclo de iluminação e o número de horas que esse ciclo necessário Ligado (Ver imagem acima).

Em relação à iluminação de presença ou Lunar apenas teremos de seleccionar um dado 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é completar 28 dias e a Lua cheia novamente.

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

Procurem os nossos outros projectos e tutoriais acerca do 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 projeto.

Recomendado: