Cuprins:

Proiecte DIY - Controlerul meu pentru acvariu: 4 pași
Proiecte DIY - Controlerul meu pentru acvariu: 4 pași

Video: Proiecte DIY - Controlerul meu pentru acvariu: 4 pași

Video: Proiecte DIY - Controlerul meu pentru acvariu: 4 pași
Video: Cum scrii când începi un caiet nou 2024, Iulie
Anonim
Proiecte DIY - Controlerul meu pentru acvariu
Proiecte DIY - Controlerul meu pentru acvariu
Proiecte DIY - Controlerul meu pentru acvariu
Proiecte DIY - Controlerul meu pentru acvariu
Proiecte DIY - Controlerul meu pentru acvariu
Proiecte DIY - Controlerul meu pentru acvariu

Este foi o projecto mais complexo realizado até agora no nosso canal, this consiste em realizat um "upgrade" a um aquario care sofreu um restauro já há algum tempo, pentru isso colocamos sensores de temperatura, de nível de água e de fluxo de de água, além disto tornamos a iluminação mais economic ca și um 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, that recebe os sinais vindos dos sensores instalados no aquário, these depois são analisados sendo posteriormente reflectidas acções de forma a corrigir os parâmetros de temperatura da água ou gerando avisos luminosos e sonoros caso these estejam fora do padronizados.

Fiecare senzor este folosit cu caracteristici specifice, cu funcții diferite. O senzor de temperatură este constituit de uma NTC (Negative Temperature Coefficient), sau seja, a sua rezistență diminuează cu o creștere a temperaturii (Ver Gráfico acima). Acest tip de senzor este folosit de pinii de intrare analogică a Arduino, através de uma montagem divisor de tensão variando a tensão nesse pino între 0 și 5V (Ver imagem acima).

O sensor de fluxo tem a função de medir a quantidade de água that passes pelas tubagens do filtro do aquário, verificând asim se a filtro este a funcționa corect. Este constituit de uma mică ventinha, unde este fixat de mici dimensiuni până la lungimea rotorului, care activează magnetic și senzor intern designat de Hall Switch Effect (Ver imagem acima).

Este ao sentir a passagem dos ímanes produz um sinal de pulso de onda quadrada, that varia a sua frequência consoante a rotação do rotor, ou seja, consoante a quantitate de apă care trece pelo sensor, se presupune că trebuie să fie ligat la pinii de intrare digitală face Arduino.

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

No aquário estão montados 2 these sensores that se comportam com interruptores, estes devem ser ligados em serie, pois esta montagem apenas deve activar os avisos caso ambos os sensores estejam activados, diminuând asim a posibilitate 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 spectro de luz que as plants necessitam.

As vantagens da utilaçã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 economic, alem disto toom iluminam apenas numa direcção não sendo necessários reflectors (Ver imagem acima).

Por fim, instalamos 2ventoinhas de PC that têm a função de arrefecer a água do aquário principalmente when a temperature ambiente is elevada o that acontece normalmente durante o Verão, este sistemul este mult mai important la temperatura da agua é dos parâmetros mais importantes num aquário, sunt vânturi funcționează la 12V DC și devem ser sau mai multe silențioase posibile.

Caso queiram saber mais about these sensores vejam as su datasheet (Ver ficheiros abaixo) e os nossos tutoriais where explicitamos detalhadamente or your functioning and features.

Senzor de temperatura:

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

Senzor de flux:

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

Pasul 1: Pregătiți Aquario:

Image
Image
Pregătiți Aquário
Pregătiți Aquário
Pregătiți Aquário
Pregătiți Aquário

Começamos sempre os nossos projectos desenhando e testando o circuitos através de uma pequena Breadboard e os componentes necessários para a sua realizare, doar depozitele acestor teste terminate și confirmate la funcționalitatea sa, partimi pentru o concretizare finală (Ver circuit acima).

Necesar material:

  • 2x Ventoinhas PC 12V DC 80mm;
  • 4x LED SMD 10W Spectru complet;
  • 4x Disipatoare de calor LED;
  • 6x LED-uri 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 senzor de flux.

Instalação do Sensor de Fluxo:

O sensor de fluxo é muito fácil de instalare 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 for 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 that a o systems seja less errático. Estão montadas em pequenos suportes desenhados através de o program de desen technique SolidWorks (Ver imagens acima) e materialised 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 possível colocar as bóias de nível na altura pretendida (Ver ficheiros STL abaixo).

Instalação das Ventoinhas:

Na instalație das ventoinhas do sistema de refrigeração de água, optamos por realiza 2aberturas de cerca de 80mm na tampa do aquário, ou seja, com mesmo diâmetro das ventoinhas de PC utilizadas. Estas Ventoinhas funcționează a 12V DC, são muito silenciosas e când accionadas furnizate a circulației de la împreună la suprafața da acua, care în consecință fază a coborî la temperatura da acuaua.

Estas ventoinhas e tot o sistem electric electric ficam complet ocultos apem serem colocadas as suas coberturas, toom desenhadas no SolidWorks (Ver Imagens acima) și produzidas através de Impressão 3D (Ver ficheiros abaixo).

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

A iluminação de presença ou Luz Lunar este realizat através de uma pequena PCB (Ver imagem acima) unde estão montados os LED de 1Wamarelos e azuis. Această PCB a fost desenată cu un program de PCB Design (EasyEDA), unde este posibil să se imprime sau să se înregistreze acetat, de asemenea, să-l vom scoate pe PCB în timp ce să-l imprimăm sau să-l importăm, fiind posibil să-l modificăm (Ver fișiere abaixo).

A produção desta PCB a fost realizat através de de method chimico that consiste em 3processos, that são o process de revelação, o process de corrosão e o process de limpeza e acabamento. Această metodă a fost utilizată recent de noi pentru alți proiecți, pentru că nu se poate exclude prea mult de-a lungul timpului, iar linkurile altor proiecții sunt descrisați în toate aceste procese.

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

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

Esta iluminação tem apenas uma finalidade estética, sendo formada por 2circuitos de LED care putem fi accionate individual sau în ansamblu, tendoând o funcție de iluminat sau acvariu când 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 circuit to mesure that essas fases vão alterando (Ver imagem acima).

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

O iluminare principală este compusă din 4 LEDSMD de 10WFull Spectrum ideal pentru iluminarea plantelor. Estes são controlados individualmente sendo necessário uma fonte de alimentação com a power adequada for this type of LED, pois these são bastante potentes e exigem uma fonte alimentação estável.

Atenção:

Não ligar os LED direct à fonte de alimentação, pois deve-se baixar a tensão that alimenta these 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 utilizada é de 12V DC colocamos em serie uma resistência de potência ou dissipadora (Ver imagem abaixo).

Da aceeași formă că as ventoinhas ficam ocultas todos os LED e o seu respectivo circuit electric electric através das mesmas coberturas ficando mais estético e seguro, pois o circuito eléctrico fica complet inacessível (Ver ficheiros abaixo).

Pasul 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 systems do iluminação de ventilação do nosso aquário a partir de un único local, construímos um circuito unde colocámos all as resistências dos LED dos systems de iluminação principal e de presença (Ver circuito acima).

Necesar material:

  • 1x sursa de alimentare IP67 12V 50W;
  • 4x controler de viteză PWM ZS-X4A;
  • 4x Rezistențe 10 Ohmi 10W;
  • 1x Dissipador de calor;
  • 1x ventilator 40mm 12V 0, 1A;
  • 1x Interruptor de 2 poziții;
  • 1x PCB de 13x10 Cm;
  • 2x rezistențe 100 ohmi 2W;
  • 4x Terminal Block de 2;
  • 1x Terminal Block de 3;
  • 1x Bloc terminal 4.

Alem das resistências de potência dos LED SMD de 10W, estes estão ligados a equipamentos PWM Controller ZS-X4A these permitem control a intensitate 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 puțin sendo necessário colocar um dissipador de calor e uma pequena ventoinha de PC de 40mm, esta funcționează 12V DC sendo alimentat através do próprio circuito electric, podendo ser controlada por um interruptor que foi instalado na caixa do circuito.

Alem das resistência dos LED SMD, toom foram colocadas as resistências of 100 Ohms do system de iluminação de presença, are têm a same função that as previous, no entanto com uma power de cerca de 2W (Ver cálculos acima).

A PCB deste circuito a fost, de asemenea, desenat atras de un program de PCB Design (EasyEDA) unde putem imprima și modifica circuitul (Ver fișierele abaixo), fiind și materializat atras de metode chimice (Ver imagens acima).

A caixa desta pentru aceasta PCB a fost desenată în SolidWorks (Ver Imagens acima) și prea materializate 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).

Pasul 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 echipament irá control și monitorizar os systems of iluminação principal e de presença, ca și a temperaturii acvariu. Este constituit de um Arduino MEGA, care recebe os sinais dos sensores distribuídos pelo aquário, activando posteriormente as ventoinhas de refrigeração da água do aquário e os systems of iluminação, isto através de módulos de relés, caso există algum valor for dos valores padrão programados, este activă avize luminoase și sonore (Ver circuit acima).

Necesar material:

  • 1x Arduino MEGA;
  • 1x LCD 1602;
  • 1x RTC DS1307;
  • 1x Bateria de 3V CR2032;
  • 5x Botões de pressão;
  • 1x Rezistenta variabila de 10K Ohms;
  • 1x Rezistență 10K Ohm;
  • 1x Rezistență 220 Ohmi;
  • 6x Rezistență 1K Ohm;
  • 1x PCB de 15x10 Cm;
  • 1x LED Azul 1W;
  • 1x LED Amarelo 1W;
  • 1x LED Vermelho 1W;
  • 3x Rezistență 100 Ohmi;
  • 1x Modulo de 2 Relés;
  • 1x Modulo de 4 Relés;
  • 1x Modulo de 1 Relé;
  • 2x Terminal Block de 2;
  • 1x Terminal Block de 3;
  • 1x Terminal Block de 4;
  • 5x soclu pentru antet pentru bărbați și femei.

Pentru o construcție a acestui echipament são utilizados vários components that já falamos em tutoriais anterior no nosso canal, tais as o LCD 1602 where visualizamos a informação do menu, as your pagines, os dados guardados e inserados no controlador, uma placa RTC DS1307 that furnece informationção de hora e data ao Arduino MEGA, tendo esta uma pilha tipo botão CR2032 pentru că nu perca a informație gardă, garantând că a și sem semă alimentație o Arduino nu a părăsit ter a oră și date actualizate.

Arduino MEGA:

O Arduino MEGA é uma placa com um micro-controlador that possui 54 pinos de entrada e saída de sinal digital, 14 dos quais podem ser usados as saídasPWM (Pulse-Width Modulation) e 16entradas de sinal analógico. Todos estes pinos podem ser utilizados para ligar vários types de senzores între os quais os sensores do nosso aquário. Alem dos sensores these pinos alsom can control vários types of components as 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 that cada pino tem uma função specifica (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ție:

  • 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 control esse ajuste ligamos este pino a uma resistência variável de 10KΩ, care funcționează ca um divizor de tensiune alterând asim 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 too 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 nu seja prea intens, nu permiteți ca LED-urile interne să fie afișate în LCD.

Pinos de Comunicação:

  • RS (Selectare înregistrare);
  • R / W (citire / scriere);
  • E (Activare).

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

Pinos de informare:

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

În acest proiect utilizăm apenas 4 dos 8 possíveis pinos de informationção, pois using a biblioteca LiquidCrystal.h no code allows o Arduino send os dados for o LCD dividido in 2 parties, ou seja, são necessário metade dos pinos para realizar a same função, assim 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 unde explicamos your functionare mais pormenorizadamente.https://www.instructables.com/id/Arduino-Tutorial-LCD-Temperature-Sensor/

Instalație RTC DS1307:

Acest component tem ca funcționare furnizor a informației de date și oră de formă necesară și constantă, sau seja, chiar și atunci când alimentația exterioară este desigilată pentru un motiv pentru care se menține os dados de date și oră întotdeauna actualizate niciodată perdând a informație.

În acest proiect a fost folosit uma RTC DS1307, care contem 2 linii de pinii de alimentație și de comunicație (Ver legenda acima), nu entanto, iremos utiliza a linha com less pinos, pois apenas são necessários os pinos Gnd, Vcc, SDA e SCL.

Pinos de Alimentație:

  • Gnd;
  • Vcc;
  • Băţ.

Em relação ao pino Bat apesar de não ser um pino de alimentação coloca-mos-o this group, pois este pino está ligado direct à bateria do type botãoCR2032 da RTC that 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), unde é 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 eo SCL or SERIAL CLOCK o responsável por saber when is that os equipaments têm that receber ou send a informationç, ficando assim all sincronizados.

Caso queiram saber mais sobre a RTC DS1307 vejam o nosso tutorial unde explicamos sau funcționează mai mult pormenorizadamente.

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

Alem dos componentes anteriores, care são os mais importantes, são utilizados toom 4botões de pressão that permitem ao utilisador navegar pelas páginas do menu podendo visualizar and alterar a informação fornecida pelos sensores ou guarda no Arduino, these botões podem ter funções different ao longo do menu depinzând de pagină și tip de informații vizualizate.

A pesar de serem complet diferite dos botões de pressão, as bóias de nível functionam electricamente de forma idêntica, pois are when accionadas ligam magneticly um interruptor.

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

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

Când a fost elaborat circuitul da PCB do nosso controlador a fost considerat a montagem do divisor de tensiune pentru o senzor de temperatură, permițându-l pe care Arduino să-l realizeze pe leitura acestui senzor. Segundo as specificações do fabricante o sensor de temperatura é de 10KΩ, logo a resistência that escolhemos for o divisor de tensão toom 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), this case escolhemos oo pino A0, asim to mesure that a temperature altera a tensão nesse pino analógico toom altera entre 0 e 5V, sendo assim possível ao Arduino realizează essa leitura.

Caso queiram saber mais sobre a montagem e funcionamento do sensor de temperatura vejam o nosso tutorial unde explicamos mais pormenorizadamente.

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

O controlator tem 3avisos luminosos that significam different acontecimentos, o LED de cor azul indica care a temperatura da agua este abaixo da temperatura minima selectata, o LED de cor vermella care indica faptul ca a temperatura este acima da temperatura maxim selectata e por fim o LED de cor amarela care indica că o flux de apă do filtro do aquário está a abaixo do seleccionado, fiind toate acestea ligate 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 a fost, de asemenea, desenat atras de un program de PCB Design (EasyEDA) unde putem imprima și modifica circuitul (Ver fișierele abaixo), fiind și materializat atras de metode chimice (Ver imagem acima).

A caixa pentru aceasta PCB a fost desenată cu SolidWorks (Ver Imagens acima) și de asemenea produse produse de Impressão 3D. Esta divide-se em 3 partes, asim a parte frontal é unde estão indicações das ligações dos nossos sensores ao controlador, a parte intermédia care este unde este montat și fixat la nossa PCB com o Arduino MEGA o LCD ea RTC, por fim a parte traseira unde se întâlnește toți modulele de relații tendo deschise pentru a pasagem și ligăie respective cablagens cablagens (Ver ficheiros abaixo).

Pasul 4: Cod:

Cod
Cod
Cod
Cod
Cod
Cod
Cod
Cod

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

Mas antes, vamos explicar resumidamente o nosso code, sendo that este neste that vamos colocar as different funções necessárias for a elaboração de um menu com different páginas and consecutivamente visualização de diferentes informationções, sendo possível navegar por este através dos botões de pressão referidos acima.

Assim começamos lugar deve ser elaborado um pequeno esquema de blocos com a estrutura de páginas e funções that o nosso equipamento will (Ver esquema acima), sendo asim mais easy elaborar o nosso code e case seja necessário alterar ou corrigir-lo sabemos sempre unde nos encontramos.

// Corectează o funcție LOOP în mod repetat:

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 á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 this type de esquema de menu vejam o nosso tutorial unde explicamos as elaborar e programar uma menu no Arduino.

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

Depozite de sabere califică o structură de cod pasă pentru bibliotecile două componente care interagem cu Arduino, în acest proiect importând ca bibliotecă LiquidCrystal.h pentru LCD 1602, ca TimeLib.h, a Wire.hea DS1307RTC.h pentru a placa RTC DS1307, a Thermistor.h pentru o nosso sensor de temperatura, e por fim a EEPROM.h that nos permite gravar e ler dados gravados na memoria do Arduino, tudo this através do gestor de bibliotecas do software do Arduino.

Começamos então pela biblioteca LiquidCrystal.h, este ușor de configurat de la LCD 1602 fiind apenas necessário 2funções pentru care funcționează corect.

Para escrever no LCD este necesar în primul loc definir o local unde se vine a colocar os caracteres, ou seja, a coluna ea linha, depozite imprimeuri sau text care vrea să avem emisiune care este LCD apenas tem 16colunas e 2linhas, caso o text passe esses limites não aparecerão os caracteres.

// Definir os pinos de comunicação and information do LCD:

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

e

configurare nulă () {

// Inicia a comunicação com LCD 16x2: lcd.begin (2, 16); } void loop () {// Define a coluna (em 16) e a linha (em 2) do LCD onde escrever: lcd.setCursor (0, 0); // Înregistrați fără LCD: lcd.print ("Temperatura:"); }

A biblioteca thermistor.h permite-ne apenas com uma função configurar this type de sensor de temperatura através do code following.

#include „thermistor.h” // Importează o bibliotecă „thermistor”

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

Ca 3bibliotecas, a TimeLib.h, a Wire.h e a DS1307RTC.h conține comenzi, funcții și referințe criadă în mod specific pentru a lucra cu placa RTC.

A biblioteca TimeLib.h activă ca funcționalități de tempo, ca variabile pentru secunde, minute, oră, dia, mes, etc, facilitând asimilarea calculelor două valori de tempo.

A biblioteca Wire.h activă ca funcții de comunicație între echipamente através de sistem de comunicație I2C. Os pinos de comunicação deste sistema são diferentes nos vários models 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 activ as functionalities that permitem a leitura e escrita de dados de tempo guardados na RTC.

bucla nulă () {

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

Por fim a biblioteca EEPROM.h care permite gravar e lerdados gravados na memória não volátil do Arduino, sendo possível memorizar valores as por example, hora de ligar iluminação, valores de temperatura maximă și minimă și flux de apă minimă aceeași Arduino fique sem energia não sendo necessário configurați recent aceste valori sau configurații.

Acest tip de memorie este diferit de noi tipuri de plăci de Arduino, având diferite capacități, fără caz de Arduino MEGA (ATmega2560 - 4096 Bytes) pe 4KB, se presupune că va avea 4096endereços sau posições, unde putem păstra noi. No entanto, só podemos guardar nesses endereços dados de 8 bits, ou seja, com um valor até 256 (Ver quadro acima).

Para utiliza a memória EEPROM do Arduino através desta biblioteca, poderemos use os its principal commandos: Caso queiram ver mais over these e outros comandos desta biblioteca, vejam as sua reference 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 () {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 i; // Variável para os endereços da EEPROM; int Valor; // Variável para leitura da EEPROM; bucla void () {Valor = EEPROM.read (i); // "i" = Endereço unde 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; bucla void () {EEPROM.write (i, Valor); // "i" = Endereço unde serão lidos os dados. }

Caso queiram saber mais about a RTC DS1307 and a memory EEPROM do Arduino vejam o nosso tutorial where explicamos pormenorizadamente o as suas funções and features.

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

Pentru utilizarea armelor o senzor de flux nu este necesar nenumă bibliotecă, nu entanto, avem că recorrer a calculelor de forme a determina o valoare medido pelo sensor. Como este sensor produz um sinal de unde quadrada, care varia a sua frequência consoante a quantitate de apă care trece prin ele, teremos de use a função "PulseIn", that conta o tempo em that 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", no final a soma acestor 2 tempo será o tempo total de cada ciclo, no entanto, este valor de tempo é dado em micro-Segundo, ou seja, 1000000µSeg.

Depois basta um code idêntico ao descrito abaixo for that possamos find o valor pretendido, teremos apenas de ter em atenção quais as features do nosso sensor através da sua datasheet pois a razão de Pulsos / (L / min) can be different dependendo de cada sensor (Ver cálculos acima).

// A rotina de LOOP e executată în mod repetat: 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 second (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 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; }

}

Pentru a controla sistemele de iluminare, de asemenea, utilizăm calcule de forme pentru a facilita o configurare a controlorului, nu este cazul de sistem de iluminație principal sau utilizator apene, vor avea de selectat 2 parametri, a oră de început a ciclului de iluminare și numărul de ore ligado (Ver imagem acima).

Em relação à iluminação de presença ou Lunar apenas teremos de select a data da próxima Lua cheia como o ciclo da lua tem aproximativ 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 ea Lua cheia novamente.

Como este article já vai um little long, putem găsi o fișier cu un cod complet și care suntem folosind în prezent (Ver fișier abaixo).

Procurem os nossos outros projectos e tutoriais about do Arduino, where explicamos diverse montagens e o functionation dos seus components, já agora visitem o nosso canal no Youtube, Instagram, Facebook ou Twitter.

Abraço e até ao next projecto.

Recomandat: