Table des matières:

Projets DIY - Mon contrôleur d'aquarium : 4 étapes
Projets DIY - Mon contrôleur d'aquarium : 4 étapes

Vidéo: Projets DIY - Mon contrôleur d'aquarium : 4 étapes

Vidéo: Projets DIY - Mon contrôleur d'aquarium : 4 étapes
Vidéo: SALTWATER REEF AQUARIUM DOSING SYSTEM For 2 Part * DIY Custom Setup * 2024, Juillet
Anonim
Projets de bricolage - Mon contrôleur d'aquarium
Projets de bricolage - Mon contrôleur d'aquarium
Projets de bricolage - Mon contrôleur d'aquarium
Projets de bricolage - Mon contrôleur d'aquarium
Projets de bricolage - Mon contrôleur d'aquarium
Projets de bricolage - Mon contrôleur d'aquarium

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 illuminaçã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 posteriormente reflectidas acções de forma a corrigir os parametros de temperatura da cas aguaos ou luminesm 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 (Negative Temperature Coefficient), 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 do Arduino, atraves de uma montagem diviseur de tensão variando a tensão nesse pino entre 0 e 5V (Ver imagem acima).

O sensor de fluxo tem a função de medir a quantidade de água que passa pelas tubagens do filtro do aquário, verificando assim se a o filtro está a funcionar correctamente. Este é constitué par un petit ventoinha, il est aussi fixe qu'il est long sur le rotor, qu'il active magnétiquement un capteur interno désigné par l'effet de commutateur à effet 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 faire Arduino.

Os sensores de nível ou bóias de nível tem como função verificar on 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 do está des.

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

A illuminaçã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 illuminação de plantas, normalmente designados por Full Spectrum, ou seja, produzem illuminação em todo o espectro de luz que as plantas.

Comme vantagens da utilização deste tipo de illuminação são o facto de os LED serem bastante pequenos em relação à sua potência e assim plus económicos, alem disto também illuminam apenas numa direcção não sendo necessários acima reflectores (Ver image).

Por fim, instalamos 2ventoinhas de PC que têm a função de arrefecer a água do aquário principalmente quando a temperature ambiente está elevada o que acontece acontece pendante o Verão, este sistema é muito important pois a temperatura da água é dos, plus important 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 ficheiros abaixo) e os nossos tutoriais onde explicamos detalhadamente o seu funcionamento e características.

Capteur de température:

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

Capteur de flux:

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

Étape 1: Préparer l'Aquário:

Image
Image
Préparation de l'Aquário
Préparation de l'Aquário
Préparation de l'Aquário
Préparation de l'Aquário

Começamos semper os nossos projectos desenhando e testando o circuits 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çãoma final (Ver circuito aciçãoma).

Nécessaire matériel:

  • 2x Ventoinhas PC 12V DC 80mm;
  • 4x LED SMD 10W spectre complet;
  • 4x dissipateurs de calories LED;
  • 6x LED Amarelos de 1W;
  • 4x LED Azuis de 1W;
  • 1x PCB de 4x4 cm;
  • 2x Bóias de nível;
  • 1x capteur de température NTC 10KOhm;
  • 1x capteur de flux.

Installation du capteur de flux:

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 des maiss fácil do sensor fácil a limpeza dos tubos do filtro (ver imagem acima).

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

Comme 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 soutient desenhados através of o programa of desenho técnico SolidWorks (Ver imagens acima) e materializados atraves of Impressão 3D (Ver ficheiros abaixo). Estes suportes são facilmente instaláveis no aquário e são ajustáveis para que seja possível colocar as bóias de nível na altura prétendida (Ver ficheiros STL abaixo).

Installation des 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 utilizadas. Estas Ventoinhas fonctionne à 12V DC, são muito silenciosas e quando accionadas proporcionam a circulação de ar junto to superfície da água, que conséquentemente faz baixar a temperatura da água do aquário.

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

Installation d'éclairage de présence:

A illuminaçã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 pour desenhada 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 ficheiros abaixo).

A produção desta PCB foi realizada através de 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 of 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 illuminação tem apenas uma finalidade estética, sendo formada por 2circuitos de LED que podem ser accionados ou em conjunto, tendo a função of illuminar o aquário quando a illuminação principal está desligada. No entanto, para que fosse um pouco mais divertido, controlamos esta illuminação consoante as fases da Lua, ligando e desligando os 2 circuito à medida que essas fases vão alterando (Ver imagem acima).

Installation d'éclairage principal:

Un éclairage principal composé de 4 LEDSMD de 10WFull Spectrum idéal pour un éclairage de plantes. Estes são controlados individualmente sendo necessário uma fonte de alimentação com a potencia adequada para ise tipo de LED, pois ises são bastante potentes e exigem uma fonte alimentação estável.

Attention:

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 Vadaação alimentação DC colocamos em serie uma resistência de potência ou dissipadora (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 completeamente inacessível (Ver ficheiros abaixo).

Étape 2: Caixa De LED Aquario:

Caixa De LED Aquario
Caixa De LED Aquario
Caixa De LED Aquario
Caixa De LED Aquario
Caixa De LED Aquario
Caixa De LED Aquario

De forma a distribuair 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 onde colocámos todas as resistências dos LED dos sistemas de illuminação principal e de presença (Ver circuito acima).

Nécessaire matériel:

  • 1x Alimentation IP67 12V 50W;
  • 4x contrôleur de vitesse PWM ZS-X4A;
  • 4x Résistances 10 Ohms 10W;
  • 1x Dissipateur de calories;
  • 1x Ventilateur 40mm 12V 0, 1A;
  • 1x interrupteur de 2 positions;
  • 1x PCB de 13x10 Cm;
  • 2x Résistances 100 Ohms 2W;
  • 4x bornier de 2;
  • 1x bornier de 3;
  • 1x bornier de 4.

Alem das resistências de potência dos LED SMD de 10W, ises isão ligados a equipamentos PWM Controller ZS-X4A ises permitem controlar a intensidade da illuminação através of uma resistência variável alterando assim a frequência do pulsao na sua sa sa).

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

Alem das resistência dos LED SMD, também foram colocadas as resistências de 100 Ohms do sistema de illuminaçã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 também desenhada através de um programa de PCB Design (EasyEDA) onde podemos imprimir e alterar o circuito (Ver ficheiros abaixo), sendo também materializada através de método químico (Ver imagens acima).

A caixa desta para esta PCB foi desenhada no SolidWorks (Ver Imagens acima) e também materializadas atraves of 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).

Étape 3: Contrôleur Do Aquário:

Contrôleur Do Aquário
Contrôleur Do Aquário
Contrôleur Do Aquário
Contrôleur Do Aquário
Contrôleur Do Aquário
Contrôleur Do Aquário

Vamos então ao nosso controlador, este equipamento irá controlar e monitorizar os sistemas de illuminaçã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, activando posteriormente as ventoinhas de refrigeração da água do aquário e os sistemas de iluminação, isto através de módulos valores de relés exista program,, este activa avisos luminosos e sonoros (Ver circuito acima).

Nécessaire matériel:

  • 1x Arduino MEGA;
  • 1x ACL 1602;
  • 1x RTC DS1307;
  • 1x Batterie de 3V CR2032;
  • 5x Botões de pressão;
  • 1x Résistance variable de 10K Ohms;
  • 1x Résistance 10K Ohms;
  • 1x Resistência 220 Ohms;
  • 6x Résistance 1K Ohms;
  • 1x PCB de 15x10 Cm;
  • 1x LED Azul 1W;
  • 1x LED Amarelo 1W;
  • 1x LED Vermelho 1W;
  • 3x Résistance 100 Ohms;
  • 1x Modulo de 2 Relés;
  • 1x Modulo de 4 Relés;
  • 1x Modulo de 1 Relé;
  • 2x bornier de 2;
  • 1x bornier de 3;
  • 1x bornier de 4;
  • 5x prise d'en-tête mâle et femelle.

Pour une construction 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 information do menu, as suas páginas, os dados guardados e inseridos no controlador, uma placa for RTC de hora e data ao Arduino MEGA, tendo esta uma 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 saídasPWM (Pulse-Width Modulation) 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.

Installation du 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 especifica (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:

  • Terre;
  • 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 diviser 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 series uma resistência de 220Ω para que o brilho não seja demasiado intenso, n'autorise pas les internos LED à LCD se danifiquem.

Pinos de communication:

  • RS (sélection de registre);
  • R/W (lecture/écriture);
  • E (Activer).

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 LCD memoria interna do.

Pinos de Informação:

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

Neste projecto utilizamos apenas 4 dos 8 possíveis pinos de informação, pois utilizando a biblioteca LiquidCrystal.h no código permite o Arduino enviar os dados para o LCD dividido em 2 parts, or seja, são necessário metade dos pinos para realizar, assim fun o LCD apenas necessita 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/

Installation du RTC DS1307:

Este componente tem como função fornecer a information of data e hora de forma precisa e constante, ou seja, mesmo quando a alimentação externa é desligada por algum motivation isa mantém os dados of data e hora semper actualizados nunca perdendo a informação.

Neste projecto foi utilizada 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 necessários os pinos Gnde, Vcc, SDA.

Pinos de Alimentação:

  • Terre;
  • Vcc;
  • Chauve souris.

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 bateria do tipo botãoCR2032 da RTC que serve de alimentação interna da placa, sendo este pino muito a monitor utilizator da carga da bateria.

Pinos de communication:

  • SCL;
  • ADD;
  • 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 transmission duas únicas linhas ou SERo DATA e recebe a information eo SCL ou SERIAL CLOCK o responsável por saber quando é que os equipamentos tem que receber ou enviar a informação, ficando assim todos sincronizados.

Caso queiram saber mais sobre a 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 plus importants, são utilizados 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 a botçes podem tero funenteõ do menu dependendo da página et tipo de informação visualizada.

Un pesar de serem completamente diferentes dos botões de pressão, as bóias de nível funcionam electricamente de forma idêntica, pois isas quando accionadas ligammagneticamente um interruptor.

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

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

Quand un circuit élaboré par PCB do nosso controlador foi considerada un montagem do diviseur de tensão para o sensor de temperature, permitindo que o Arduino possa realizar a leitura deste sensor. Segundo as especificações do fabricant o sensor de temperatura é de 10KΩ, logo a resistência que escolhemos para o diviseur 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 assim possível ao Arduino realizar essa leitura.

Caso queiram saber mais sobre a montagem e funcionamento do sensor de temperature vejam o nosso tutorial on 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 temperature minima seleccionada, o LED de cor vermelha que indica qu'a temperature está acima o da temperatura madaxima sele cor amarela que indica que o fluxo de agua do filtro do aquário está a 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) e por ultimo outro de 4relés (Iluminação principal). Estes são indicados para montagens com o Arduino tendo a 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 também desenhada através de um programa de PCB Design (EasyEDA) onde podemos imprimir e alterar o circuito (Ver ficheiros abaixo), sendo também materializada através de método químico (Ver imagem acima).

Une caixa para esta PCB foi desenhada no SolidWorks (Ver Imagens acima) et também produzidas atraves de Impressão 3D. Esta diviser en 3 parties, assim a parte frontal é onde estão indicações das ligações dos nossos sensores ao controlador, a parte intermedia que é onde está montada e fixa a nossa PCB com o Arduino MEGA o LCD ea RTC, por fim a parte traseira onde se encontram todos os módulos de relés tendo abertura para a passagem e ligação das respectivas cablagens cablagens (Ver ficheiros abaixo).

Étape 4: Código:

Code
Code
Code
Code
Code
Code
Code
Code

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 explicar resumidamente o nosso código, sendo que é neste que vamos colocar as diferentes funções necessárias para a elaboração de um menu com diferentes páginas e consecutivamente visualização de diferentes dos informaçíveles.

Assim começamos lugar deve ser elaborado um pequeno 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 caso alter- seja necessário encontramos.

//Correr une fonction LOOP répétée:

void loop() { //Conditions pour une lecture à distance: if (Menu == 0) { //Corre une fonction: Pagina_0(); } //Condição para a leitura da temperatura: else if (Menu == 1) { //Corre a função: Pagina_1(); } //Conditions pour une lecture de la température: else if (Menu == 2) { //Correction d'une fonction: Pagina_2(); } } //Página 0: void Pagina_0() { //Código referente ás função desta página. } //Página 1: void Pagina_1() { //Código referente ás função desta página. } //Página 2: void Pagina_2() { //Código referente ás 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 projecto importarmos as bibliotecas LiquidCrystal.h para o LCD 1602, as TimeLib.h, a Wire.hea DS1307RTC.h para a placa RTC DS1307, un Thermistor.h para o nosso sensor de temperature, e por fim a EEPROM.h que nos permite gravar e ler dados gravados na memoria do Arduino, tudo isto atraves do gestor de bibliotecas do software do Arduino.

Começamos então pela biblioteca LiquidCrystal.h, isa facilita a configuração do LCD 1602 sendo apenas necessário 2 funçõ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 texto que queremos tendo em atenção que este LCD apenas tem 16colunas e 2linhas passe, caso esses limites não aparecerão os caracteres.

//Définition des informations de communication et d'information sur l'écran 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(){ //Définir une colonne (em 16) et un linha (em 2) faire LCD onde escrever: lcd.setCursor(0, 0); //Escreve no LCD: lcd.print("Temperatura:"); }

Une biblioteca thermistor.h permite-nos apenas com uma função configurar este tipo de sensor de temperature atraves do código seguinte.

#include "thermistor.h" //Importer une bibliothèque "thermistor"

//Cette fonction définit: THERMISTOR SENSOR (Pino_Sensor, 10000, 3950, 10000); //Pino de entrada do sensor; //Resistência nominal a 25ºC do capteur; //Coeficiente beta do sensor; //Valor da resistência do capteur.

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

Une 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.

Une biblioteca Wire.h activa comme 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 no vários modelos de Arduino, caso queiram saber quais os pinos utilizados vejam o Link "https://www.arduino.cc/en/Reference/Wire".

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

boucle vide(){

entier h, m, s, D, M, A; // Variáveis para alteração da hora e data. //Définir les données uma nova hora e: setTime(h, m, s, D, M, A); //Grava sur RTC selon le tempo: RTC.set(now()); //Lê sur le RTC des données 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 temperatura máxima e mínima de flux não sendo necessá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 nos. No entanto, só podemos guardar nesses endereços dados de 8 bits, ou seja, com um valor até 256 (Ver quadro acima).

Para utilizar a memória EEPROM do Arduino através desta biblioteca, poderemos utilizar os seus principais comandos: Caso queiram ver mais sobre estes e outros comandos desta biblioteca, vejam as sua referencia em "https://www.arduinoference.cc/en/Re EEPROM"

//Apprendre les données avec EEPROM.

int je; //Variável para os endereços da EEPROM; void loop(){ for (int i=0; i<EEPROM.length(); i++){ EEPROM.write(i, 0); //"i" = Endereço onde será escritos 0. } } //------------------------------------------------- ------------------- //Ler os dados gravados da EEPROM. int je; //Variável para os endereços da EEPROM; int Valeur; //Variável para leitura da EEPROM; void loop(){ Valor = EEPROM.read(i); //"i" = Endereço onde serão lidos os dados. } //------------------------------------------------------------- ------ //Gravure à partir de l'EEPROM. int je; //Variável para os endereços da EEPROM; int Valeur; //Variável para leitura da EEPROM; void loop(){ EEPROM.write(i, Valor); //"i" = Endereço onde serão lidos os dados. }

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

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

Para utilizarmos o Sensor de Fluxo não é necessário nenhuma biblioteca, no entanto, temos que recorrer a calculos 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 a função "PulseIn", que conta o tempo em que esse sinal está em nível alto, bastando colocar a palavra "High" eo tempo em que o sinal está em nível baixo com a palavra "Low", pas de 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 prétenduido, 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 dependendo do sensor/(L/min) pode sensor (Ver calculs 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(Pulse Caracteristics), //(Ver na Datasheet Flow Sensor e calculs acima): Calculo_Fluxo = (Calculo_Fluxo * 2.38); //Convertir mL/s en mL/min: Calculo_Fluxo = Calculo_Fluxo * 60; //Convertir mL/min en L/min Calculo_Fluxo = Calculo_Fluxo / 1000; si (Calculo_Fluxo < 0){ Calculo_Fluxo = 0; } else{ Calculo_Fluxo = Calculo_Fluxo; }

}

Para controlar os sistemas de iluminação também utilizamos cálculos de formas a facilitar a configuração do controlador, no caso do sistema de iluminação principal o utilizador apenas terá de seleccionar 2 paraametros, a hora de inicio do ciclo e iluminação de ilumina ligado (Ver imagem acima).

Em relação à iluminação de presença ou Lunar apenas teremos de 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 illuminação de complete presença alterando a 7 emconfigura dias o controlador liga e desliga os LED da iluminação de complete presença alterando a 7 emconfigura dias o controlador liga e desliga os LED ea Lua cheia novamente.

Como este artigo já vai um pouco longo, podem encontrar o ficheiro com o código completeo 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 proximo projecto.

Conseillé: