Ir ao conteúdo
  • Cadastre-se

aphawk

Membro Pleno
  • Posts

    8.316
  • Cadastrado em

  • Última visita

Tudo que aphawk postou

  1. Não ė tudo desse jeito .... Transistores operam de forma linear tambėm ! Por exemplo o circuito do comparador analógico dentro de um MC terá uma boa parte operando de modo linear, para poder comparar as tensões , certo ? Entendo o seu ponto sim , mas eu costumo seguir o mesmo caminho da natureza : tudo segue o caminho do menor esforço para poder preservar a energia ! Se é tão fäcil fazer com um MC ou com um simples 555, para que complicar ? Se um termistor NTC custa uma mixaria e resolve, inclusive suportando uma gama de temperatura maior do que a de um Lm35, para que inventar um amplificador linear de tensão, inventar outro comparador ( lembrando que existe um no 555 ) e ainda enfiar esse Frankstein em um 555 ????? Creio que estamos nos anos 2020, e não em 1970... Se até nossos celulares såo quase 100% digitais, prá que inventar um Startac dos anos 1990 cheio de partes analógicas que criaram um tijolo de alto consumo e baixo desempenho nos dias de hoje ? A intenção de aprender sempre é louvável, mas sinceramente não vejo a utilidade de se aprender muita coisa analógica para os dias atuais. Já temos alguns dinossauros aqui no CDH, viemos da época dos analógicos, e insistimos em usar os modernos digitais como uma opção de dar uma "utilidade" a nós mesmos ! Nosso conhecimento acumulado ao longo dos anos já tem pouquíssima utilidade hoje... O futuro está nos microcontroladores, queiram ou não eles dominam totalmente os dias atuais, e cada vez mais o uso deles se torna obrigatório em todos os ramos da Eletrônica. Minha sugestão ė que não percam tempo com coisas ultrapassadas. Creio que seria muito mais útil discutir como fazer o projetinho usando um MC, onde muitos poderiam explicar passo a passo o programa funcionando, como calcular o PWM , a frequência utilizada, como detectar que o cooler não está girando, como seria a regulagem bäsica da temperatura ( digo básica mesmo, sem usar PID para controle preciso ), acho que os novatos gostariam bem mais de algo deste tipo. @rmlazzari58, Não se assuste com esse circuitinho ! Nada mais é que um 555 na configuração de ASTÁVEL onde a relação Ton/Toff ė definida pelos dois resistores, sendo um deles o termistor ! Quando a temperatura aumenta, o tempo Ton também aumenta, fazendo aumentar a velocidade da ventoinha. Se não me engano tem um datasheet do 555 mostrando o cálculo do Ton/Toff com esses resistores. Algo que lí vorazmente quando tinha meus 15 anos ..... Paulo
  2. E quanto mais energia è fornecida à água, mais vapor é criado, e como a pressão externa não muda, a temperatura da água não se modifica. Olhe a diferença para uma panela de pressão: aqui, a água que virou vapor não consegue ir para a atmosfera, então ela fica dentro da panela, aumentando a pressão sobre a água, a qual agora precisa de uma temperatura maior para virar vapor, que aumenta a pressão de novo e assim sucessivamente, o que faz a temperatura da água atingir valores maiores , podendo atingir fäcilmente 120 graus, o que acelera bastante o cozimento ! Paulo
  3. @rmlazzari58, Muito tempo atrás eu montei um termômetro digital. A maneira indicada de aferir a temperatura máxima foi a de colocar água para ferver, e tinha uma conta que indicava qual é a temperatura de fervura da água em função da pressão atmosférica, a qual também é função da altura do local. Sabendo a altura, você sabe qual serä a temperatura de fervura e assim calibra o seu termômetro. O que você está pedindo, gerar temperaturas na faixa de 120 graus, com precisão e estabilidade, não é algo trivial... Não basta um circuito, envolve uma certa mecânica e isoladores inclusive do vento. Não pense que esses ferrinhos de solda tem precisão ou estabilidade para serem confiáveis como referência.... Paulo
  4. Aceitam um meio termo baseado num 555 ? https://unicrom.com/control-de-temperatura-ambiente-con-555/ Paulo
  5. Só lembrando o que o @.if disse lá no começo deste tópico : Um sensor qqr de temperatura, um microcontrolador de 8 pinos, um Mosfet e pronto, tá solucionado fazendo PWM ! O programa é muito simples, faz a histerese por software mesmo, um trimpot para ajuste de temperatura de acionamento ajustável e pronto... Eu faria isso usando um Attiny85 e um sensor NTC, faria a calibração de temperatura desejada com o trimpot , usaria um Mosfet tipo lógico que funciona com os 5 volts mesmo e acionaria uma ventoinha de PC de 12 volts, e um regulador de tensão de 5 volts. Acho que estamos complicando demais tornando analógica uma simples solução digital .... Paulo
  6. @rmlazzari58 , A adição do TIP vai diminuir a tensão de saída ao ventilador em uns 0,7 volts ... e o LM358 perde também cerca de 1 Volt no mínimo em relação à alimentação positiva, então imagine que se alimentar isso tudo com 5 volts, vai ter no ventilador no melhor dos casos apenas 5 - 1 - 0,7 = 3,3 Volts ! Paulo
  7. @alexandre.mbm , O próprio protocolo ! Segue aqui : https://www.analog.com/en/technical-articles/i2c-primer-what-is-i2c-part-1.html Veja que tem a escrita para um periférico e a leitura de um periférico, sempre a partir do lado do MASTER. Todas as bibliotecas que você vê, tratam a conversa do lado do Master. Para fazer o tratamento do lado do Slave, você tem de implementar os comandos do protocolo na mão, por exemplo o ACK / NACK, o START, o STOP, comparar o endereçamento e responder de acordo, isso tudo acompanhando o estado da linha SCL a qual é controlada pelo Master apenas. Tem de ficar monitorando as duas linhas o tempo inteiro e detectar quando o SLAVE precisa responder alguma coisa..... Quando você usa I2C do lado do Master, tudo é fácil, tem tudo prontinho.... já do lado do Slave você tem de gerar a temporização e sinais . Algumas pessoas usam essa biblioteca adicional do BASCOM para inventar um componente dedicado, especializado em um determinado processamento. Por exemplo, um CI que monitora as linhas de uma rede trifásica, fazendo a leitura das 3 linhas , convertendo a tensão em RMS, detectando a sequencia de fases, e repassando esses dados prontinhos quando solicitados, o que libera o processador principal para as outras tarefas do programa. Eu criaria alguns comandos I2C nesse CI especializado : 00 - leitura da fase 1 01 - leitura da fase 2 02 - leitura da fase 3 03 - leitura da sequencia RST ( por exemplo 312 , ou123, ou 312, etc ) 04 - leitura RMS 05 - qualidade da tensão RMS ( o quanto de ruído que tem interferindo nas 3 senóides ) 06 - identificação do CI com um determinado numero de resposta fora outros que podemos imaginar ..... O cara usa um Atmega 328 e faz todo esse processamento nele, grava e pronto ! Ai poderia vender esse CI em um módulozinho que implemente os divisores de tensão, um pequeno transformador isolador, e ganhar um dinheiro com isso... Paulo
  8. @alexandre.mbm , Sim, o SPI / SPOUT é um bit banging por hardware, e pode ser emulado fácilmente por software. Mas não atingirá uma velocidade absurda porque tem o processamento de algumas instruções envolvidas. No seu caso, é um bit-banging de apenas 8 bits de cada vez para simular o envio de um byte , e alguns bits individuais para emular o protocolo I2C, que é de velocidade bem mais baixa do que um SPI/SPOUT pode atingir. Acredite, fazer isso para conversar com um periférico é bem mais simples do que fazer isso para conversar com outro microcontrolador que age como Master. Paulo
  9. Quase isso mesmo !! Bit-Banging é algo tipo SPI / SPOUT, que é um padrão de alta velocidade. Para falar I2C no formato SLAVE, que é como os periféricos I2C respondem no Bus a uma chamada de um Mestre, a coisa é bem mais chatinha.... no caso do Bascom tem um ADD-ON para isso, o qual; eu possuo também. Já emulei um PCF8574 com um Atmega8, no desespero de um fim de semana sem o tal CI kkkk Paulo
  10. Essa ideia é muito fácil de se fazer, eu já fiz algo assim fazem muitos anos, onde projetei e montei uma plaquinha que continha um display LCD tipo 20x4 , e 8 pinos que você podia escolher se seriam uma matriz 4x3 para um tecladinho, ou 4 entradas e 4 saídas, ou 2 Rotary encoders e 2 pinos de I/O . Tudo por comunicação serial a 115k bits ou 9600 bits. Com o Bascom você pode criar o seu próprio periférico, ele tem uma biblioteca que permite qualquer processador Attiny ou Atmega fazer conversação I2C como um Master ou como um Slave, assim você pode usar um velho Attiny85 de 8 pinos ligado a um sensor meio complicado, fazer o programa dele para processar o sensor e disponibilizar os resultados para serem repassados quando vier algum pedido pelo I2C ! São ideias que ajudam nos desenvolvimentos , e quando você tem para quem vender isso, dá para ganhar um bom dinheiro ! Ele deve ter uma tabela com todos os periféricos possíveis, e ele procura algo que permita identificar o periférico colocado no Bus. Isso é uma ideia que vem dos anos 80, onde a gente usava o famoso S-100 BUS, até disponível no ramo industrial, eu trabalhei com esse padrão usando um hardware baseado no Z80 comum. Algumas placas possuíam um padrão para serem identificadas pelo microprocessador. Segue uma visão do S-100 : https://www.pcmag.com/news/pc-pioneers-the-forgotten-world-of-s-100-bus-computers Paulo
  11. @.if , Bom, eu diria que para você , eu, e outros que somos da velha guarda, isso não nos agrega nada.... mas eu acho que para a nova geração, a que usa até I.A. para fazer programas, isso deve facilitar a vida deles, e permite o uso dos velhos processadores de 8 bits para muitas aplicações onde seria necessário um profundo conhecimento do hardware para conseguir tratar os eventos na velocidade necessária.... Eu olhei algumas dessas placas de sensores que tem o seu processador dedicado como um tipo de co-processador, onde ele mastiga a parte mais difícil, e assim permite entregar as informações já mastigadas para os velhinhos de 8 bits, usando esse BUS já padronizado. Tem uma plaquinha de CPU chamada de ATMEGA4809 CURIOSITY NANO que tem recursos de hardware programável por eventos, onde você configura coisas tipo DMA sem usar interrupção, por exemplo, criar uma tabela de leituras do ADC e guardar ela diretamente em um local da memória, sem usar nenhuma interrupção ! Ou tratar capturas através do comparador analógico, são ideias bem avançadas para os velos 8 bits ..... eu vou comprar uma dessas só para me atualizar kkkkk! Paulo
  12. @alexandre.mbm , Sim, entendeu ! A Mikroe desenvolveu essa ideia, existem centenas de periféricos inteligentes, chamados de Click Boards, que compartilham um design e uma pinagem padrão, assim basta você comprar uma placa com o seu microcontrolador predileto ( existem com algumas famílias diferentes, como Pic e Atmega, e compatíveis com a IDE do Arduino ! ) , uma placa de base que tem todos os conectores tipo um BUS, e as placas com os sensores, algumas com processador dedicado. Eu acho uma excelente ideia pois existem bibliotecas prontinhas para tudo isso..... assim os programadores não precisam saber muita coisa sobre o hardware, basta aprender como as bibliotecas funcionam. Mas o preço é o impeditivo, claro que seria boa opção para escolas e faculdades, ainda mais que basta trocar a placa do processador principal e continuar aproveitando todas as outras, mas para desenvolvimento de produto a coisa tem de ser bem mais especializada. https://www.sparkfun.com/categories/tags/MikroElektronika https://www.microchip.com/en-us/development-tool/AC164162 Paulo
  13. Se for só um resistor, porque tem uma tensão DC aplicada nele na tabela ? Não precisaria ligar o +12V no sensor .... Paulo
  14. Tem coisa muito melhor do que esse 358, um rail to rail seria perfeito, com tensões muito próximas de zero e bem perto dos limites de -VCC e +VCC .... Paulo
  15. Eu sugiro um filtro RC grande, algo como C de 47uF em paralelo com um de 0.1 uF, e um R de 10K, e, claro, média de 8 leituras. Afinal pressão de óleo não deve variar muito rápido não .... Eu costumo usar um algoritmo que vai calculando a media e ajustando automaticamente o resultado... Existem vários na Internet. Paulo
  16. É o BC327 : https://www.baudaeletronica.com.br/transistor-pnp-bc327.html Paulo
  17. Não, é um comando de I/O do Bascom que permite enviar qualquer tipo de variävel bit a bit para um pino de saída, pode será partir do MSB ou do LSB, e você define a velocidade. Existe uma equivalente para a antrada de dados bit a bit no formato serial, usando um outro pino de I/O adicional como sincronismo, e você específica a quantidade de bits a receber e para qual variävel vai ser direcionado. Eu disse na unha porque só usei comandos normais do Bascom.... Poderia ter isolado cada bit e controlado o envio de maneira ainda mais primitiva, mas o comando simplifica demais kkkk Essa técnica que você ainda estä digerindo foi uma maneira de se evitar um erro maior do que 3 casas decimais depois da vírgula nas contas com números inteiros de 16 bits... Na prática o erro do A/D com os ruídos ficou maior do que esse 0,001 Volt mas o meu ponto era apenas ensinar uma matemática de conversão para os iniciantes fugirem dos pontos flutuantes. Acho que fazer um voltímetro com essa resolução com pouco mais de 1Kb fica num tamanho razoável para um programa em Basic, linguagem com mais de 60 anos kkkkk ! @GustavoH93, Melhor fazer uma tabela para usar a função MAP semelhante a essa do sensor e linearizar cada intervalo para se obter um resultado melhor.... O erro inicial desse sensor ė de 30% e vai diminuindo atė perto de 5% no limite superior. Use a função MAP com valores adequados para cada uma dessas 11 faixas. Mas antes ... Cuidado com os 12V do sensor, verifique se o que sai dele é uma resistência em relação ao GND ou em relação ao 12V senão você queima o microcontrolador. Faça um divisor resistivo adequado para nunca aplicar mais tensão no pino do que a tensão que o microcontrolador esteja sendo alimentado. Paulo
  18. Fiz exatamente isso também , muito parecido kkkkkk : off-topic : a pedido do @.if e um bom exemplo de como conseguir cálculos com números decimais usando aritmética de 16 bits ... Parte em negrito para observar kkkkkk '---------------------------------------------------------------------- ' PROGRAMA MULTIPLEX 5 - Implementa um voltímetro que pode medir ' tensão entre 0 e 5 volts, e mostra com até 3 casas depois da vírgula ' Usaremos agora o MAX7219 ' os displays estão numerados assim D4-D3-D2-D1 ' Este programa utiliza aritmética de 16 bits apenas ! '---------------------------------------------------------------------- $crystal = 8000000 'vamos usar o clock interno que é de 8 MHz. $regfile = "m328Pdef.dat" ' vamos compilar para o ATMEGA328P $hwstack = 40 $swstack = 32 $framesize = 52 Dim Digitos(4) As Byte ' nosso display terá 4 dígitos Dim Dp_position As Byte Dim Numero As Word Dim I As Byte Const Reg_decode_mode = &B1111100111111111 Const Reg_scan_limit = &B1111101111111011 Const Reg_intensity = &B1111101011111111 Const Reg_shutdown = &B1111110011111111 Dim Resultado As Word ' RESULTADO tem de apresentar numeros não inteiros Dim Resultado1 As Word ' MAIS UMA VARIÁVEL PARA OS CÁLCULOS Config Portc.0 = Output 'data Config Portc.1 = Output 'load Config Portc.2 = Output 'clock Max_data Alias Portc.0 Max_load Alias Portc.1 Max_clock Alias Portc.2 Digitos(1) = 0 Digitos(2) = 0 Digitos(3) = 0 Digitos(4) = 0 Max_load = 1 Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc ' aqui configuramos o conversor a/d para fazer uma leitura ' apenas quando pedirmos, vai usar como referencia 5V Enable Interrupts ' aqui habilitamos as interrupções definidas no programa Dp_position = 4 ' ponto decimal sempre no primeiro dígito 'vamos agora inicializar o MAX7219 Numero = Reg_shutdown Gosub Sai_max Numero = Reg_decode_mode Gosub Sai_max Numero = Reg_intensity Gosub Sai_max Numero = Reg_scan_limit Gosub Sai_max 'já configurado ! Do Waitms 100 Numero = 0 For I = 1 To 49 Numero = Numero + Getadc(5) Next I ' vamos calcular a media, somando 49 ezes a leitura. Porque 49 ? ' se multiplicarmos 49 x 1023, teremos 50.127, que ultrapassa em pouco 50.000 ' SE DIVIDIRMOS 50127/50.000 = 1,00254, que é 2,54% maior do que queremos, ' agora, temos um valor que ultrapassa 50.000 em 0,254% . Vamos portanto subtrair ' esses 0,254% ! Resultado1 = Numero Resultado1 = Resultado1 / 500 ' 0,2% Numero = Numero - Resultado1 Resultado1 = Numero Resultado1 = Numero / 2000 '0,05 % Numero = Numero - Resultado1 Resultado1 = Numero Resultado1 = Resultado1 / 25000 ' 0,004 % Numero = Numero - Resultado1 ' FINALMENTE SUBTRAIMOS 2,54% ' VAMOS AGORA DIVIDIR POR 10 PARA CHEGARMOS NA ESCALA QUE QUEREMOS. Numero = Numero / 10 Resultado1 = Numero / 1000 Digitos(4) = Low(resultado1) Resultado = Digitos(4) * 1000 Numero = Numero - Resultado Resultado1 = Numero / 100 Digitos(3) = Low(resultado1) Resultado = Digitos(3) * 100 Numero = Numero - Resultado Resultado1 = Numero / 10 Digitos(2) = Low(resultado1) Resultado = Digitos(2) * 10 Numero = Numero - Resultado Digitos(1) = Low(numero) ' prontinho... não precisamos utilizar matemática de ponto flutuante, que ' sempre faz o programa ficar bem maior. Veremos no final a redução do programa. For I = 4 To 1 Step -1 Numero = Digitos(i) If Dp_position = I Then Numero = Numero Or &B1111000010000000 End If Select Case I Case 1 Numero = Numero Or &B1111010000000000 Case 2 Numero = Numero Or &B1111001100000000 Case 3 Numero = Numero Or &B1111001000000000 Case 4 Numero = Numero Or &B1111000100000000 End Select Gosub Sai_max Next I Loop Sai_max: Max_data = 0 Max_clock = 0 Max_load = 0 Shiftout Max_data , Max_clock , Numero , 1 Max_load = 1 Return End Este programa compilado tem 1.474 bytes, tratando o Max 7219 na unha. Paulo
  19. Não é mais econômico em termos de código fazer a parte inteira, depois a parte fracionaria, juntar numa string, e fazer só uma impressão ? Paulo
  20. @Mega Blaster , Existem público-alvo diferentes. São eles que definem o projeto de uma solução. Se no seu público-alvo o custo não for um fator impeditivo, ótimo. A mesma coisa ocorre no meu público-alvo, onde aumentar cem reais no preço final não faz diferença para os meus clientes, pois não tenho concorrência. Se eu tivesse, com certeza estaria também na bancada procurando baratear o que produzo, senão não venderia ! Já se for fazer um projeto para uma área onde não há mais verbas disponíveis, e o custo tem de ser o menor possível, é aí que entra o Engenheiro ! Aqui no Brasil é atualmente desprezado, e os que saem das faculdades já faz tempo não se diferem em quase nada de um técnico e muitos nem tem o conhecimento suficiente para trabalhar em uma bancada com componentes; esse profissional é o que tem a capacidade de distinguir os problemas, custos e possíveis soluções, e ele consegue isto através de um projeto cuidadoso e geralmente complicado em termos de desenvolvimento, pois não pode usar soluções prontas cujo custo inviabiliza o produto. Tenho certeza que o projeto do Sérgio segue este caminho. Eu fico muito contente em ver que ainda existem pessoas aqui no Brasil que tentam desenvolver algo usando os conhecimentos de Engenharia, procurando uma solução de baixo custo e grande funcionalidade para um problema específico, e infelizmente vejo também o quanto os antigos Engenheiros se distanciaram dos atuais profissionais do mercado... é uma profissão que tem cada vez menos valor e procura no Brasil, principalmente pela péssima qualidade do ensino. Falo isso pelos meus vários anos de mercado, e quase 15 anos aqui no CDH vendo as dúvidas dos formandos nos seus trabalhos de TCC, e até na resolução de exercícios muito simples, que quase sempre basta uma simples pesquisa no Google para ter como chegar na solução, e nem isso fazem.... Voltando ao seu comentário, é a mesma coisa que eu já falei algumas vezes aqui : os atuais profissionais não sabem como trabalhar em situações onde se sentem pressionados. Usam processadores de 32 bits e centenas de megahertz quando poderiam solucionar com processadores de 8 bits e poucos megahertz. Muitos defendem que assim poderiam fazer mais coisas no produto, mas a grande verdade é que não possuem o conhecimento de hardware necessário para se controlar o programa usando os recursos limitados. E outros defendem manter o valor de venda mais alto em busca de maiores lucros, quando poderiam também diminuir o preço de venda e em um ambiente de concorrência isso significaria mais vendas com certeza. Mas, tudo depende do público-alvo. Se pagam por isso sem reclamar, ótimo para todos nós ! Paulo
  21. @Henrique - RJ, Nenhum fabricante perde tempo escolhendo insumos ruins. O que acontece algumas vezes é que a checagem por amostragem pega um componente que não passa no teste de qualidade, e nesse caso o lote todo ė rejeitado e em teoria os produtos devem ser destruídos. Mas ..... Igual aqui, existem os espertos, que oferecem dinheiro para que os responsáveis não destruam o lote e vendam os componentes bem baratos para o "esperto" , que acaba anunciando nos sites e vendendo picado. Algumas peças podem funcionar perfeitamente, outras aparentam ser perfeitas porque justamente o problema pode não aparecer na aplicação do componente. Não pense que existem fabricantes de componentes chineses que vendem produtos ruins de propósito, lá as leis funcionam e os responsáveis geralmente são mortos. O problema está em não comprar direto da fäbrica, e sim de milhões de espertos revendendo na Internet ... Paulo
  22. @Mega Blaster , Esse cabo aí tem shield, ajuda bastante na imunidade a ruidos. Esta aplicação do nosso amigo Sérgio é algo bem diferente de tudo o que ví no ramo industrial, e os requisitos são complicadores... A minha impressão é de que o custo é fator primordial no projeto, e tem de ser barateado ao máximo. Paulo
  23. @Mega Blaster , Ele informou em uma postagem : são cabos trançados longos , a partir de 10 metros. É similar aos antigos fios de telefone nos anos 70 e 80 ..... o trançamento ajuda a diminuir o ruído, mas adiciona resistência e capacitância consideráveis, isso com baixa corrente é bem complicado de implementar. Paulo

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!