Ir ao conteúdo
  • Cadastre-se

Intrudera6

Membro Pleno
  • Posts

    455
  • Cadastrado em

  • Última visita

Tudo que Intrudera6 postou

  1. É pouco, se você puder de alguma forma testar a fonte com uma carga eletrônica, ou até com várias resistências de potência em paralelo para forçar a fonte ao limite de corrente (ou mais um pouco), e se possível, observar a tensão num osciloscópio com uma carga severa. Se você tiver uma fonte de bancada, teste também com as tensões perto dos limites. Nunca fiz um teste destes, mas talvez deixando uma semana inteira com a corrente no máximo já seria uma avaliação razoável. Mas o melhor é ver a opinião dos verdadeiros especialistas de como se pode fazer um burn-in efetivo!
  2. A China também fabrica algumas coisas de qualidade e este produto não é o conversor mais barato (não existe almoço grátis). Este em específico eu nunca coloquei a mão (e não dá para garantir), mas tenho um similar que está rodando há vários anos como um conversor de tensão num "nobreak" CC abaixando de 12V para 5V alimentando algumas coisas em 5V. Mas num caso destes é bom realmente espremer ele bastante, e até colocando ele para trabalhar perto dos limites de tensão e corrente e ver como ele se comporta (medir a tensão, temperatura, corrente máxima numa carga eletrônica, riple e etc.), se ele aguentar sem queimar e for capaz de fornecer a corrente informada (ou mais) com estabilidade, normalmente é um bom sinal! Eu também sou meio paranoico com estas fontes, e numa aplicação mais séria é sempre bom ser mesmo!
  3. Tem este conversor DC-DC 24/12V para 5V 3A, ele parece ser bastante robusto. https://www.ebay.com/itm/DC-DC-Converter-Step-Down-Module-12V-24V-to-5V-3A-15W/123259682311?hash=item1cb2d97e07:g:-9oAAOSwtgZb77MJ:rk:59:pf:0
  4. O preço em Salvador (R$ 0,76 por kWh na conta com vencimento em 25 de janeiro de 2019) já é com impostos (ainda tem mais a taxa de iluminação pública de R$ 25,19 e R$ 3,50 de bandeira amarela). E este em São Paulo, quanto fica no total? Parece que a energia ai custa muito mais barato, até nisso a gente é sacaneado pelo governo (e pela empresa de energia Espanhola) e para ter uma energia elétrica bastante precária! A minha conta abaixo para vocês verem o assalto:
  5. Aqui vai o programa em Bascom, no qual eu uso 2 teclas num RTC DS3231 (mesma biblioteca do DS1307 mas uso algumas funções próprias a mais para ter mais controle), mas tem um tempo enorme que não programo em Bascom e não lembro mais direito como funciona! Mas neste caso o Paulo tem toda condição de te ajudar, ele é o rei do Bascom! $regfile = "m328pdef.dat" ' specify the used micro $crystal = 16000000 ' Frequência do Cristal em Hz $loadersize = &H800 ' Bootloader de 2048 bytes $baud = 19200 ' use baud rate $hwstack = 64 ' default use 32 for the hardware stack $swstack = 40 ' default use 10 for the SW stack $framesize = 160 ' default use 40 for the frame space $initmicro Const Valor_prescale = 256 Const Interrupcoes_por_segundo = 100 Const Tempo_aguardando = Interrupcoes_por_segundo * 2 ' Tempo em segundos Const Preload = 65535 - _xtal \(valor_prescale * Interrupcoes_por_segundo) + 1 Const T_acerta_segundos = 60 * 10 ' intervalo de tempo em segundos para acertar o relógio pelo RTC Const T_acerta = Interrupcoes_por_segundo * T_acerta_segundos 'address of Ds3231 Const Ds3231w = &HD0 ' Endereço de escrita do RTC Ds3231 Const Ds3231r = &HD1 ' Endereço de leitura do RTC Ds3231 'configure the scl and sda pins Config Sda = Portc.4 Config Scl = Portc.5 Config I2cdelay = 2 ' para 500 kHz (aproximadamente) Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portc.1 , Rs = Portc.2 Config Lcd = 16 * 2 ' Configurando o LCD Config Pinb.0 = Input ' Configura porta B0 para entrada Config Pinb.1 = Input ' Configura porta B1 para entrada Set Pinb.0 ' Liga resistência interna do AVR (valor é forçado a 1 se não está apertado) Set Pinb.1 ' Liga resistência interna do AVR (valor é forçado a 1 se não está apertado) S2 Alias Pinb.0 ' Define que porta B0 é S2 S1 Alias Pinb.1 ' Define que porta B1 é S1 Buzzer: Config Portd.3 = Output ' Define porta D3 para saída (Buzzer) Buzzer Alias Portd.3 ' Define que porta D3 é Buzzer Config Clock = User ' we use I2C for the clock Config Date = Dmy , Separator = / Timer1_label: Config Timer1 = Timer , Prescale = Valor_prescale ' Valores possíveis para Prescale => 1|8|64|256|1024 On Timer1 Tim1_isr ' Executa rotina Tim1_usr nas interrupções do Timer1 Timer1 = Preload Enable Timer1 Timer0_label: ' usando para sincronismo do buzzer Const Const_timer0 = 193 Config Timer0 = Timer , Prescale = 64 On Timer0 Tim0_isr Timer0 = Const_timer0 Enable Interrupts ' As interrupções são habilitadas ' Fornece o número máximo de dias do mês na variável Global NDias Declare Sub Diasmes(ano_ent As Word , Mes_ent As Byte ) ' Formata a saída com dois dígitos e separador retornando na variável Entrada_Texto Declare Sub Formata(entrada As Byte , Entrada_texto As String * 8 , Complemento As String * 1) Dim Cont As Dword , Cont_ant As Dword Dim Contador As Dword , Contador2 As Dword , Contador_ant As Dword Dim Var1dword As Dword , Var2dword As Dword Dim Var1word As Word , Var2word As Word Dim Var1byte As Byte , Var2byte As Byte Dim Posicao As Byte , Buzzer_aux As Word Dim Acerta As Bit , S1_apertado As Bit , S2_apertado As Bit , Bissexto As Bit Dim Status_teclas As Bit , S1_aux As Bit , S2_aux As Bit , Mostra As Bit Dim Centesimo As Byte , Segundo As Byte , Minuto As Byte , Hora As Byte Dim Dia As Byte , Mes As Byte , Ano As Word , Ano2 As Word , Anoaux As Byte Dim Ndias As Byte Dim Laco As Bit , Buzzer_up As Bit Dim Linha1 As String * 8 , Linha2 As String * 8 , Aux As String * 1 'dim the used variables Dim Lvar1 As Long , Mday As Byte , Bweekday As Byte , Strweekday As String * 10 Dim Strdate As String * 8 , Strtime As String * 8 Dim Bsec As Byte , Bmin As Byte , Bhour As Byte Dim Bday As Byte , Bmonth As Byte , Byear As Byte Dim Lsecofday As Long , Wsysday As Word , Lsyssec As Long , Wdayofyear As Word Dim Temperatura As Single , Temp_msb As Byte , Temp_lsb As Byte Dim Sec_alarme1 As Byte , Min_alarme1 As Byte , Hour_alarme1 As Byte Dim Weekday_alarme1 As Byte , Day_alarme1 As Byte Dim Min_alarme2 As Byte , Hour_alarme2 As Byte Dim Weekday_alarme2 As Byte , Day_alarme2 As Byte Dim Ds3231_control As Byte , Ds3231_control_status As Byte , Ds3231_aging_offset As Byte Contador = 0 Cont = 0 Centesimo = 00 Segundo = 00 Minuto = 30 Hora = 12 Dia = 01 Mes = 01 Ano = 2012 Gosub Pega_hora_rtc Call Diasmes(ano , Mes) Cont_ant = 1 ' força que mostre no LCD Cls Set S1_apertado ' = 1 se o botão esquerdo não foi apertado Set S2_apertado ' = 1 se o botão direito não foi apertado Posicao = 0 Reset Acerta ' = 0 se não está em modo de edição Reset Mostra ' = 1 mostra Temperatura (se o RTC está conectado). Reset Buzzer Reset Buzzer_up Buzzer_aux = 0 Do S1_aux = S1 S2_aux = S2 If S2_aux = 0 Then 'If Buzzer_aux <= 200 Then ' 1/10 de segundo 'If Buzzer_up = 0 Then 'Set Buzzer 'Waitus 125 'Else 'Reset Buzzer 'Waitus 125 'Incr Buzzer_aux 'End If 'Buzzer_up = Not Buzzer_up 'End If If S2_apertado = 1 Then Buzzer_aux = 0 Timer0 = Const_timer0 Enable Timer0 End If 'Set Buzzer 'Waitus 125 'Reset Buzzer 'Waitus 125 Else Disable Timer0 Reset Buzzer Reset Buzzer_up 'Buzzer_aux = 0 End If If S1_aux = 1 And S1_apertado = 1 Then Status_teclas = 0 If Acerta = 0 And S2_aux = 0 Then ' se S2 (botão direito) está apertado mostra Temperatura ou não mostra (permuta) Reset Status_teclas If S2_apertado = 1 Then Reset S2_apertado Mostra = Not Mostra End If Else If Acerta = 0 And S2_apertado = 0 And S2_aux = 1 Then Set S2_apertado End If If Acerta = 0 And S1_aux = 0 Then ' Botão da esquerda (S1=0) apertado entra em modo de edição (Acerta => 1) Reset S1_apertado If Status_teclas < 1 Then Set Status_teclas Contador_ant = Contador ' Começa a contar o tempo até 2 segundos Else Var1dword = Contador - Contador_ant If Var1dword >= Tempo_aguardando Then ' Até ser maior ou igual a 2 segundos Posicao = 1 End If End If Else If Acerta = 0 And Posicao = 1 And S1_aux = 1 Then Set Acerta Set S1_apertado Reset Status_teclas Else If S1_aux = 0 And S2_aux = 1 Then ' Botão da esquerda (S1=0) apertado e Botão da direita (S2=1) não apertado If S1_apertado = 1 Then Reset S1_apertado If Posicao < 6 Then Incr Posicao Else Posicao = 0 Reset Acerta Reset Status_teclas End If End If Elseif S1_aux = 1 And S1_apertado = 0 Then Set S1_apertado End If End If End If End If If Posicao > 0 And Posicao <= 6 Then ' colocar o cursor piscando na posição de edição If Posicao < 4 Then Var1byte = Posicao - 1 Var1byte = Var1byte * 3 Var1byte = Var1byte + 1 Locate 1 , Var1byte ' Linha 1 do LCD Else Var1byte = 6 - Posicao Var1byte = Var1byte * 3 Var1byte = Var1byte + 1 Locate 2 , Var1byte ' Linha 2 do LCD End If Cursor On Blink Else Posicao = 0 Reset Acerta Cursor Off Blink End If Acerta_hora: If S1_aux = 1 Then ' Botão da esquerda (S1=1) não apertado If Posicao > 0 And Acerta = 1 Then If S2_aux = 0 And S2_apertado = 1 Then ' Botão da direita (S2=0) apertado Reset S2_apertado Select Case Posicao Case 1 : If Hora < 23 Then Incr Hora Else Hora = 0 End If Gosub Settime_aux Gosub Mostrahora Case 2 : If Minuto < 59 Then Incr Minuto Else Minuto = 0 End If Gosub Settime_aux Gosub Mostrahora Case 3 : If Segundo >= 30 Then If Minuto < 59 Then Incr Minuto Else Minuto = 0 End If End If Timer1 = Preload Centesimo = 0 Segundo = 0 Gosub Settime_aux Gosub Mostrahora Case 4 To 5 : If Posicao = 4 Then Var1word = Ano Mod 100 If Var1word < 99 Then Incr Ano Else Ano = Ano - Var1word End If Else If Mes < 12 Then Incr Mes Else Mes = 1 End If End If Call Diasmes(ano , Mes) If Dia > Ndias Then Dia = Ndias Gosub Setdate_aux Gosub Mostradata Case 6 : If Dia < Ndias Then Incr Dia Else Dia = 1 End If Gosub Setdate_aux Gosub Mostradata End Select Cont_ant = 0 Elseif S2_aux = 1 And S2_apertado = 0 Then ' Botão da direita (S2=1) não apertado Set S2_apertado End If Elseif S1_apertado = 0 Then Set S1_apertado End If End If Mostra_no_lcd: Dim Segundos_dia As Dword Dim Segundos_dia_ant As Dword Gosub Getdatetime Segundos_dia = Secofday() If Cont_ant <> Cont And Err > 0 Or Err = 0 And Segundos_dia <> Segundos_dia_ant Then If Err = 0 Then Segundos_dia_ant = Segundos_dia End If Cont_ant = Cont If Contador > Contador2 Then Contador2 = Contador + T_acerta ' tempo em segundos para acertar o relogio automaticamente pelo RTC Gosub Pega_hora_rtc ' acerta o relógio interno pelo RTC End If Gosub Mostrahora Gosub Mostradata End If Loop End 'end program _init_micro: Set Ddrc.3 Reset Portc.3 'LCD: R/W low Return ' Fornece o número máximo de dias do mês na variável NDias Sub Diasmes(ano_ent As Word , Mes_ent As Byte ) Local Div4 As Word Div4 = Ano_ent And 3 ' equivalente a Mod 4, e se é maior que 0 não é divisível If Div4 > 0 Then Reset Bissexto Else Set Bissexto Var2word = Ano_ent Mod 400 ' se é maior que 0 não é divisível Var1word = Ano_ent Mod 100 ' se é maior que 0 não é divisível If Var1word = 0 And Var2word > 0 Then Reset Bissexto End If End If If Mes_ent = 2 Then Ndias = 28 + Bissexto Else Var1byte = Mes_ent And &B00001001 If Var1byte = &B00001000 Or Var1byte = &B00000001 Then Ndias = 31 Else Ndias = 30 End If End If End Sub ' ============================================================================== ' Formata a saída com dois dígitos e separador retornando na variável Entrada_Texto Sub Formata(entrada As Byte , Entrada_texto As String * 8 , Complemento As String * 1) If Entrada < 10 Then Entrada_texto = Entrada_texto + "0" End If Entrada_texto = Entrada_texto + Str(entrada) Entrada_texto = Entrada_texto + Complemento End Sub ' ============================================================================== 'only when we use I2C for the clock we need to set the clock date time 'called from datetime.lib Dim Weekday As Byte Getdatetime: I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte 0 ' Endereço no Ds3231 I2cstart ' Generate start code I2cwbyte Ds3231r ' Enviando endereço de leitura no Ds3231 I2crbyte _sec , Ack I2crbyte _min , Ack ' MINUTES I2crbyte _hour , Ack ' Hours I2crbyte Weekday , Ack ' Day of Week I2crbyte _day , Ack ' Day of Month I2crbyte _month , Ack ' Month of Year I2crbyte _year , Nack ' Year I2cstop If Err = 0 Then ' Err = 0 => não houve erro na leitura no relógio RTC via i2c _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) Else ' ou usando o relógio via Timer1 _sec = Segundo : _min = Minuto : _hour = Hora _day = Dia : _month = Mes : Var2word = Ano Mod 100 : _year = Var2word End If Return Weekdays: Data "Segunda" , "Terça" , "Quarta" , "Quinta" , "Sexta" , "Sábado" , "Domingo" Setdate: _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte 4 ' Endereço no Ds3231 I2cwbyte _day ' Send Data to dia I2cwbyte _month ' Month I2cwbyte _year ' Yesr I2cstop Return Setdate_aux: Var1word = Ano Mod 100 _year = Var1word _month = Mes _day = Dia Gosub Setdate Return Settime: _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte 0 ' Endereço no Ds3231 I2cwbyte _sec ' Send Data to SECONDS I2cwbyte _min ' MINUTES I2cwbyte _hour ' Hours I2cstop Return Settime_aux: _hour = Hora _min = Minuto _sec = Segundo Gosub Settime Return Getalarme1: I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte &H07 ' Endereço Alarme1 no Ds3231 I2cstart ' Generate start code I2cwbyte Ds3231r ' Enviando endereço de leitura no Ds3231 I2crbyte Sec_alarme1 , Ack ' Segundos Alarme1 I2crbyte Min_alarme1 , Ack ' Minutos Alarme1 I2crbyte Hour_alarme1 , Ack ' Horas Alarme1 I2crbyte Weekday_alarme1 , Ack ' Dia da Semana Alarme1 I2crbyte Day_alarme1 , Nack I2cstop If Err = 0 Then ' Err = 0 => não houve erro na leitura no relógio RTC via i2c Sec_alarme1 = Makedec(sec_alarme1) : Min_alarme1 = Makedec(min_alarme1) ' Dia do Mês Alarme1 Hour_alarme1 = Makedec(hour_alarme1) : Day_alarme1 = Makedec(day_alarme1) End If Return Setalarme1: Sec_alarme1 = Makebcd(sec_alarme1) : Min_alarme1 = Makebcd(min_alarme1) Hour_alarme1 = Makebcd(hour_alarme1) : Day_alarme1 = Makebcd(day_alarme1) I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte &H07 ' Endereço Alarme1 no Ds3231 I2cwbyte Sec_alarme1 ' Send Data to SECONDS I2cwbyte Min_alarme1 ' MINUTES I2cwbyte Hour_alarme1 ' Hours I2cwbyte Weekday_alarme1 I2cwbyte Day_alarme1 I2cstop Return Getalarme2: I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte &H0B ' Endereço Alarme2 no Ds3231 I2crbyte Min_alarme2 , Ack ' Minutos Alarme2 I2crbyte Hour_alarme2 , Ack ' Horas Alarme2 I2crbyte Weekday_alarme2 , Ack ' Dia da Semana Alarme2 I2crbyte Day_alarme2 , Nack ' Dia do Mês Alarme2 I2cstop If Err = 0 Then ' Err = 0 => não houve erro na leitura no relógio RTC via i2c Min_alarme2 = Makedec(min_alarme2) : Hour_alarme2 = Makedec(hour_alarme2) Day_alarme2 = Makedec(day_alarme2) End If Return Setalarme2: Min_alarme2 = Makebcd(min_alarme2) : Hour_alarme2 = Makebcd(hour_alarme2) Day_alarme2 = Makebcd(day_alarme2) I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte &H0B ' Endereço Alarme2 no Ds3231 I2cwbyte Min_alarme2 ' MINUTES I2cwbyte Hour_alarme2 ' Hours I2cwbyte Weekday_alarme2 I2cwbyte Day_alarme2 I2cstop Return Gettemp: I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte &H11 ' Endereço Temperatura no Ds3231 I2cstart ' Generate start code I2cwbyte Ds3231r ' Enviando endereço de leitura no Ds3231 I2crbyte Temp_msb , Ack I2crbyte Temp_lsb , Nack I2cstop If Err = 0 Then ' Err = 0 => não houve erro na leitura no relógio RTC via i2c Rotate Temp_lsb , Right , 6 Temperatura = Temp_lsb / 4 Temperatura = Temperatura + Temp_msb End If Return Getstatus: I2cstart ' Generate start code I2cwbyte Ds3231w ' Enviando endereço de escrita no Ds3231 I2cwbyte &H0E ' Endereço do Status no Ds3231 I2cstart ' Generate start code I2cwbyte Ds3231r ' Enviando endereço de leitura no Ds3231 I2crbyte Ds3231_control , Ack I2crbyte Ds3231_control_status , Ack I2crbyte Ds3231_aging_offset , Nack I2cstop Return Pega_hora_rtc: Reset Laco Do Gosub Getdatetime ' Pega a Data e Hora do RTC If Err > 0 Then ' se o RTC não está conectado pula e usa os valores padrão Exit Do End If If _sec <> Segundo And Laco = 1 Then Segundo = _sec : Centesimo = 0 : Minuto = _min : Hora = _hour Dia = _day : Mes = _month : Ano = _year + 2000 Exit Do Else Laco = Not Laco End If Loop Return Mostrahora: 'Home 'Lowerline Locate 1 , 1 If Err = 0 Then Lcd Time$ Else Linha1 = "" Aux = ":" Call Formata(hora , Linha1 , Aux) Call Formata(minuto , Linha1 , Aux) Aux = "" Call Formata(segundo , Linha1 , Aux) Lcd Linha1 ' usando o RTC Ds3231 ou o relógio vai Timer1 End If Return Mostradata: 'Lowerline Locate 2 , 1 If Err = 0 And Mostra = 1 Then Gosub Gettemp End If If Acerta = 0 And Mostra = 1 And Err = 0 Then 'Lcd Str(temperatura) ; " C" ; " " Lcd Fusing(temperatura , "##.##") ; Chr(223) ; "C " Else If Err = 0 Then Lcd Date$ Else Ano2 = Ano Mod 100 Anoaux = Ano2 Linha2 = "" Aux = "/" Call Formata(dia , Linha2 , Aux) Call Formata(mes , Linha2 , Aux) Aux = "" Call Formata(anoaux , Linha2 , Aux) Lcd Linha2 End If End If Return '------------------------------------------------------------------ ' Sub-rotina de timer0, chamada para gerar tons no Buzzer ' Tim0_isr: Timer0 = Const_timer0 If Buzzer_aux <= 200 Then If Buzzer_up = 0 Then Set Buzzer Set Buzzer_up Else Reset Buzzer Reset Buzzer_up Incr Buzzer_aux End If Else Disable Timer0 End If Return '------------------------------------------------------------------ ' Sub-rotina de timer1, chamada 1 vez por segundo ou mais, dependendo da Constante Interrupções_por_segundo ' Tim1_isr: Timer1 = Preload Incr Contador If Centesimo < 99 Then Incr Centesimo Else Centesimo = 0 If Segundo < 59 Then Incr Segundo Else Segundo = 0 If Minuto < 59 Then Incr Minuto Else Minuto = 0 If Hora < 23 Then Incr Hora Else Hora = 0 If Dia < Ndias Then Incr Dia Else Dia = 1 If Mes < 12 Then Incr Mes Else Mes = 1 Incr Ano End If Call Diasmes(ano , Mes) End If End If End If End If Incr Cont End If Return '------------------------------------------------------------------
  6. Aqui em Salvador a energia está custando 0,76 reais por kWh com a Coelba. Onde está custando mesmo este valor 0,35?
  7. @AmigoLegal Não sei porque o pessoal gosta tanto do DS1307, quando existe o DS3231 que é absurdamente mais preciso, tem compatibilidade com o DS1307 na maioria dos comandos e bibliotecas e ainda está custando menos de 1 dólar. Acho difícil que o DS1307 custe muito mais barato que ele! Tenho um programa completo para isso, muito parecido com este que você quer (com algumas diferenças), mas em Bascom para o DS3231 e controlador AVR (Arduino Uno)!
  8. Uma boia de nível baixo (normalmente fechada com chave de nível a mercúrio, nem sei se ainda fazem com mercúrio, mas deve ter similares sem mercúrio) é disparado o melhor método para evitar que a bomba trabalhe em vazio, é só colocar um cabo elétrico comprido e o cabo elétrico da bomba ligado em série com a boia. Mas se você não tem acesso a cisterna, então como você pode dar manutenção na bomba submersa (bomba sapo ou bomba centrifuga submersa)? Explique melhor porque você não tem acesso a cisterna? Eu tenho um conhecimento básico sobre poços, mas pelo visto melhor que o seu, pois uma boia de nível baixo é um equipamento muito conhecido e bastante útil neste tipo de aplicação. Não achei até agora nada sobre estas boias de mercúrio (estou meio sem tempo para ir mais fundo), mas eu já utilizei estas coisas há algumas décadas atrás. Encontrei algumas coisas que podem ser bem uteis e mostra algo parecido que serviria para você. Links e vídeos uteis abaixo. https://www.bombac.com.br/2-superboia adicionado 8 minutos depois Não vi antes de postar. Foi exatamente o que eu utilizei no passado, mas isto foi há mais de 20 anos (hoje não preciso mais disso), não fabricam mais este modelo, tem similares sem mercúrio!
  9. 1/2 off-topic. As multis praticamente não tem P&D no Brasil, fazem a maior parte fora, nas suas matrizes, e é pesquisa e desenvolvimento que gera empregos de qualidade, senão engenheiros só conseguem emprego de capataz de luxo (fiscal de serviço e similares). Então como você gera empregos de qualidade se não for com as estatais ou com as universidades ? Se as multis gerassem empregos, empregos de qualidade, não apenas para operários de baixa qualificação ou capatazes de luxo, eu não teria nada contra! Sei que a reserva de mercado de informática trouxe diversos problemas, eu vivi naquela época, não como Paulo viveu, e sim com usuário de equipamentos, e lembro dos aborrecimentos, mas a gente poderia ter aproveitado a oportunidade e ter desenvolvido de verdade a indústria de componentes para hoje não termos que importar tudo! Lembro que na década de 80 até o início da década de 90 existia também uma politica de substituição de importações (na Petrobras e em outras empresas), que trazia problemas por produtos de menor qualidade, mas pelo menos a gente começou a movimentar a nossa indústria, mesmo que a substituição de importações fosse feita com engenharia reversa (que não deixa de ser uma forma de pirataria, que a China pratica muito), isto estava levando a nossa indústria a se desenvolver, mas ai começaram as reduções de investimentos e as privatizações, que fizeram toda esta indústria nascente morrer. A Engesa, que era importantíssima na área militar, foi deixada falir pelo governo brasileiro (os EUA não deixam uma indústria estratégica morrer), a Engesa foi vítima da redução de gastos militares brasileiros, do calote pelo Iraque, e também sofreu muito com a redução de investimentos da Petrobras, com a sua subsidiaria, a Engex na Bahia, que fabricava ótimas unidades de bombeio, hastes de bombeio, e também muitos componentes do carro de combate Urutu. Foi uma pena ver tudo isso morrer e ver milhares de engenheiros perderem o emprego. Mas agora está muito pior, e com o desmonte da Petrobras estamos vendo o desmonte total da indústria pesada, que no final irradiava empregos de qualidade (engenheiros e técnicos) em todas as direções em muitos outros tipos de industrias, inclusiva na de automação e eletrônica! Vou tentar parar por aqui pois estamos deturpando o tópico do nosso colega, e esta conversa realmente não terá fim se a gente der corda!
  10. Não falar de política as vezes é difícil pois mesmo não gostando a nossa vida depende dela! É, querer ser engenheiro no Brasil é ser masoquista, infelizmente! No passado recente existia a Telebras, a Eletrobras (ainda existe mas hoje é insignificante), a Embraer, a Vale do Rio Doce, a Petrobras (que está sendo privatizada aos pedaços) e por ai vai. Elas investiam muito em P&D, que é o que emprega engenheiros e pesquisadores (de todas as áreas). Mas a nossa industria está sendo toda destruída e junto os nossos empregos! Extrativismo (tirando a de petróleo) e agronegócio praticamente não empregam engenheiros! E para piorar, o governo retirou a obrigação de contratação de conteúdo local no desenvolvimento do pré-sal, o que certamente iria fazer toda a industria progredir, começando pela pesada até as universidades. Todo mundo iria ganhar, mas agora infelizmente só quem vai ganhar são os operadores e os seus países de origem, para a gente vai sobrar apenas os danos ambientais! A Nigéria é um bom exemplo do que acontece nessa situação, e a Noruega é o exemplo de conteúdo local (antes da mudança da lei do pré-sal estavamos neste caminho) como política de desenvolvimento! Isto pode parecer off-topic, mas as privatizações sempre tiveram estes efeitos colaterais indesejados, desempregam engenheiros brasileiros e empregam os estrangeiros (exportando empregos), o que é terrível para todos nós, de todas as engenharias!
  11. @luizfelipecss A COPPE-UFRJ é um lugar com reputação de ensino de qualidade, acho que você está num ótimo lugar para fazer mestrado! Eu não sou da área (meu ramo original é a eng. mecânica e depois o petróleo) mas sempre me interessei pela programação e automação como hobby e no trabalho, e estou sempre tentando aprender com você e com outros como o Paulo e Isadora (não sei se vou conseguir mas tentarei assim mesmo). O controle PWM e controle PID é um dos meu ramos de interesse, e no meu trabalho eu me meto um pouco nesta área, mesmo sem ter todos os conhecimentos necessário (sempre tem quem possa fazer as coisas mais complicadas no trabalho quando necessário) eu tento comer pelas beiradas!
  12. Acho que o nosso colega (autor do tópico) tem muita coisa para ensinar, para mim pelo menos, e talvez consiga aprender um pouco com a gente (com o Paulo pelo menos). Me meti na conversa porque comecei a achar a conversa interessante, e não está parecendo nada com conversa de iniciante, nada mesmo! Comecei a ver uma ótima oportunidade de aprender um pouco (ou muito) com o desenrolar deste tópico! Quem sabe eu retome aos projetos com microcontrolador no decorrer disso! Paulo dei uma congelada no meu tópico do PT100/ESP32, mas em algum momento retomarei. Dei uma tremenda desacelerada por causa das eleições, e ainda não consegui digerir o resultado (acho que vai demorar muito), mas em algum momento posso retomar a vontade de brincar com o ESP32 (estou muito desanimado e desmotivado atualmente para isso)!
  13. Está fazendo mestrado onde e em que universidade? Está fazendo a tese sobre o que ? Pelo início do seu tópico (e título do tópico) você parecia bem iniciante, mas seu nível não é tão básico assim! Você já está entendendo muitas das coisas necessárias para usar bem um microcontrolador! E acrescentando o que Paulo (aphawk) não falou (acho que foi esquecimento porque ele é o rei do Bascom), é interessante baixar o Bascom, tem uma versão gratuita até 4K, no meu caso eu acabei comprando porque não demorou muito para achar 4Kbytes (de código compilado) muito pouco para mim, mas dá para fazer muita coisa com 4K se programar direito!
  14. Se esta tensão fosse real sua placa-mãe já teria ido para o espaço!
  15. Estou dando umas cabeçadas com o Fritzing (que me pareceu o programa mais fácil para eu desenhar o diagrama eletrônico), mas não tem alguns componentes, como por exemplo, o LM4040-DIZ-2.5V (e nem um componente parecido, pensei em adaptar um Zener), e não tem um PT100 (RTD) para eu representar, comecei a definir alguns novos (resistências) mas não terminei por não ter como desenhar todos os componentes. Quando eu conseguir desenhar tudo no Fritzing postarei aqui o circuito! Fui olhar o datasheet do 2N7000 e ele realmente tem uma RDI muito alta (máxima de 5 Ohms), o que no meu caso vai representar mais 50% de energia dissipada no PT100 e no R ref (o que não vai fazer nenhuma diferença no meu caso), e o tempo de chaveamento dele é da ordem dos nanosegundos, o que é perfeito para esta aplicação por ser muito menor que o tempo de 1/60seg! Achei o Fritzing meio complicado de usar (nunca tinha usado ele antes), talvez exista coisa mais fácil e com bem mais opções de componentes. Até pensei em criar nele o LM4040-DIZ-2.5V mas ainda não consegui encontrar onde estão os componentes novos criados pelo usuário para editar em modo texto, acho que se encontrar eu até conseguirei criar alguma coisa mais simples!
  16. Eu iria me divertir muito com um projeto desses, dá trabalho mas ao final dá um enorme prazer, e ai tem que se partir para outra coisa, um prazer bem efêmero infelizmente! Nem imagino como vou conseguir blindar uma placa de protótipos, mas acho que vai ser interessante! Eu até hoje nunca me atrevi a fazer uma PCI, quem sabe depois dessa brincadeira eu até resolva fazer uma??? A minha curiosidade é realmente estudar o processo físico da medição num PT100 e conseguir o máximo sem gastar dinheiro demais, pois eu realmente não tenho nada que justifique uma precisão tão alta (e nem dinheiro sobrando para exagerar no gasto com este meu hobby), a não ser o desafio de conseguir! Num passado muito distante, imagino que há uns 20 e tantos anos atrás, eu montei um termômetro com uma saída "linear" usando um 1N4148 como sensor de temperatura e calibrando usando água destilada como referência de zero e de 100°C (nem lembro mais como foi o circuito, mas foi usando um prontoboard), aqui é ao nível do mar mas eu não me preocupei com a pressão atmosférica, mas neste tipo de gambiarra isto não era realmente relevante! E como você já deve ter percebido, eu tenho uma certa tara (acho que é mais forte do que isso) por precisão. O meu relógio de pulso por exemplo (um Casio GW-9400, que é muito robusto, muito preciso, ele já tem alguns anos e espero que a bateria dele dure por mais de uma década) está sempre certo, normalmente com erro menor que 1 segundo (comparo com o DS3132 devidamente calibrado, você se lembra da estória, com imprecisão média aproximada de +/- 0,05PPM), e quando percebo uma mínima diferença visível, de décimos de segundo (realmente menor que 1 segundo), eu o acerto usando a Internet (por servidores SNTP) com grande cuidado (acho que isto talvez seja tratável, mas este meu tipo de comportamento não me traz problema, a não ser a fama de “maluco”). Gosto muito da precisão do meu relógio, e ele normalmente demora várias semanas para isso acontecer. Às vezes eu acho que estou na profissão errada!
  17. Eu também trabalho na indústria, mas numa indústria muito pesada (que não tem nada a ver com eletrônica), e os equipamentos de precisão são realmente muito caros. Mas eu sou "meio" cabeça dura, gosto de ver para crer, e gosto de testar os limites do possível! Aprendo desse jeito, gosto de testar os conceitos (onde é possível), é muito melhor do que apenas pelos livros! E mesmo tendo lido tudo, e acreditando em você (você tem muita experiência) ainda quero ver o que acontece na prática! Só não sei como vou conseguir comparar a medida do PT100 (calculando pela equação de 3º grau) com a temperatura com a precisão de pelo menos +/-0,01ºC ? Que falta me faz um bom laboratório metrológico! Aqui onde trabalho tinha um muito bom, não sei se ainda existe aqui na Bahia (na minha empresa), mas se existe eu não tenho mais acesso a ele, e nem sei mais onde fica! Todos os circuitos de linearização do artigo são para saída linear de -2,0 à 8,5V (-200 a 850ºC), bem diferente de converter direto da resistência do PT100 para temperatura! Eu quero realmente ver o que acontece se eu apenas ler e converter pela função de 3º grau, que pelo artigo é função R PT100 x Temperatura. Não tem jeito, eu sou mesmo teimoso! Mesmo que o que eu queira não faça sentido (obter uma medição precisa sem gastar muito com AMP OPs, resistências de precisão e etc). Pois parece simples demais obter a precisão num PT100, e se fosse assim os instrumentos medidores de temperatura precisos não seriam tão caros! Mas será que não existe alguns paradigmas e exageros? Sei que você vai me achar muito teimoso, e eu realmente sou, e muito cabeça dura! Mas certas coisas eu preciso bater a cabeça na parede para realmente me convencer, às vezes com muita força! Eu sempre dei dor de cabeça aos meus professores, pois não aceito sem questionar, e provar às vezes dá trabalho!
  18. Já li algumas vezes, acho vou acabar conseguindo decorar o artigo! Mas eu não quero este nível de complicação (não por enquanto), colocar 3 diodos 1N4148, dois AMPOP precisos, vários resistores de precisão (um já é caro, mas são mais 5), fonte simétrica, VRef de 10V, muito coisa e muito custo, acho que vou inicialmente só fazer a minha ideia inicial e ver o que acontece, eu sou muito curioso e realmente quero ver na prática o que acontece! Pena que hoje eu não tenho mais um banho térmico para fazer a calibração (há uns anos atrás eu conseguia isso aqui no trabalho sem nenhum custo), mas eu posso fazer um teste meia boca usando água destilada para pelo menos ver como se comporta em 0ºC e 100ºC! Eu criei este tópico para ver como realmente se pode conseguir precisão, pena que no momento não dá para aplicar todas as sugestões! Estou também curioso para ver como a medição vai se comportar chaveado a alimentação do R ref e do PT100 com 2N7000. Talvez eu coloque num osciloscópio! Precisava de alguma coisa que realmente me atiçasse a curiosidade e me motivasse à programar novamente no ESP32, já tem alguns meses que não faço mais nada!
  19. 5R não é problema, pois pretendo utilizar para desviar a corrente no R ref e do PT100 mantendo o LM4040-2,5 (é o que eu tenho atualmente) em carga durante 100% do tempo para o PT100 e o R ref em 1/60 seg, mas mesmo que fosse em série, passaria a resistência total de 1020 (se eu continua usando a resistência de 820ohms) para 1023, o que não é nenhum problema! A minha preocupação é a instabilidade ao chavear, pois o 2N7000 vai passar de saturado para aberto num tempo razoável, que ainda não sei quanto é. Eu realmente não preciso de um MOS de muito baixa Rds para esta aplicação, preciso de um pequeno e barato (e eu já tenho muitos 27000 em mãos. Já tenho muita coisa cara, gastar com o transistor, sem precisar disso, é desperdício! Este seu texto só tem 13 páginas! Eu ainda tenho que estudar melhor, eu sou que nem São Tome, tenho que ver para crer! E tenho este paradigma de que não precisa nada mais que a matemática, ainda preciso convencer a mim mesmo! O PT100 sempre tem ótima repetibilidade, então porque eu precisaria de algo mais que apenas converter a resistência em temperatura ??? Mas não me critique ainda, tenho que realmente estudar mais, e me desculpe se eu sou bastante cético, é difícil aceitar algo que para mim é bem diferente do que eu acreditava piamente como verdade! Só quando eu entender a física do porque é necessário todo este penduricalho é que aceitarei! Está me faltando saco para desenhar o circuito (e ainda estou pensando no que vou fazer), quem sabe neste fim de semana eu faça, que para mim será de 3 dias, e ai vocês entenderão o porque eu não estou muito preocupado com a RDS do 2N7000 e não tão exigente com a precisão do LM4040DIZ-2.5, pois na forma que eu farei a leitura a única coisa que afetaria a minha precisão é a falta de repetibilidade, dentro do período de medição de 1/60 seg, e a instabilidade pois interferência de alta frequência pode ser um problema, mas a de 60 Hz deve ser quase anulada fazendo a média de várias capturas durante 1/60 seg. No final calculando a soma das leituras no PT100 dividido pela soma das leituras em R ref, não preciso nem converter a leitura do ADS1115 para tensão ou corrente => R no PT100 (ohms) = (a soma das leituras no PT100 (16bits) dividido pela soma das leituras de R ref (16bits)) x R ref (ohms). Paulo, me diga o porque resolver a equação de 3° grau não é suficiente ? Pois uma das características da platina é a estabilidade, se eu não esquentar ela é claro, mas acho que 1E-5 Watts de potência sobre ela vai ser desprezível! Então porque eu preciso linearizar se a matemática não teria problema com uma função de 3° grau, e a equação do artigo relaciona a resistência com a temperatura, ou entendi errado e a equação só é válida após a linearização ? Ainda não sei como resolver sem fazer por newton raphson por exemplo, o que deve ficar pesado, mas acho que o ESP32 vai gastar bem menos de 1 segundo nisso! Eu quero algo que seja possível fazer com uma placa de protótipos (e não seja muito caro, já basta o R 100ohms de 0,01%), nada muito complicado, colocar o 2N7000 e o LM4040 já é uma grande melhoria no meu circuito de alguns anos atrás!
  20. Pelo que eu entendi do artigo (que não é diferente do meu conhecimento prévio), a equação de 3º grau é a curva de Resistência x Temperatura do PT100, acho que não precisa do diodo. Mas lerei novamente, quem sabe o meu inglês Tabajara está atrapalhando o meu entendimento???
  21. Você já pensou na hipótese de utilizar uma fonte de 12V x 10A (acho que existem maiores) que alimenta uma carga externa em 12V (13,6V para ser mais exato) que carrega bateria e em caso de falha na rede elétrica liga a bateria na saída de CC ? Uso uma dessas como um nobreak CC em alguns aparelhos que utilizavam fontes de 12V, mas dá para utilizar em outras tensões com conversores CC x CC, ela tem sinalização de falta de energia que poderia ser usada para alimentar um relé por exemplo (com algumas adaptações, pois a saída dela é um led). Vejam estas no eBay, talvez alguma delas pode ser útil para você? https://www.ebay.com/itm/100V-240V-13-5V-10A-UPS-Sw-Power-Supply-W-Battery-backup-CCTV-Security-/232438495083?hash=item361e69f76b https://www.ebay.com/itm/12V-12A-220V-Power-Supply-Battery-backup-CCTV-Security-UPS-13-8V2A-charge-manage-/331866572784?hash=item4d44ca07f0 http://www.ebay.com/itm/115-240V-27V-15A-Power-Supply-W-24V-Battery-charge-backup-CCTV-Security-UPS-/332255714400?hash=item4d5bfbdc60
  22. Paulo, Bem interessante este artigo, eu já tive contato com esta formula => R(t) = R0(1 + a.t + b.t^2 + c.(t - 100).t^3); a = 3,9083E-3 (Ω/°C); b = -5,775E-7 (Ω/°C^2); c = -4,183E-12 (Ω/°C^4)), mas não me lembrava dela, iria ter de pesquisar. Não sei se pode fazer muita diferença, mas eu pretendo resolver matematicamente a não linearidade do PT100. Com o Arduino e o Bascon eu só usei a parte de 2º grau da formula. Eu agora estou realmente querendo ir bem mais longe, mas eu ainda não sei qual vai ser o método que usarei para resolver a equação de 3º grau (mas eu vou ver se realmente compensa pois o coeficiente C é muito pequeno). O que eu vi é que eu tenho uma referência de tensão de 2,5V (LM-4040DIZ-2.5) SO-92 (semelhante a um pequeno transistor) de 1% (encomendei ontem umas de outras tensões, 2,048V inclusive, com precisões melhores mas acho que não vou esperar elas chegarem, o que exigirá que eu mude a resistência de 820ohms para outro valor). Para o método de cálculo que eu quero utilizar talvez seja suficiente, pois os erros devem se anular (a corrente não precisa ser precisa, só precisa se manter estável por um tempo maior que 1/60 seg) se a tensão (corrente sobre o R ref e no PT100) variar pouco ou variar lentamente!
  23. Paulo, Eu realmente não lembro qual referência de tensão que eu tenho, ainda preciso encontrar onde guardei (sou muito desorganizado!). Mas o mais provável é que a minha seja uma de duas saídas, tensão de 4,096 e 2,048V. Se for essa, para eu ter 2,048V precisarei alimentar ela com 5V ou mais, o que para mim não é ideal, o melhor é alimentar tudo com 3,3V. E para conseguir uma VRef só de 2,048V terei de encarar a terrível demora dos Correios e pagar o famigerado pedágio de 15 reais (que assalto!) ou pegar pelo Mercado Livre pagando mais caro, e ainda sofrer com as poucas alternativas. Normalmente eu evito o Mercado Livre quando eu posso!
  24. Encontrei o link => https://pt.aliexpress.com/item/4-Wire-PT1000-Temperature-Sensor-4-Wire-with-Silicone-Gel-Coated-1-5Meters-Probe-50mm-6mm/32700091376.html apesar do que parece é mesmo um PT100! Em tese um PT100 deveria ter a mesma precisão independentemente de qualquer coisa, mas a não ser que ele não seja feito de platina pura, os sensores de platina tem todos a mesma curva de resposta (a não ser que para economizar eles façam o sensor com um menos platina e com outro material para ser mais barato). Mas os com 4 fios são bem mais precisos por se poder eliminar totalmente o efeito da resistência ôhmica dos fios! Eu não sei o que pode fazer um PT100 ser mais preciso ou menos que outro (além de ter 2, 3 ou 4 fios), mas estou aberto a aprender, se alguém souber o motivo??? Provavelmente um PT1000 deve ter menos problema com interferência por trabalhar com tensões mais altas, mas imagino que seja mais caro!
  25. Paulo, Com 13 bits (incluindo o bit do sinal) já chego nesta ordem de grandeza, mas é possível que vá mais longe (vai ser um poço de interferências). Desligar o PT100 nas horas ociosas vai deixar ele bem mais frio, mas em compensação eu não poderei colocar um capacitor nos pontos de medição (a não ser que seja um bem pequeno de cerâmica, mas talvez eu não deva fazer isso) para atenuar os ruídos. E imaginar que estou querendo fazer isto numa placa para protótipos! Só após montar que vou ver a dor de cabeça de verdade que vai dar. A parte do software certamente é a mais fácil! Desta vez vou pensar bastante no que eu vou fazer para acertar de primeira (sei não ????), mas fazer várias leituras deve diminuir o ruído na medição (é o que eu acho pelo menos). Já faz uns bons meses que não mexo com os microcontroladores (programação), estou ficando enferrujado, e resolvi fazer isso porque eu tenho uma certa fixação por precisão e com um objetivo volto a ter motivação! E fiquei meio frustrado com a precisão que obtive utilizando um integrado especializado, o MAX31865, para ler o PT100, agora eu quero ver o que eu consigo com o ADS1115 fazendo um verdadeiro trabalho de engenharia, teoricamente posso conseguir uma precisão bem melhor! Mas com a ajuda de vocês talvez eu consiga um resultado melhor! Foi para isso que criei este tópico, e vai ser um aprendizado para todos!

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!