Ir ao conteúdo
  • Cadastre-se

Bruno R Ruinho

Membro Pleno
  • Posts

    119
  • Cadastrado em

  • Última visita

Tudo que Bruno R Ruinho postou

  1. Obrigado Isadora e Paulão pela presença!!..rs Gosto da Isadora pois ela da umas "tiradas" de leve não importando a situação Paulão , já vi varios posts seus ajudando o pessoal por ai!!! Vamos lá a ideia da Estufa/Plantario: *Controle da iluminação para acelerar o crescimento, simular as épocas do ano, primavera, verão, outono e inverno e 24h ligado *Temperatura e Umidade do Ar = Somente para comparação interno/externo. *Umidade do Solo; = Medição (pelo visto posso elevar o tempo) a cada 1 min, caso esteja baixo, aciona uma bomba de aquário / solenoide para irrigação. *Relógio - Para ter uma precisão de acionar e desligar a lâmpada nos horários pre-definidos. Tela "RESUMO" Ao pressionar "SELECT" Select novamente, para entrar na "seleção" Os sub-menus desse menu será o tempo que a iluminação ficará acesa ex: >ILUMINAÇÃO > 24h / 12-12 / 16-8 / OFF.… Bibliotecas Utilizadas: DHTlib NewliquidCrystal_1.3.4 RTClib /* ============================================================================================================= ============================================================================================================= */ //*************************************************************************************// //============================= DECLARAÇÃO DE BIBLIOTECAS ============================= #include <LiquidCrystal_I2C.h> //BIBLIOTECA DE LCD POR I2C #include <Wire.h> //BIBLIOTECA PARA COMUNICAÇÃO COM I2C #include <RTClib.h> //BIBLIOTECA DO RTC DS1307 #include <dht.h> //BIBLIOTECA DO SENSOR DTH //*************************************************************************************// //============================= DECLARAÇÃO DE CONSTANTES ============================== //*************************************************************************************// LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE); RTC_DS1307 RTC; dht sensorDHT; //*************************************************************************************// //============================= MAPEAMENTO DE HARDWARE ================================ //*************************************************************************************// #define bt_dir 2 //BOTÃO DA DIREITA #define bt_esq 3 //BOTÃO DA ESQUERDA #define bt_enter 4 //BOTÃO ENTER #define bt_down 5 //BOTÃO DOWN #define bt_up 6 //BOTÃO UP #define bt_esc 7 //BOTÃO ESC #define Relay 10 //RELE LAMPADA #define pinSensor 12 //SENSOR DTH #define intervalo 2000 //INTERVALO DE LEITURA DO SENSOR DTH //*************************************************************************************// //============================= DECLARAÇÃO DE VARIAVEIS =============================== //*************************************************************************************// byte menu_num = 1, sub_menu = 1; //FLAGS PARA OS MENUS PRINCIPAIS byte submenu1 = 1, submenu2 = 1; //FLAGS PARA OS SUBMENUS byte t_bt_down, t_bt_up; //FLAGS PARA ARMAZENAR OS ESTADOS DOS BOTÕES byte set_full=1; //FLAG PARA MANTER O RELÊ LIGADO int hourupg=0; //ARMAZENA HORA - INICIA COM 0 int minupg=0; //ARMAZENA MINUTOS - INICIA COM 0 int dayupg=1; //ARMAZENA DIA - INICIA COM 1 int monthupg=1; //ARMAZENA MÊS - INICIA COM 1 int yearupg=0; //ARMAZENA ANO - INICIA COM 0 int menu=0; //ARMAZENA O ESTADO DO MENU DENTRO DO SWITCH CASE int set_on=0; //ARMAZENA A HORA DE LIGAR O RELÊ int set_off=0; //ARMAZENA A HORA DE DESLOGAR O RELÊ String fotoperiodo; //ARMAZENA A STRING DO FOTO PERIODO "24h" , "18h" , "12h" , OFF unsigned long delayIntervalo; //ARMAZENA O TEMPO DE COMPARAÇÃO COM MILLIS byte thermometro[8] = { //SIMBOLO TERMOMETRO B00100, B01010, B01010, B01110, B01110, B11111, B11111, B01110}; byte gota[8] = { //SIMBOLO GOTA-UMIDADE B00100, B00100, B01010, B01010, B10001, B10001, B10001, B01110}; byte sol_sym[8] = { //SIMBOLO SOL B00100, B10001, B01110, B11111, B01110, B10001, B00100, B00000 }; //*************************************************************************************// //============================ CONFIGURAÇÕES DE INICIAIS ============================== //*************************************************************************************// void setup() { pinMode(bt_dir, INPUT_PULLUP); //CONFIGURA COMO ENTRADA E SETA RESISTORES DE PULLUP INTERNOS pinMode(bt_esq, INPUT_PULLUP); // pinMode(bt_enter, INPUT_PULLUP); // pinMode(bt_down, INPUT_PULLUP); // pinMode(bt_up, INPUT_PULLUP); // pinMode(bt_esc, INPUT_PULLUP); // pinMode(Relay, OUTPUT); //CONFIGURA COMO SAIDA lcd.begin(20, 4); //INICIA COMUNICAÇÃO COM LCD E SETA LCD20x4 Wire.begin(); //INICIA COMUNICAÇÃO WIRE RTC.begin(); //INICIA COMUNICAÇÃO COM MODULO RTC } //FINAL DO SETUP //*************************************************************************************// //============================ CONFIGURAÇÕES DE LOOP ================================== //*************************************************************************************// void loop() { leitura_temp(); //CHAMA FUNÇÃO DE LEITURA DE TEMPERATURA keyboard(); //CHAMA FUNÇÃO DE LEITURA DE TECLADO switch(menu_num) //SWITCH DO MENU { case 1: resumo(); break; case 2: iluminacao(); break; case 3: temperatura(); break; case 4: umidade(); break; case 5: ajuste_relogio(); break; } //FINAL DO SWITCH } //FUNAL DO LOOP //*************************************************************************************// //=========================== DESENVOLVIMENTO DAS FUNÇÕES ============================= //*************************************************************************************// void keyboard() { if(!digitalRead(bt_up)) t_bt_up = 0x01; //BOTÃO UP PRESSIONADO? SETA A FLAG if(!digitalRead(bt_down)) t_bt_down = 0x01; //BOTÃO DOWN PRESSIONADO? SETA A FLAG if(digitalRead(bt_up) && t_bt_up) //BOTÃO UP SOLTO E FLAG SETADA? { //SE SIM... t_bt_up = 0x00; //LIMPA FLAG lcd.clear(); //LIMPA LCD menu_num++; //INCREMENTA MENU if(menu_num > 0x05) menu_num = 0x01; //SE MENU FOR MAIOR QUE 5, MENU VOLTA A SER 1 } //FINAL BOTÃO UP (bt_up) if(digitalRead(bt_down) && t_bt_down) //BOTÃO DOWN SOLTO E FLAG SETADA? { //SE SIM... t_bt_down = 0x00; //LIMPA FLAG lcd.clear(); //LIMPA LCD menu_num--; //DECREMENTA MENU if(menu_num < 0x01) menu_num = 0x05; //SE MENU FOR MENOR QUE 1, MENU VOLTA A SER 5 } //FINAL BOTÃO DOWN (bt_down) if(!digitalRead(bt_enter)) //BOTÃO ENTER PRESSIONADO? { //SE SIM... delay(150); //AGUARDA 150ms if(sub_menu <= 2) sub_menu ++; //SE sub_menu FOR MENOR OU IGUAL A 2, INCREMENTA sub_menu } //FINAL BOTÃO ENTER (bt_enter) if(!digitalRead(bt_esc)) //BOTÃO ESC PRESSIONADO? { //SE SIM... delay(150); //AGUARDA 150ms if(sub_menu > 0) sub_menu --; //SE sub_menu FOR MAIOR QUE 0, DECREMENTA sub_menu } //FINAL BOTÃO ESC (bt_esc) } //FINAL DA FUNÇÃO KEYBOARD void leitura_temp() { if ( (millis() - delayIntervalo) > intervalo ) { //LEITURA DOS DADOS unsigned long start = micros(); int chk = sensorDHT.read11(pinSensor); // unsigned long stop = micros(); /* VERIFICA SE HOUVE ERRO switch (chk) { case DHTLIB_OK: Serial.print("OK,\t"); break; case DHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); break; case DHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break; case DHTLIB_ERROR_CONNECT: Serial.print("Connect error,\t"); break; case DHTLIB_ERROR_ACK_L: Serial.print("Ack Low error,\t"); break; case DHTLIB_ERROR_ACK_H: Serial.print("Ack High error,\t"); break; default: Serial.print("Unknown error,\t"); break; }*/ delayIntervalo = millis(); }; } //FINAL DA FUNÇÃO LEITURA TEMPERATURA void resumo() { DateTime now = RTC.now(); lcd.setCursor(0,0); lcd.print("====== ESTUFA ======"); lcd.setCursor(0,1); if (now.hour()<=9) { lcd.print("0"); } lcd.print(now.hour(), DEC); // GET HORA DO RTC E MOSTRA NO LCD hourupg=now.hour(); lcd.print(":"); // ESPAÇO ENTRE if (now.minute()<=9) { lcd.print("0"); } lcd.print(now.minute(), DEC);// GET MINUTOS DO RTC E MOSTRA NO LCD minupg=now.minute(); lcd.setCursor(15, 1); if (now.day()<=9) { lcd.print("0"); } lcd.print(now.day(), DEC); dayupg=now.day(); lcd.print("/"); if (now.month()<=9) { lcd.print("0"); } lcd.print(now.month(), DEC); monthupg=now.month(); lcd.createChar(1,thermometro); lcd.setCursor(1,2); lcd.write(byte(1)); lcd.setCursor(2,2); lcd.print(sensorDHT.temperature,0); lcd.setCursor(4,2); lcd.write(byte(223)); lcd.createChar(2,gota); lcd.setCursor(15,2); lcd.write(byte(2)); lcd.setCursor(16,2); lcd.print(sensorDHT.humidity,0); lcd.setCursor(18,2); lcd.write("%"); //Função do Relay if(set_on == set_off){ digitalWrite(Relay, LOW); if(set_on == set_off && set_on == set_full) { digitalWrite(Relay, HIGH); } } if(set_on < set_off){ if(now.hour() >= set_on && now.hour() < set_off ){ //Start digitalWrite(Relay, HIGH); } else if(now.hour() >= set_off) { digitalWrite(Relay, LOW); } else{ digitalWrite(Relay, LOW); } } if (set_on > set_off){ if(now.hour() >= set_on && now.hour() <= 23){ //Start digitalWrite(Relay, HIGH); } else if(now.hour() < set_off){ digitalWrite(Relay, HIGH); } else if(now.hour() >= set_off && now.hour() < set_on){ digitalWrite(Relay, LOW); } } lcd.createChar(3,sol_sym); lcd.setCursor(8,2); lcd.write(byte(3)); lcd.setCursor(9,2); lcd.print(fotoperiodo); lcd.setCursor(0,3); lcd.print(" SOLO: 50 UMIDO "); } void iluminacao() { switch(sub_menu) { case 1: lcd.setCursor(0,0); lcd.print(">ILUMINACAO "); lcd.setCursor(0,1); lcd.print(" TEMPERATURA "); lcd.setCursor(0,2); lcd.print(" UMIDADE "); lcd.setCursor(0,3); lcd.print(" AJUSTE RELOGIO "); break; case 2: //iluminacao_sub(); lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" ILUMINACAO "); lcd.setCursor(0,3); lcd.print(" "); switch(submenu1) { case 1: lcd.setCursor(0,2); lcd.print(" 24 >"); if(!digitalRead(bt_dir)) {delay(150); submenu1 ++;} if(!digitalRead(bt_enter)) { lcd.clear(); lcd.setCursor(0,0); lcd.print("SALVANDO..."); digitalWrite(Relay, HIGH); fotoperiodo = String("24h"); delay(200); set_full=0; submenu2=1; sub_menu=1; menu_num=1; } break; case 2: lcd.setCursor(0,2); lcd.print("< 12/12 >"); if(!digitalRead(bt_dir)) {delay(150); submenu1 ++;} if(!digitalRead(bt_esq)) {delay(150); submenu1 --;} if(!digitalRead(bt_enter)) { set_on = 10; set_off = 11; lcd.clear(); lcd.setCursor(0,0); lcd.print("SALVANDO..."); fotoperiodo = String("12h"); delay(200); submenu2=1; sub_menu=1; menu_num=1; } break; case 3: lcd.setCursor(0,2); lcd.print("< 16/8 >"); if(!digitalRead(bt_dir)) {delay(150); submenu1 ++;} if(!digitalRead(bt_esq)) {delay(150); submenu1 --;} if(!digitalRead(bt_enter)) { set_on = 6; set_off = 0; lcd.clear(); lcd.setCursor(0,0); lcd.print("SALVANDO..."); fotoperiodo = String("18h"); delay(200); submenu2=1; sub_menu=1; menu_num=1; } break; case 4: lcd.setCursor(0,2); lcd.print("< OFF "); if(!digitalRead(bt_esq)) {delay(150); submenu1 --;} if(!digitalRead(bt_enter)) { set_on = 0; set_off = 0; set_full = 1; lcd.clear(); lcd.setCursor(0,0); lcd.print("SALVANDO..."); fotoperiodo = String("OFF"); delay(200); submenu2=1; sub_menu=1; menu_num=1; } break; } //Final Switch foto-periodo break; } } //Final Switch Iluminação void temperatura() { switch(sub_menu) { case 1: lcd.setCursor(0,0); lcd.print(" ILUMINACAO "); lcd.setCursor(0,1); lcd.print(">TEMPERATURA "); lcd.setCursor(0,2); lcd.print(" UMIDADE "); lcd.setCursor(0,3); lcd.print(" AJUSTE RELOGIO "); break; case 2: lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,0); lcd.print(" Temperatura: "); lcd.setCursor(0,2); lcd.print("Ext: 25 "); lcd.setCursor(0,3); lcd.print("Int: 30 "); break; } } //end temperatura void umidade() { switch(sub_menu) { case 1: lcd.setCursor(0,0); lcd.print(" ILUMINACAO "); lcd.setCursor(0,1); lcd.print(" TEMPERATURA "); lcd.setCursor(0,2); lcd.print(">UMIDADE "); lcd.setCursor(0,3); lcd.print(" AJUSTE RELOGIO "); break; case 2: lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,0); lcd.print(" Umidade: "); lcd.setCursor(0,2); lcd.print("Ext: 58 "); lcd.setCursor(0,3); lcd.print("Int: 77 "); break; } } //end umidade void ajuste_relogio() { switch(sub_menu) { case 1: lcd.setCursor(0,0); lcd.print(" ILUMINACAO "); lcd.setCursor(0,1); lcd.print(" TEMPERATURA "); lcd.setCursor(0,2); lcd.print(" UMIDADE "); lcd.setCursor(0,3); lcd.print(">AJUSTE RELOGIO "); break; case 2: ajuste_sub(); break; } } //end ajuste_relogio void ajuste_sub() { switch(submenu2) { case 1: // ============ AJUSTE DA HORA =================================== lcd.clear(); //DateTime now = RTC.now(); if(digitalRead(bt_dir)==LOW) // Se P2 estiver em nivel logico baixo { if(hourupg==23) // Se "hourupg" for igual a 23 { hourupg=0; // "hourupg" passa a ser 0 } else { hourupg=hourupg+1; // Se não, incrementa +1 a "hourupg" } } if(digitalRead(bt_esq)==LOW) // Se P3 estiver em nivel logico baixo { if(hourupg==0) // Se "hourupg" for igual a 0 { hourupg=23; // "hourupg" passa a ser 23 } else { hourupg=hourupg-1; // Se não, decrementa -1 a "hourupg" } } lcd.setCursor(0,2); lcd.print("Ajustar Hora: ");// Escreve "Ajustar Hora" lcd.setCursor(0,3); lcd.print(hourupg,DEC); delay(200); if(!digitalRead(bt_enter)) {delay(150); submenu2 ++;} break; case 2: // ============ AJUSTE DOS MINUTOS ================================= lcd.clear(); if(digitalRead(bt_dir)==LOW) // Se P2 estiver em nivel logico baixo { if (minupg==59) // Se "minupg" for igual a 59 { minupg=0; // "minupg" passa a ser 0 } else { minupg=minupg+1; // Se não, incrementa +1 a "minupg" } } if(digitalRead(bt_esq)==LOW) // Se P3 estiver em nivel logico baixo { if(minupg==0) // Se "minupg" for igual a 0 { minupg=59; // "minupg" passa a ser 59 } else { minupg=minupg-1; // Se não, decrementa -1 a "minupg" } } lcd.setCursor(0,2); lcd.print("Ajustar Minutos:");// Escreve "Ajustar Minutos" lcd.setCursor(0,3); lcd.print(minupg,DEC); delay(200); if(!digitalRead(bt_enter)) {delay(150); submenu2 ++;} break; case 3: // ============ AJUSTE DIA ====================================== lcd.clear(); if(digitalRead(bt_dir)==LOW) // Se P2 estiver em nivel logico baixo { if(dayupg==31) // Se "dayupg" for igual a 31 { dayupg=1; // "dayupg" passa a ser 1 } else { dayupg=dayupg+1; // Se não, incrementa +1 a "dayupg" } } if(digitalRead(bt_esq)==LOW) // Se P3 estiver em nivel logico baixo { if(dayupg==1) // Se "dayupg" for igual a 1 { dayupg=31; // "dayupg" passa a ser 31 } else { dayupg=dayupg-1; // se não, decrementa 11 a "dayupg" } } lcd.setCursor(0,2); lcd.print("Ajustar Dia:");// Escreve "Ajustar dia" lcd.setCursor(0,3); lcd.print(dayupg,DEC); delay(200); if(!digitalRead(bt_enter)) {delay(150); submenu2 ++;} break; case 4: // ============ AJUSTE MÊS =========================================== lcd.clear(); if(digitalRead(bt_dir)==LOW) // Se P2 estiver em nivel logico baixo { if(monthupg==12) // Se "monthupg" for igual a 12 { monthupg=1; // "monthupg" passa a ser 1 } else { monthupg=monthupg+1; // Se não, incrementa +1 a "monthupg" } } if(digitalRead(bt_esq)==LOW) // Se P3 estiver em nivel logico baixo { if(monthupg==1) // Se "monthupg" for igual a 1 { monthupg=12; // "monthupg" passa a ser 12 } else { monthupg=monthupg-1; // Se não, decrementa -1 a "monthupg" } } lcd.setCursor(0,2); lcd.print("Ajustar Mes:"); // Escreve "Ajustar Mes" lcd.setCursor(0,3); lcd.print(monthupg,DEC); delay(200); if(!digitalRead(bt_enter)) {delay(150); submenu2 ++;} break; case 5: // ============ AJUSTAR ANO =================================== lcd.clear(); if(digitalRead(bt_dir)==LOW) // Se P2 estiver em nivel logico baixo { yearupg=yearupg+1; // Incrementa +1 a "yearupg" } if(digitalRead(bt_esq)==LOW) // Se P3 estiver em nivel logico baixo { yearupg=yearupg-1; // Decrementa -1 a "yearupg" } lcd.setCursor(0,0); // Posiciona o cursor na coluna 0 e linha 0 lcd.print("Ajustar Ano:"); // Escreve "Ajustar Ano" lcd.setCursor(0,1); lcd.print(yearupg,DEC); delay(200); if(!digitalRead(bt_enter)) {delay(150); submenu2 ++;} break; case 6: lcd.clear(); lcd.setCursor(0,0); lcd.print("SALVANDO..."); RTC.adjust(DateTime(yearupg,monthupg,dayupg,hourupg,minupg,0)); // Grava os dados no RTC delay(200); submenu2=1; sub_menu=1; menu_num=1; break; } //end switch } ACREDITO que o codigo esta uma lambança mas incrivelmente funciona, o LCD esta ligado por I2C para economizar pinos, ja que estou usando o Arduino UNO No caso dos botões, tem um "defeito" , se apertar as teclas de esquerda e direita, elas incrementam / decrementam sem estar dentro dos MENUS, logo quando voce aperta a tecla Menu ele ja esta dentro de outro.... + - isso. Com o codigo acima esta completo e funcional, vou desenhar o circuito e postar aqui, para quem quiser ulilizar o mesmo projeto e fazer melhorias serão bem vindos! A tela de "RESUMO" foi modificada para esta abaixo, ficou mais visual porém estou fora de casa então nao deu para pegar do Proteus, com isso os valores da hora / data nao estão aparecendo, somente os separadores E o valor da leitura de temp , umidade e foto-periodo tambem nao. Agora estou travado na leitura de temperatura e umidade com o millis e como habilitar a bomba / solenoide para irrigação.
  2. Segue o trecho do codigo: #define intervalo 2000 //INTERVALO DE LEITURA DO SENSOR DTH unsigned long delayIntervalo; //ARMAZENA O TEMPO DE COMPARAÇÃO COM MILLIS void loop() { leitura_temp(); //CHAMA FUNÇÃO DE LEITURA DE TEMPERATURA } void leitura_temp() { if ( (millis() - delayIntervalo) > intervalo ) { //LEITURA DOS DADOS unsigned long start = micros(); int chk = sensorDHT.read11(pinSensor); // unsigned long stop = micros(); /* VERIFICA SE HOUVE ERRO switch (chk) { case DHTLIB_OK: Serial.print("OK,\t"); break; case DHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); Esta parte esta comentada pois estava dando erro na leitura. break; case DHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break; case DHTLIB_ERROR_CONNECT: Serial.print("Connect error,\t"); break; case DHTLIB_ERROR_ACK_L: Serial.print("Ack Low error,\t"); break; case DHTLIB_ERROR_ACK_H: Serial.print("Ack High error,\t"); break; default: Serial.print("Unknown error,\t"); break; }*/ delayIntervalo = millis(); //CARREGA O VALOR DE MILLIS DENTRO DE delayIntervalo }; } //FINAL DA FUNÇÃO LEITURA TEMPERATURA
  3. Boa Tarde a Todos, Desculpem resgatar esse topico tão antigo mas fiz varias pesquisas e não encontrei claramente como "dar a volta" na função millis. Gostaria da ajuda de vocês! Estou em um projeto de estufa de hortaliças estou usando a função millis() para medição de umidade do solo e ao mesmo tempo habilitar uma solenoide para liberara agua. Sendo assim não consigo usar o delay() pois "travaria" a medição de umidade e não ia desabilitar a solenide ou vice e versa. A função millis() estoura em ~48 dias com isso pode ser que meu programa trave na solenoide com a agua aberta e cause um desastre, se alguem necessitar do codigo inteiro ou somente a parte do millis é só falar que eu posto aqui. Obrigado e Agradeço a todos desde já!!!!
  4. Boa Tarde a Todos! Gostaria de uma luz por onde começar, estou precisando criar um sistema parecido com cancelas de condomínio, ex: O carro esta passando pela câmera, e é identificado o numero da placa e a hora que ela esta passando. porém ate hoje só mexi com o Arduíno, e todos as bases que vi são pelo pyton, tesseract que não tive contato ate agora, vou postar uma ideia de interface no youtube: A Imagem da direita é da câmera ao vivo, a imagem da esquerda é a imagem a ser tratada para o reconhecimento da placa, depois listado ao lado. Onde eu posso desenvolver, qual plataforma utilizar, e caso precise de algum curso, qual curso buscar? Obrigado e Aguardo!
  5. Já efetuei o reset pelo botão, segura 20 segundos e tal, mas retorna na mesma. Como se não estivesse feito reset. Existe algum botão interno ou pads para "forçar" o reset?
  6. Bom Dia a todos! Comprei um roteador pela OLX da intelbras IWR300N mas quando tento entrar no Ip dele nao conecta, acessei o Ipconfig e aparece este endereço: Gateway Padrão. . . . . . . . . . . . . . . : fe80::1a0d:2cff:fe1c:1f3b%14 https://prnt.sc/o3x3t8 Alguém poderia me ajudar, ja tentei dar reset pelo botão mas nada mudou. Agradeço!
  7. Fiz as alterações recomendadas,e melhorou bastante mas ainda existe uma indução. Alterei os capacitores de entrada (pois eram usados) para 4.7uf pois quanto encostava neles as distorçoes são maiores. @Sonemus ele vai aumentando progressivamente e chega em um limite, porém se eu colocar a PCI na vertical ele atenua bastante esse sintoma. Removendo P1 e injetando funciona sem qualquer problema. Já estou achando esse circuito antigo demais...
  8. O áudio no vídeo não consegui captar como gostaria, mas o chiado vai aumentando parecido com a carga de um capacitor. Coloquei 2 resistores em C3 e C4 pensando que a entrada estava muito alta, mas nada a ver o sintoma continua o mesmo, vou injetar direito em P1 como @Mestre88 disse depois vou alterar as posições como a @Isadora Ferraz comentou e posto o progresso! O capacitor C14 pode estar interferindo por ter feito essa adaptação para Axial? Obrigado!
  9. Boa Noite a Todos! Sou novo aqui no forum e peço a ajuda de todos, fiz eletronica há algum tempo mas nunca montei nenhum circuito de audio. Dando uma olhada pela internet achei um site com varias revistas de eletronca scaneadas, Saber Eletronica, Eletronica toal, Mecatronica fácil, Mecatronica e varias outras.... Achei a Revista Saber Eletronica N°145 de 1984 (nem havia nascido), logo o circuito de capa "BOOSTER DE GRAVES" "LINK REVISTA PICCO" O Sistema proposto por eles tem as seguintes caracteristicas: Potencia de saida de graves ------------Circuito A - 20W(IHF) Circuito B - 35W(IHF) Alto-falante de graves usado ---------WN12A Novik - 12 pol ou WN15X Novik - 15 pol Frequencias possiveis de reforço -----------------100 a 500Hz Reforço do filtro ativo --------------------------6Db Tensões de alimentação ---------------------------32 a 45V Corrente Maxima da fonte -------------------------500 a 800mA Sensibilidade de entrada (pot. max 100hz) --------0,5v O CIRCUITO QUE MONTEI: A Fonte: • Transformador 0-24v - 3A (pois era o que tinha sem precisar comprar) • Ponte retificadora para 4A • Capaitor de 4700Uf x 63V A tensão final da fonte é de 33V aberto, ate aqui acredito que nada de misterioso ou errado, atendendo a tensão minina pedida. O Circuito Principal: A Primeira escolha que a revista comenta seria C6 e C7 que seria as frenquecia de reforço, pela tabela deles 100nF = 150Hz (coloquei os 2 100nF ceramico) “O sinal obitido desta etapa, que já tem somente a faixa de frequencias correspondentes aos graves, é levado ao amplificador de potencia” Os capacitores C3/C4 de entrada coloquei de 2.2uF pois nao tinha de 1uF A placa fiz igual da revista Na saida coloquei um alto falante de 10” seco. Apos conferir todas as ligações liguei. Sem nenhum cabo conectado na entrada ele já fez um barulho estranho, acredito que seja alguma coisa de pico, após estabilizar fica chiando muito e de tempos em tempos da um zumbido... Estava achando que sem nada na saida o alto falante estaria “silencioso” e somente quando tivesse algo na entrada ele entraria em funcionamento. Os cabos são de 20cm e blindados, tirando os eletroliticos todos os outros são ceramicos, se trocar para poliester vai haver alguma mudança? Não gostei da qualidade dos capacitores ceramicos. Não sei se a fonte esta errada com a ponte retificadora, no circuito original usa somente 2 diodos em meia onda. o que poderá ser? Fiz um video de 30 segundos para mostrar o “defeito” ou posso ter deixado passar alguma coisa, o potenciomentro quando aberto ate a metade distorce muito... https://www.youtube.com/watch?v=PC9Y8Rd9fqs Coloquei uma musica no youtube para teste de Sub pode não agradar a todos mas é somente para teste. Gostaria da ajuda de todos pois pretendo fazer a caixa somente após o circuito estar 100% funcionando A Revista: https://drive.google.com/file/d/1Hx1NV4EVx4UKvnM9V1ViH6GFxu9kHILG/view?usp=sharing Redesenhado SCH.bmp
  10. Cara, gostei do site porém entendo pouco, segue a imagem do site: Seria essa mesmo que voce falou? pois logo abaixo ela recomenda uma PowerBean 5AC, Pois a minha ideia de sistema é esse:
  11. A minha casa é a do telhado bege, ao fundo, acredito que um cano de 3m a antena fique livre ate dos fios, onde será transmitido o sinal. Onde eu estou é o local que vai receber o sinal de internet.
  12. Entendi, vou ter que subir nos 2 telhados e ver se esta livre, pelo que vi da rua o prédio não esta na frente mesmo. Mesmo colocando antenas potentes não pode haver nenhum obstaculo mesmo? Logo mais posto imagens, vou dar uma pesquisa na antena de lata de batata, acredito que nos ferro velho próximo meu, se encontrar, eles vão pedir preço de nova!! Agradeço!
  13. Bom Dia a Todos! Eu tenho duas assinaturas de internet e as casas ficam a 3 quadras de distancia, agora que estou meio sem grana queria cancelar uma delas e transmitir para a outra. Ver se é possível com a ajuda de vocês, vou postar a foto do Maps: porém tem um agravante, existem 2 predios no meio do caminho, o sinal vai sair do ponto de 200mt e receber no ponto de 0mt Imagino que essa antena vai no ponto 0mt (RX): https://produto.mercadolivre.com.br...i-airgrid-m5-agm5-11x14-23-dbi-_JM?source=gps E essa para o ponto de 200mt para fazer o TX: https://produto.mercadolivre.com.br/MLB-963977740-antena-para-internet-58-intelbras-via-radio-_JM Aguardo a ajuda de vocês e Obrigado!
  14. Vou abrir ele é medir direto da PCB e fazer a medição em cima dos transistores no vazio e em carga e posto aqui, não me lembro da bitola dos fios que utilizei. Abraço!
  15. @cesardelta1 fiquei curioso sobre esse circuito com 555 e comparador, tem ele postado em algum lugar? Obrigado
  16. Cara não é melhor montar uma pela metade do preço?! https://www.clubedohardware.com.br/forums/topic/1216641-fonte-de-alimentação-com-corrente-variavel/
  17. Cara aconselho montar uma, vai gastar bem menos com a mesma corrente, se modificar um pouco tera mais corrente! https://www.clubedohardware.com.br/forums/topic/1216641-fonte-de-alimentação-com-corrente-variavel/
  18. Bom dia! Esses 7 quartos serão kitnets, mini hotel? Pois o disjuntor de entrada (estou falando do disjuntor e cabo do poste) não pode ser calculado assim. Você vai levar em conta os 7 quartos com o chuveiro ligado ao mesmo tempo! Uma potência de 5500x7 = 38500w ou 38,5kw. 38500 / 220 = 175A Agora a bitola dos cabos: A concessionária deve ser comunicada pois o fio que vem da rede (do poste dá rua até o poste padrão de entrada) tem que suportar a mesma carga. É de assustar a primeira vista mas de acordo com a norma NBR5410 e + - isso. Não parei para calcular com mais precisão. Espero ter ajudado!
  19. Obrigado pessoal! Estou com uma placa dela que refiz as trilhas para dar uma otimizada no tamanho, mas não consegui, está 50% montada depois posto aqui. A estabilidade dela é uma coisa que fiquei em dúvida e gostaria dá ajuda de todos para melhorarmos esse circuito. Fiz o teste de corrente máxima (5A): 5v deu uma queda de tensão 0,9v = 4,1v 12v queda de 1v = 11v 30v queda de 1v = 29v Não sei o porque isso está ocorrendo, a ponte retificadora usada é para 10A e o capacitor 4700uF x 63v . Acredito que não seja essa parte. Onde posso analisar em cima dos TIPs? Qual ano e edição que saiu essa fonte dá Elektor? Para dar uma olhada. @graia @cesardelta1
  20. Bom Dia !@Bommu Perneta O mais caro que paguei neste circuito foi o Trafo, pois mandei enrolar 0-36 junto com o de 15+15 para não ter 2 transformadores no gabinete, na epoca paguei 90 reais na http://www.transformadoresminuzzi.com.br/. Mas você pode fazer como muitos no forum de pegar o trafo em algum inversor sucateado, dependendo vai sair com mais corrente. Os principais componentes ("mais caros depois do trafo"): TIP142 - 4,73 (x3 = 14,19) BD138 - 0,45 BD137 - 0,53 BF422 - 0,36 LM7805 - 0,75 LM7905 - 1,18 1N4148 - 0,40 - 10 PÇs 1N4007 - 0,60 - 10 PÇs 2K2 - 5W - 0,91 3K3 - 5W - 1,16 PONTE RETIFICADORA - 8A - 3,99 POT - 5K - 0,94 POT - 2K2 - 5,64 Soma: 31 + 90 do trafo = R$120 Peguei os custos no site:http://www.soldafria.com.br/index.php
  21. Bom Dia a Todos! Vou compartilhar com vocês a minha montagem e o circuito que é muito difícil de se achar na internet, (pelo menos um bom) Décadas se passaram e a fonte de alimentação ajustável ainda continua sendo um instrumento inseparável do técnico. Apresentarei aqui uma fonte de alimentação de excelente performance tendo uma tensão ajustável de 0 a 40Volts e com ajuste de corrente de saída ate 5 Amperes! DIAGRAMA EM BLOCOS Na figura 1 podemos ver o diagrama em blocos da Fonte Profissional, onde analisaremos seu funcionamento. A tensão da rede deve ser reduzida por Tr1 para o bloco Fonte de Alimentação (diodos D1 a D8) fazer seu trabalho juntamente com os capacitores C1, C7 e C8; Assim teremos tensões retificadas e filtradas para os blocos seguintes. Para que o regulador permita o controle de tensão e corrente será necessário retirar uma amostra da tensão principal (50V) e regula-la, trabalho feito pelo bloco de Referência de Tensão, resultando no controle de corrente de saída. Para que este controle funcione a contento será necessário retirar uma amostra da corrente da fonte sendo esta feita pelo resistor R3, para então o potenciômetro P1 aproveitar esta referência para controlar a corrente que polariza o regulador (variando a corrente finalde 0 a 5A). O controle de tensão desta fonte será feita pelo bloco Amplificador de Erro onde o potenciômetro P2 controlará a tensão da saída entre 0 e 40V graça à amostra de tensão retirada da própria saída. Para se conseguir a tensão de zero Volt na saída, torna-se necessário criar uma Referência de tensão Negativa (mesmo nome do bloco), onde o ajuste de 0V é feito pelo trimpot RV1. O funcionamento do voltímetro dependerá do bloco Fonte do Voltímetro, pois o mesmo precisa das tensões de ±5V para funcionar. A comutação de voltímetro para amperímetro é feita pelo bloco chaveador de tensão ou corrente através de relé RL1. (A PARTE DO VOLTIMETRO / AMPERIMETRO FOI REMOVIDA POIS HOJE EM DIA É MUITO MAIS FÁCIL COMPRAR UM VOLTIMETRO/AMPERIMETRO DIGITAL EM MODULO (JA CALIBRADO) QUE EXECUTARMOS A MONTAGEM E REGULAGEM PARA A NOSSA FONTE) FUNCIONAMENTO: FONTE AJUSTÁVEL / CONTROLE DE TENSÃO A tensão de 36Vac será retificada pela ponte composta pelos diodos D1 a D4 sendo filtrada logo em seguida pelo capacitor C1 de 4700uF. Para a correta estabilização e regulagem da tensão de saída será necessário uma polarização constante para os transístores darlington T4 (a, b, c), sendo de responsabilidade do diodo zener ZD1, R1 e T1. Teremos então tensão e corrente estáveis no coletor de T1, mesmo que a tensão da rede varie. Para que a tensão de saída varie corretamente de 0V a 40V é preciso que a tensão de base e emissor do transístor T3 esteja abaixo de 0V, ou seja, quando a tensão de saída for de 0V a tensão de base do transístor darlington será de 1,2V sendo o mesmo para o coletor de T3. Com meios normais, não conseguiríamos polarizar a base de T3 com uma tensão de saída de zero Volt, caso seu emissor fosse ligado a referência massa. As sim é necessário uma tensão negativa na base e emissor de T3, mantendo este transístor polarizado mesmo com a tensão de saída em zero Volt. Esta tensão negativa é criada pelo diodo D5 e capacitor C2, sendo estabilizada pelo diodo zener ZD2 de 12V, evitando qual quer variação para a tensão de saída. A tensão no ânodo de ZD2 será de -12V e a tensão de emissor de T3 ficará com -8,7V, pois estabilizamos esta tensão em cima de ZD3 com o auxílio do resistor R9. Para a polarização de base de T3 foi elaborado um divisor resistivo feito por R8, RV1, P2 e R6. Assim quando tivermos 0V na saída esta malha garantirá polarização para a base de T3 mantendo-a estável em -8V. AJUSTE DE 0V NA SAÍDA Deve-se ajustar primeiramente P2 no sentido anti-horário, ou seja, até que a tensão caía o máximo possível e então ajustar RV1 até que a tensão de saída seja de 0V. ESTABILIZAÇÃO DA FONTE O transístor T3 deverá garantir a estabilidade desta fonte pois é ele quem comanda os reguladores darlington T4a, T4b e T4c (chamaremos apenas de T4). Para isto, T3 retira uma amostra da tensão de saída e compara com as tensões de ZD2 e ZD3 (que não variam). Quando a tensão da fonte subir por algum motivo (condução ex cessiva de T4 por aquecimento ou diminuição do consumo da carga,por exemplo), a tensão da base de T3 também se elevará (na realidade a corrente aumentará pois a variação de tensão é da ordem de milivolt's sendo de difícil percepção), obrigando o mesmo a conduzir mais, caindo sua tensão de coletor e diminuindo a corrente que vai para T4. Com isto obriga-se a cair a tensão de emissor de T4, mantendo a estabilização. Se agora a tensão da saída cair teremos uma diminuição da polarização de base do transístor T3 despolarizando-o, obrigando sua tensão de coletor a subir polarizando mais a base de T4. Assim a ten são de saída subirá novamente (a variação da tensão de saída desenvolvendo o controle de estabilização é inferior a 200mV). FONTE AJUSTÁVEL: CONTROLE DE CORRENTE Esta fonte permite o ajuste de corrente de 0 a 5A através do potenciômetro. P1, mas para que funcione, será necessário retirar-mos uma amostra da corrente para podermos controlá la. O ajuste de corrente deve ser feito sob carga (com consumo), onde ajustaremos a tensão (P2) e a corrente (P1) de modo gradual conforme a necessidade da carga. Toda a corrente consumida pela carga deverá retornar para a fonte através do pólo negativo passando por R3 e D6. Assim o transistor T2 terá condições de controlar a corrente pois seu emissor está ligado ao pólo negativo de Cl enquanto sua base esta ligado no lado direito de R3 via P1. Então a tensão do lado direito de R3 será de 0,6V permitindo ou não a polarização do transístor T2 dependendo da posição do cursor de P1. Se usar-mos uma carga que necessite de uma corrente superior à ajustada, a tensão sobre R3 aumentará pola-rizando mais o transístor T2 via P1 limitando a corrente. Caso seja necessário liberar maior corrente deveremos posicionar o cursor de P1 para o seu lado de cima (sentido horário). DIAGRAMA ATUALIZADO Retirei as ligações que vão para o Voltímetro/amperímetro pois não vão ser utilizadas, o trafo para as tensões de 5V é necessário pela referencia de tensão negativa, não podendo ser removido. Montei este circuito de carga eletrônica para verificar a queda de tensão: em 12V - 5A teve uma queda de 1V... não gostei do resultado mas enfim, esta funcionando a mais de um ano!!! Logo mais posto fotos da fonte montada, as pilhas estão carregando no momento! Obrigado a todos!
  22. @Bcpetronzio Obrigado pela resposta, ligação ok, porém esta com defeito! , o som sai chiado! Bom depois de achado era só para tentar mesmo....
  23. Boa Noite a todos! Estava fazendo uma limpeza em casa e achei esse amplificador, mas não sei se esta funcionando e também não faço ideia como liga, só sei + positivo (vermelho) e - negativo (preto). Agradeço desde já. Obrigado!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!