Ir ao conteúdo
  • Cadastre-se

solanocaiano

Membro Pleno
  • Posts

    28
  • Cadastrado em

  • Última visita

Tudo que solanocaiano postou

  1. Olá a todos do clube, quero iniciar um servidor de Tibia 8.6 e já tenho o jogo e site funcionando. Porém existe um detalhe que me impede, que são as portas bloqueadas no modem da claro. Eu desativei o firewall, adicionei as portas como regras de permissões no mesmo. Abri as portas no modem pelo acesso que eu tenho Porém quando eu realizo o teste de portas está como fechada. Eu liguei na claro e me falaram que o melhor procedimento era para eles desabilitarem o ipv 4 e para eu contratar um técnico para abrir as portas. Pedi para desabilitarem o ipv 4 E estou procurando ajuda para desbloquear sem precisar chama-lo As portas são 7171, 7172, 80, 8080 e 8090 MODELO HG825W5-6T-V2
  2. Amigo, já consegui solucionar o problema.. Muito obrigado pelas dicas, foi de grande ajuda! Grande abraço
  3. Eu não entendi muito bem amigo, você consegue me explicar melhor como funcionariam essas conexões?
  4. @aphawk Entendido, muito obrigado.. Sobre R1 e C1, realmente eu estou tendo bastante problemas com o ruído, era para funcionar nessa configuração sem o amplificador, porém apenas amplificando o sinal que estamos conseguindo enxergar os pulsos. Como demonstrado pela imagem, podemos variar os valores de C1 e R1. Nessa configuração, qual os melhores valores destes componentes para melhorar o filtro de ruído? Atualmente estou utilizando R1 - 100k, C1 - 220nF e R2 - 1k.. Atenciosamente
  5. Olá a todos, desde já muito obrigado! Estou fazendo um mestrado e preciso entender um circuito simples, eu já entendo ele um pouco mas tenho que ser bem preciso enquanto à isso. Alguém sabe me explicar exatamente a função de cada componente? Esse circuito é para uma SIPM - fotomultiplicadora de silício (representada por um diodo), que tem a função de captar sinais luminosos e converter em sina elétrico. O output é para osciloscópio!
  6. Ele está funcionando normal agora galera, ta mais ajeitado também
  7. Ah vou largar mão desse processo de choca, tenho nem ideia de como vou fazer isso e vai me dar mt trabalho... Vou deixar só os displays mesmo e talvez fazer uns modos de temperatura a partir de buttons, por exemplo.. Modo 1 set point com 37.5, modo 2 com set point para do dia 15-17 e modo 3 para temperatua pro final da eclosão.. Um problema que eu to tendo, é que com o arduino conectado ao computador via USB, quando eu carrego o código ele funciona normalmente.. Pelo ambiente de visualização o processing ele funciona normalmente quando eu inicio por ele. Porém já com o código já carregado no arduino, quando eu conecto e desconecto o cabo usb a programação não funciona corretamente, nem o PID acontece nem o Display liga! Alguem sabe porque isso pode ta acontecendo?
  8. Olá amigos, estou desenvolvendo uma chocadeira com PID via DIMMER PWM.. Eu estou conseguindo bons resultados. Mas meu nível de programação não permite eu desenvolver apenas uma parte do MENU.. Que seria criar um processo de choca, com o RTC contar os dias a partir do momento que a pessoa inicia o processo.. Um jeito de cancelar o processo atual para iniciar um novo! Eu fiz um menu com 4 buttons, um UP e DOWN responsável por navegar pelos menus, e dois que estão sem uso ainda, para o processo de choca. Menus: Mostrar data e hora (RTC), Temperatura (ds18b20), Umidade (DHT11) e "processo de choca" (não está pronto ainda), estão funcionando normalmente junto ao PID. Porque depois do décimo quinto dia de incubação, o ovo começa a produzir seu próprio calor, e eu gostaria de ir diminuindo o SET point de temperatura gradualmente ao longo de cada dia depois desse período. Ou seja, tem que ter uma lógica com os dias! // --- Bibliotecas Auxiliares --- #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #include <Time.h> #include <DS3232RTC.h> #include <DHT.h> // --- Definições e Objetos --- #define butUp 12 //Botão para selecionar tela acima no digital 12 #define butDown 11 //Botão para selecionar tela abaixo no digital 11 #define butP 10 //Botão de ajuste mais no digital 10 #define butM 9 //Botão de ajuste menos no digital 9 #define DHTPIN A1 // pino que estamos conectado #define DHTTYPE DHT11 // DHT 11 #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); //objeto para o OLED #define ONE_WIRE_BUS 2 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); // ======================================================================================================== DHT dht(DHTPIN, DHTTYPE); // --- Protótipo das Funções Auxiliares --- void changeMenu(); //Função para modificar o menu atual void dispMenu(); //Função para mostrar o menu atual void data_hora(); //Função do menu1, data e hora void temperatura(); //Função do menu2, temperatura void lights(); //Função do menu3, acionamento de lampadas void menu4(); //Função do menu4 // --- Variáveis Globais --- int temp; float hum; char menu = 0x01; //Variável para selecionar o menu char set1 = 0x00, set2 = 0x00; //Controle das lâmpadas boolean t_butUp, t_butDown, t_butP, t_butM; //Flags para armazenar o estado dos botões // ======================================================================================================== void setup () // --- Função setup --- { Serial.begin(9600); //serial em 9600 baud rate setSyncProvider(RTC.get); // the function to get the time from the RTC for(char i=9; i<13; i++) pinMode(i, INPUT_PULLUP); //Entrada para os botões (digitais 9 a 12) com pull-ups internos t_butUp = 0x00; //limpa flag do botão Up t_butDown = 0x00; //limpa flag do botão Down t_butP = 0x00; //limpa flag do botão P t_butM = 0x00; //limpa flag do botão M display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Inicializa OLED com endereço I2C 0x3C (para 128x64) display.clearDisplay(); display.display(); } // ======================================================================================================== // --- Função Loop --- void loop () { temp = sensors.getTempCByIndex(0); hum = dht.readHumidity(); sensors.requestTemperatures(); changeMenu(); dispMenu(); } // ======================================================================================================== // --- Desenvolvimento das Funções --- void changeMenu() //Modifica o menu atual { if(!digitalRead(butUp)) t_butUp = 0x01; //Botão Up pressionado? Seta flag if(!digitalRead(butDown)) t_butDown = 0x01; //Botão Down pressionado? Seta flag if(digitalRead(butUp) && t_butUp) //Botão Up solto e flag setada? { //Sim... t_butUp = 0x00; //Limpa flag display.clearDisplay(); //limpa o display OLED //Limpa display menu++; //Incrementa menu if(menu > 0x04) menu = 0x01; //Se menu maior que 4, volta a ser 1 } //end butUp if(digitalRead(butDown) && t_butDown) //Botão Down solto e flag setada? { //Sim... t_butDown = 0x00; //Limpa flag display.clearDisplay(); //limpa o display OLED //Limpa display menu--; //Decrementa menu if(menu < 0x01) menu = 0x04; //Se menu menor que 1, volta a ser 4 } //end butDown } //end changeMenu void dispMenu() //Mostra o menu atual { switch(menu) //Controle da variável menu { case 0x01: //Caso 1 disp_data(); //Chama a função de relógio break; //break case 0x02: //Caso 2 disp_temp(); //Chama a função do termômetro break; //break case 0x03: //Caso 3 disp_umid(); ; //Chama função para acionamento de lâmpadas break; //break case 0x04: //Caso 4 choca(); //Chama função para o menu4 break; //break } //end switch menu } //end dispMenu void disp_temp() { display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.print("Temp."); display.setTextSize(2); display.setCursor(3, 12); display.setTextColor(WHITE); display.print(temp); display.print(" C"); display.display(); display.clearDisplay(); } //end disp_temp void disp_umid() { display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(40, 0); display.print("Umid."); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(40, 12); display.print(hum); display.print(" %"); display.display(); display.clearDisplay(); } void disp_data() { display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.print("Hora"); display.setTextSize(1.75); display.setTextColor(WHITE); display.setCursor(3, 15); display.print(hour()); display.print(":"); display.print(minute()); display.print(":"); display.print(second()); display.setTextSize(1.5); display.setTextColor(WHITE); display.setCursor(65, 0); display.print("Data"); display.setTextSize(1.75); display.setTextColor(WHITE); display.setCursor(65, 15); display.print(day()); display.print("-"); display.print(month()); display.print("-"); display.print(year()); display.display(); display.clearDisplay(); } void choca() { } // ========================================================================================================
  9. Olá amigos, estou desenvolvendo uma chocadeira de TCC e preciso de um MENU legal pra ela, sou fraco de programação mas ja fiz algo.. Tem um código PID que vou implementar o menu depois, então provavelmente eu vou ter que mexer com os Delays.. Porque da forma que tá ele não vai funcionar com o PID, fiz um post anteriormente falando sobre isso, mas de toda forma o que eu preciso é: Um iniciador de processo de incubação via buttons.. Pois pretendo diminuir o set point gradativamente depois do decimo quinto dia o valor de temperatura, pois depois, o embrião ja produz seu próprio calor. Eu ja tenho um mostrador da umidade, temperatura e data e hora! Utilizando display OLED I2C, ds18b20 para temperatura e htud21 para umidade // --- Bibliotecas Auxiliares --- #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #include <Time.h> #include <DS3232RTC.h> #include "cactus_io_HTU21D.h" // --- Definições e Objetos --- #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); //objeto para o OLED #define ONE_WIRE_BUS 2 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); HTU21D htu; //objeto para o htu21d // ======================================================================================================== // --- Variáveis Globais --- int temp; int hum; // ======================================================================================================== // --- Função setup --- void setup () { Serial.begin(9600); //serial em 9600 baud rate setSyncProvider(RTC.get); // the function to get the time from the RTC display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Inicializa OLED com endereço I2C 0x3C (para 128x64) display.clearDisplay(); display.display(); } // ======================================================================================================== // --- Função Loop --- void loop () { temp = sensors.getTempCByIndex(0); hum = htu.getHumidity(); sensors.requestTemperatures(); htu.readSensor(); disp_temp(); delay (4000); display.clearDisplay(); //limpa o display OLED disp_umid(); delay (4000); display.clearDisplay(); //limpa o display OLED disp_data(); delay (4000); display.clearDisplay(); //limpa o display OLED } // ======================================================================================================== // --- Desenvolvimento das Funções --- void disp_temp() { display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.print("Temp."); display.setTextSize(2); display.setCursor(3, 12); display.setTextColor(WHITE); display.print(temp); display.print(" C"); display.display(); delay (2000); } //end disp_temp void disp_umid() { display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(40, 0); display.print("Umid."); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(40, 12); display.print(hum); display.print(" %"); display.display(); } void disp_data() { display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.print("Hora"); display.setTextSize(1.75); display.setTextColor(WHITE); display.setCursor(3, 15); display.print(hour()); display.print(":"); display.print(minute()); display.print(":"); display.print(second()); display.setTextSize(1.5); display.setTextColor(WHITE); display.setCursor(70, 0); display.print("Data"); display.setTextSize(1.75); display.setTextColor(WHITE); display.setCursor(70, 15); display.print(day()); display.print("-"); display.print(month()); display.print("-"); display.print(year()); display.display(); } // ======================================================================================================== adicionado 3 minutos depois #include <PID_v1.h> #include <OneWire.h> #include <DallasTemperature.h> // Temp. sensor on PIN 2 on the Arduino #define ONE_WIRE_BUS 2 //Define Variables we'll be connecting to double Setpoint, Input, Output; int inputPin=0, outputPin=3; OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); //Specify the links and initial tuning parameters PID myPID(&Input, &Output, &Setpoint,2,5,0, DIRECT); unsigned long serialTime; //this will help us know when to talk with processing void setup() { //initialize the serial link with processing Serial.begin(9600); //initialize the variables we're linked to // Input = analogRead(inputPin); Setpoint = 144; //turn the PID on myPID.SetMode(AUTOMATIC); } void loop() { //pid-related code sensors.requestTemperatures(); float ftemp= sensors.getTempCByIndex(0); Input = (double)ftemp; delay (500); myPID.Compute(); analogWrite(outputPin,Output); //send-receive with processing if it's time if(millis()>serialTime) { SerialReceive(); SerialSend(); serialTime+=500; } } /******************************************** * Serial Communication functions / helpers ********************************************/ union { // This Data structure lets byte asBytes[24]; // us take the byte array float asFloat[6]; // sent from processing and } // easily convert it to a foo; // float array // getting float values from processing into the arduino // was no small task. the way this program does it is // as follows: // * a float takes up 4 bytes. in processing, convert // the array of floats we want to send, into an array // of bytes. // * send the bytes to the arduino // * use a data structure known as a union to convert // the array of bytes back into an array of floats // the bytes coming from the arduino follow the following // format: // 0: 0=Manual, 1=Auto, else = ? error ? // 1: 0=Direct, 1=Reverse, else = ? error ? // 2-5: float setpoint // 6-9: float input // 10-13: float output // 14-17: float P_Param // 18-21: float I_Param // 22-245: float D_Param void SerialReceive() { // read the bytes sent from Processing int index=0; byte Auto_Man = -1; byte Direct_Reverse = -1; while(Serial.available()&&index<26) { if(index==0) Auto_Man = Serial.read(); else if(index==1) Direct_Reverse = Serial.read(); else foo.asBytes[index-2] = Serial.read(); index++; } // if the information we got was in the correct format, // read it into the system if(index==26 && (Auto_Man==0 || Auto_Man==1)&& (Direct_Reverse==0 || Direct_Reverse==1)) { Setpoint=double(foo.asFloat[0]); //Input=double(foo.asFloat[1]); // * the user has the ability to send the // value of "Input" in most cases (as // in this one) this is not needed. if(Auto_Man==0) // * only change the output if we are in { // manual mode. otherwise we'll get an Output=double(foo.asFloat[2]); // output blip, then the controller will } // overwrite. double p, i, d; // * read in and set the controller tunings p = double(foo.asFloat[3]); // i = double(foo.asFloat[4]); // d = double(foo.asFloat[5]); // myPID.SetTunings(p, i, d); // if(Auto_Man==0) myPID.SetMode(MANUAL);// * set the controller mode else myPID.SetMode(AUTOMATIC); // if(Direct_Reverse==0) myPID.SetControllerDirection(DIRECT);// * set the controller Direction else myPID.SetControllerDirection(REVERSE); // } Serial.flush(); // * clear any random data from the serial buffer } // unlike our tiny microprocessor, the processing ap // has no problem converting strings into floats, so // we can just send strings. much easier than getting // floats from processing to here no? void SerialSend() { Serial.print("PID "); Serial.print(Setpoint); Serial.print(" "); Serial.print(Input); Serial.print(" "); Serial.print(Output); Serial.print(" "); Serial.print(myPID.GetKp()); Serial.print(" "); Serial.print(myPID.GetKi()); Serial.print(" "); Serial.print(myPID.GetKd()); Serial.print(" "); if(myPID.GetMode()==AUTOMATIC) Serial.print("Automatic"); else Serial.print("Manual"); Serial.print(" "); if(myPID.GetDirection()==DIRECT) Serial.println("Direct"); else Serial.println("Reverse"); } Esse é o código do PID que eu fiz para o d218b20.. Obtive boas respostas, mas preciso implementar o MENU LCD nele, com sistema de rolamento de ovo feito por relé ponte H e motor de microondas, sistema de umidificação feito por cooler 12v em relé e sistema de exaustão..
  10. Entendi, obrigado pessoal. Tem coisas que eu tenho que terminar no meu MENU antes de tentar adapta-lo ao PID. Quando eu melhorara ele eu já posto aqui pra vocês derem uma olhada no código do menu e no PID para juntarmos os 2.
  11. Boa noite! Estou desenvolvendo uma chocadeira controlada por PID, ela funciona da seguinte maneira: Desenvolvi um Dimmer PWM que controla a luminosidade da lâmpada incandescente, implementei em um código que utilizava entrada analógia (tipo lm35) porém não consegui boas respostas com esse sensor, modifiquei para digital e implementei o DS18b20 na programação, tive ótimasrespostas. Problemas: Rodar o menu e o controle PID em um microcontrolador. Eu estou rodando separado, em dois arduinos, um para controle e o outro para menu. Eu tentei implementar em um arduino só e não tive boas respostas por causa dos Delays do menu. Tem como o arduino rodar as duas funções juntas? Controle e o menu? Ou devemos adapta-la para ajustar os Delays? Lembrando que as funções do menu são: Mostrar temperatura, mostrar umidade, controlar relay de motor para rolagem dos ovos, controlar relay de coolers para exaustão e manter a umidade com um umidificador caseiro, iniciar processo de incubação, contando os dias.. Após 18 dias devo mudar o set point pra diminuir a temperatura, já que depois desse tempo o ovo consegue produzir seu próprio calor.. O que eu tenho feito do menu é o RTC mostrando data e hora, mostra temperatura e umidade.. Mas preciso implementar essas outras funções ao mesmo.
  12. Gente vou desistir do LM35 e vou partir pro DS18b20 Com ele eu acho que consigo as medidas.. Eu tentei fazer o que o amigo test man falou e não deu certo. double Temperatura; (tentei com double, tentei com int, float) void loop() { Temperatura = (5.0 * analogRead(tempPin) * 100.0) / 1024; Input = Temperatura; myPID.Compute(); analogWrite(outputPin,Output); if(millis()>serialTime) { SerialReceive(); SerialSend(); serialTime+=500; } }
  13. Então amigo, boa ideia em.. É exatamente o que eu vou fazer! Eu comecei assim, LDR e LED.. Depois parti pro dimmer, quebrei a cabeça com dimmer feito com disparador triac e moc4021, foi um fracasso no PID também porque ele controlava o tempo de disparo e não era PWM. Achei outro dimmer, um PWM deu muito certo. Dai do LDR foi pro LM35 e to me ferrando. Achei que era só implementar o LM35 q era analógico e GGWP.. Mas ta ai uma boa ideia para tentar solucionar o problema =>1° passo: Apenas ler o LM35; 2° passo: Converter a leitura para temperatura; 3° passo: Fazer o PWM controlar o brilho do LED; 4° passo: Controlar o aquecimento do resistor com o PWM (esses passos ja estão executados e funcionando perfeito).
  14. Amigo, na verdade sou eu o culpado. Eu não consegui orientador pro meu projeto, consegui de ultima hora e um orientador que ja estava com muito trabalho.. Então não culpo ele, apesar de ele poder se preocupar um pouco mais só. Porém não é esse meu problema, é de obter sinais de temperatura pro PID. Eu consegui outro lm35 para teste e deu a mesma *****. Para testes eu acrescentei um delay de 50ms no loop. Olha o que o sinal virou!
  15. Eu testei o código e não deu certo, não aparece nenhuma entrada. EU tentei fazer algumas modificações: No void setup eu troquei "Input = analogRead(inputPin);" por Input = TemperaturaCelsius * 20.46; não funcionou também. reparei que na linha "PID myPID(&Input, &Output, &Setpoint,0.01,0.2,0, DIRECT);" havia um Input e tentei trocar pela variavel TemperaturaCelsius. deu o seguinte erro: adicionado 1 minuto depois Codigo (1).docx
  16. Entendi. Estou desenvolvendo um projeto de TCC, meu orientador nao esta me ajudando nada nessa parte, apenas vai revisar meu trabalho. Por isso estou com essas dificuldades. Entendi, acho que assim vai funcionar, só tem que adicionar uma linha no loop. O "htu.readSensor();" pois essa função precisa ser executada sempre que ele chamar a função getTemp e no caso remover a linha Input = analogRead(inputPin); do seu código certo? Porque eu não vou mais estar fazendo leitura analógica do sensor e sim via I2C (A4 e A5) no meu arduino.
  17. LM35 Pin 1 - + 9v (bateria duracel) Pin 2 - A0 (arduino) (com e sem filtro) Pin 3 - GND 9v Arduino (estou alimentando via serial) A0 - pin 2 LM35dz D3 - Sai pwm do dimmer GND - GND dimmer Dimmer ligado ao 110v e lâmpada, circuito do dimmer segue em anexo.
  18. Eu testei com bateria de 9v sem filtro e segue em anexo o sinal doido.. testei com filtro da forma da imagem que você postou iza, utilizei um resistor de 10k e capacitor de 1uF e depois 10uF.. Não me deram sinais precisos também. Acho que ou o LM35 ta danificado, ou ele n ta funcionando no PID mesmo. adicionado 30 minutos depois Acho que acabei danificando o LM35 ou a matemática do pid não funciona com ele..Minha situação é a seguinte, ou eu espero o LM35 novo que eu pedi pela net chegar e faço novamente os testes. Ou faço a implementação do HTU21D (de precisão e eu ja tenho aqui) ou o DHT11 que está chegando com o lm35. Eu tentei já implementar o HTU21D mas não consegui, ele utiliza comunicação i2C e eu precisaria fazer um jogo de variaveis talvez, e não tenho ideia de como fazer isso.. Preciso muito ter o sinal preciso de temperatura, o dimmer PWM já está ajustado e funcionando bem.. Só falta isso pra testar a chocadeira e ver como ela se sai.
  19. 100nF eu não encontro aqui, hoje vou testar com bateria 9V e com essa ligação de um resistor de 10k e 1uF
  20. Então amigo, a montagem da esquerda eu tentei seguir o exemplo que achei na internet Caso faça a montagem da forma que você falou, continuo com o resistor de 68ohms ou muda o valor? isso nos 5v do arduino. Eu pensei em comprar uma bateria 5v e ver como fica o sinal. O código PID segue em anexo.. O código do HTU21D é o cactus, desse link: http://cactus.io/hookups/sensors/temperature-humidity/htu21d/hookup-arduino-to-htu21d-temp-humidity-sensor Se conseguirmos juntar os 2 códigos eu dou 3 mortal pra trás. Codigo.docx
  21. Eu tentei implementar o HTU21D na programação e não consegui, não aparece a leitura na interface. Eu não sou bom com programação, se conseguisse implementar o HTU21D que faz comunicação via i2c no lugar do lm35 com saída analógica, que é justo o tipo de saída que vem no PID Front End, eu seria muito mais muito feliz. Sobre o LM35, eu fiz um filtro com capacitor que encontrei aqui na minha cidade de 1uF.. Fiz dois testes de ligação que seguem em anexo, e os resultados das duas. Com a ligação utilizando um resistor de 68Ohms o resultado foi da linha constante e ele não variava a tensão conforme ia aumentando a temperatura.
  22. Galera, estou fazendo meu tcc na parte de controle PID, utilizando arduino e processing.. Estou aplicando em uma chocadeira, aquecendo ela com uma lâmpada e coletando temperatura por um LM35. Fiz um dimmer PWM, a ideia é setar a temperatura e o PID controla-la a partir da luminosidade da lâmpada. Eu fui fazer o teste com um LM35dz e ta gerando um sinal muito estranho, primeiro achei q era ruido, mas estou achando que é o tempo de medida, não sei, ta muito estranho o sinal, até estou achando que pode está danificado. O que acontece é o seguinte, eu liguei o dimmer pwm e o DZ na saída A0. O sinal parece uma onda senoidal, que chega a um pico, que eu acredito que esse pico seja o valor da temperatura, quando eu aproximei a lâmpada pra aquecer o DZ ele deu uma oscilada mas esse pico aumentou, os 3 primeiros pontos máximos foram as medidas sem aproximar a lâmpada. PID simple code.docx adicionado 9 minutos depois Eu precisava de um sinal constante. To pensando agora em mudar para um DHT. Dai eu precisaria mudar a programação, pois o código colhe o sinal de um sensor analógico. Eu tenho um HTU21D, que é de precisão. Porém eu não sei como iria alterar a programação para implementar ele ao PID, ele comunica i2C com o arduino.
  23. Olá pessoal do clube.. Estou montando uma placa de circuito impresso para o meu TCC e vou alimentar ela com 9v para o arduino, quero puxar 5v para lcd e depois 3.3v para alguns sensores. Quais são os melhores capacitores pra deixar bem caprichado? Vou utilizar LM7805 para obter 5V e um KA78R33 para 3.3V. Vou puxar 9v para o LM7805 e 9v para o KA78R33 também. Segue em anexo o exemplo.. Queria usar os valores de capacitores que são mais ideais ..
  24. Consegui fazer o dimmer pwm, ficou mt bom no código de teste.. Ele aumenta e diminui o briho! Porém ao passar pro PID ele fica piscando em 100% do brilho e doido.. O código do PID eu postei anteriormente. Alguém pode me ajudar com o código? Código dimmer teste.docx adicionado 26 minutos depois Na verdade eu consegui estabilizar, era só ajustar os valors de P, I e D.. Muito obrigado pessoal, vai dar certo, se eu jogar o LM35 vai funcionar

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