PROJETO DE MONITORAMENTO DE UM GERADOR RESIDENCIAL A GASOLINA

Bom Dia amigos, devido a muitas dúvidas minhas e falta de informação detalhadas, decidi colocar este tópico para além de mim, todos os amigos aqui na comunidade possam realizar este projeto interessante, vou colcar os diagramas aqui do projeto do comando elétrico e as partes dos códigos que eu for conseguindo realizar, conto também com a ajuda de nossos amigos mais experientes, e que possam me dar a luz para me desenvolver e ajudar também nossos colegas, Desde já Obrigado pelo apoio de todos, abraços amigos.

Segue o código de uma parte do projeto, logo abaixo tem os anexos dos diagramas, a lógica de funcionamento e o projeto simulado no proteus, lembrando que os códigos ainda devem ser melhorados e está pela metade, abraços.

int uno = 1; // entrada Modo stand bye
int run = 2; // habilita partida do gerador
int pg = 3; // aciona partida do gerador
int kc = 4; // aciona contator da compania
int kg = 5; // aciona contator do gerador
int kca = 6; // aciona contator da carga
int rs = 7; // entrada botão reset
int ffg = 8; // entrada falta de fase do gerador
int ffc = 9; // entrada falta de fase da compania
int fp = 10; // falha de partida

void setup()
{
pinMode(uno, INPUT);
pinMode(run, OUTPUT);
pinMode(pg, OUTPUT);
pinMode(kc, OUTPUT);
pinMode(kg, OUTPUT);
pinMode(kca, OUTPUT);
pinMode(rs, INPUT);
pinMode(ffg, INPUT);
pinMode(ffc, INPUT);
pinMode(fp, OUTPUT);
}

void loop()
{
int leitura1 = digitalRead(uno);
int leitura9 = digitalRead(ffc);
int leitura8 = digitalRead(ffg);
if (leitura1 == HIGH && leitura9 == HIGH && leitura8 == LOW)
{
{
delay(4000);
digitalWrite(kc, HIGH); // aciona contator da compania
delay(3000);
digitalWrite(kca, HIGH);
digitalWrite(kg, LOW);
}
}
}

Exibições: 4695

Anexos

Responder esta

Respostas a este tópico

Entendo Francisco, vai firme que tudo dá certo, o Arduino é muito intuitivo para isso, o programa que criei( logo acima ), dará uma boa noção para dsenvolver seu projeto, mas lembre-se, nada de delay kkkk, boa sorte, abraços.

Ola amigo muito bom seu projeto executei aqui e ficou massa.Porem tenho uma duvida meio simploria pois estou adaptando este projeto a uma bomba de agua com motor a diesel pra sistemas de incedio..Mas veja a situação..Quado o motor parte o meu rele de partidas fica ainda dando partidas no motor pois nao tenho a ideia de onde viria um sinal para mandar o rele de partida parar..Tens alguma dica..?

opa, Boa tarde Geovane, a cada vez que vc enviar o sinal de partida, pode-se colocar dentro de um bloco de codigo com uma programação de comparação, ou seja, tipo assim, se deu nivel alto(ou baixo, dependendo da sua logica) para de partir, podendo colocar uma fonção "return" que volta ao estado anterior, isso é algumas dicas aqui, mas para  te facilitar, segue o código completo do Projeto, Boa Sorte!!


int uno = 1; // habilita modo automatico
int run = 2; // Aciona partida do gerador
int pg = 3; // aciona partida do gerador
int kc = 4; // aciona contator da compania
int kg = 5; // aciona contator do gerador
int kca = 6; // aciona contator da carga
int rs = 7; // entrada botão reset
int ffg = 8; // entrada falta de fase do gerador
int ffc = 9; // entrada falta de fase da compania
int fp = 10; // falha de partida
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>  // F Malpartida's NewLiquidCrystal library
//Download: https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move original LiquidCrystal library elsewhere, copy this in it's place

/*-----( Declare Constants )-----*/
#define I2C_ADDR    0x27  // Define I2C Address for the PCF8574T

//---(Following are the PCF8574T pin assignments to LCD connections )----
// This are different than earlier/different I2C LCD displays
#define BACKLIGHT_PIN  3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7
//#define  LED_OFF  1 //Those were used to the BackLight LED
//#define  LED_ON  0  //Not needed anymore.

/*-----(Declare variables)-----*/
//Declare variables here if needed.

/*-----( Declare objects )-----*/
LiquidCrystal_I2C  lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin); //Here you pass-through by parameter the constants of the I2C/LCD breakout

//controle

void setup()
{
  lcd.begin (16, 2);
  pinMode(uno, INPUT);
  pinMode(run, OUTPUT);
  pinMode(pg, OUTPUT);
  pinMode(kc, OUTPUT);
  pinMode(kg, OUTPUT);
  pinMode(kca, OUTPUT);
  pinMode(rs, INPUT);
  pinMode(ffg, INPUT);
  pinMode(ffc, INPUT);
  pinMode(fp, OUTPUT);
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight(HIGH);
  lcd.print("   BEM VINDO");
  delay(3000);
  lcd.clear();
  delay(1000);
  lcd.setCursor(1, 1);
  lcd.print("TCC SENAI 2014");
  delay(3000);
}
void loop()
{

  int leitura1 = digitalRead(uno);
  int leitura8 = digitalRead(ffg);
  int leitura9 = digitalRead(ffc);
  int leitura4 = digitalRead(kc);
  int leitura3 = digitalRead(pg);
  int leitura10 = digitalRead(fp);
  int leitura7 = digitalRead(rs);
  if (leitura1 == HIGH)
  {
    if (leitura9 == HIGH)
    {
      lcd.clear();
      delay(1000);
      digitalWrite(fp, LOW);
      digitalWrite(kg, LOW);
      digitalWrite(pg, LOW);
      delay(1000);
      digitalWrite(run, LOW);
      delay(1000);
      digitalWrite(kc, HIGH);
      delay(300);
      digitalWrite(kca, HIGH);
      lcd.print(" CARGA ");
      lcd.setCursor(1, 1);
      lcd.print("CPFL");
    }
    else
    {
      if (leitura9 == LOW && leitura1 == HIGH)
      {
        if (leitura8 == LOW && leitura10 == LOW)
        {
          lcd.clear(); // Limpa o display
          delay(1000);
          lcd.print(" ACIONANDO ");
          lcd.setCursor(1, 1);
          lcd.print("PARTIDA");
          delay(1000);
          digitalWrite(kg, LOW);
          digitalWrite(kc, LOW);
          delay(300);
          digitalWrite(kca, LOW);
          digitalWrite(run, HIGH);
          delay(300);
          if (digitalRead(ffg) == HIGH) {
            return;
          }
          digitalWrite(pg, LOW);
          delay(300);
          digitalWrite(pg, HIGH);
          delay(300);
          if (digitalRead(ffg) == HIGH) {
            return;
          }
          digitalWrite(pg, LOW);
          delay(300);
          digitalWrite(pg, HIGH);
          delay(300);
          if (digitalRead(ffg) == HIGH) {
            return;
          }
          digitalWrite(pg, LOW);
          delay(300);
          digitalWrite(pg, HIGH);
          delay(300);
          if (digitalRead(ffg) == HIGH) {
            return;
          }
          digitalWrite(pg, LOW);
          delay(300);
          digitalWrite(pg, HIGH);
          delay(300);
          if (digitalRead(ffg) == HIGH) {
            return;
          }
          digitalWrite(pg, LOW);
          delay(300);
          digitalWrite(fp, HIGH);
        }
        if (leitura8 == HIGH && leitura9 == LOW)
        {
          digitalWrite(fp, LOW);
          digitalWrite(pg, LOW);
          digitalWrite(kc, LOW);
          delay(300);
          digitalWrite(kg, HIGH);
          delay(300);
          digitalWrite(kca, HIGH);
          lcd.clear();
          geradorligado();
        }
      }
    }
  }
  if (leitura1 == LOW)
  {
    digitalWrite(fp, LOW);
    digitalWrite(kca, LOW);
    digitalWrite(kg, LOW);
    digitalWrite(run, LOW);
    digitalWrite(kc, LOW);
  }
  if (leitura10 == HIGH)
  {
    delay(500);
    digitalWrite(pg, LOW);
    lcd.clear(); // Limpa o display
    delay(500);
    lcd.print("   MODO FALHA");
  }
  if (leitura7 == HIGH)
  {
    digitalWrite(fp, LOW);
  }
}
void  geradorligado()
{
  // Limpa o display
  lcd.print(" GERADOR ");
  lcd.setCursor(1, 1);
  lcd.print("LIGADO");
}






Pessoal resolvi disponabilizar o código completo do projeto, OBS: Código funcional, porém buga seu uso por ter utilizado o recurso delay, necessitando criar funções novas utilizando a função millis ou equivalente a uma leitura continua.Se alguem fizer uma melhoria, adoraria ver como fica :) , Obrigado.

Anexos

ola luiz sr tem fotos de montagem de componen

tes desse seu projeto

tem como envia nesse email  claudiomorais2016@hotmail.com

eu agradeço se enviar e mais as fotos a onde vai cada componentes eletronicos

ola bom dia  sr Danilo José Diniz 

sr tem como envia uma foto do projeto arduino da montagem dos componentes  desse seu 

ROJETO DE MONITORAMENTO DE UM GERADOR RESIDENCIAL A GASOLINA

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço