Ir ao conteúdo
  • Cadastre-se

Sérgio Lembo

Membro Pleno
  • Posts

    3.036
  • Cadastrado em

  • Última visita

Tudo que Sérgio Lembo postou

  1. Significa que o programador da IDE era muito melhor do que você. Estava no início, faz parte. Ninguém nasce experiente. Quando o programa se baseia em medições de tempo gosto de fazer a instrumentação na unha, me sinto mais seguro por saber exatamente como o hw irá se comportar. Nas tarefas mais administrativas do programa vou de C mesmo, mais simples.
  2. Sobre o uso de relé: tá marcando bobeira. O mesmo circuito que habilita o relé pode ser utilizado para acionar o reset do 555. Sobre o fato da luminária realimentar seu sensor de luz (LDR). Vai ter que fazer leitura sincronizada com o PWM. São 2 as formas: 1 - desativar a leitura durante o ciclo de luz ligada e garantir que o pino de reset permaneça habilitado. A leitura de luz ambiente só será considerada durante o ciclo desligado. 2- enganar o leitor do LDR com excitação para manter o pino reset habilitado durante o ciclo ligado, uma realimentação positiva. Durante o ciclo desligado essa realimentação cai e a leitura passa a ser a real. Indo pela alternativa 2 um diodo 1N4148 com o anodo no pino 3 do 555 e seu catodo na entrada positiva do operacional. Quando o pino 3 ficar alto, ligando o led o diodo manterá o operacional com a saída alta mesmo que o LDR fique todo iluminado. Quando o pino 3 ficar baixo o led apaga, o LDR fica com seu valor dependente de outras fontes de luz, a excitação do diodo desaparece e a habilitação do pino de reset passa a ser dependente da luz ambiente. Simples assim. Só mais uma coisa: coloque um resistor de 68R entre o pino 3 e o gate desse mosfet ou o seu 555 poderá ter vida curta.
  3. @alexandre.mbm É a diferença entre utilizar a confortável biblioteca fornecida e ter que ralar na escovação dos bits, estudando o ds de cada componente utilizado. A tendência é que na escovação se tenha maior eficiência. Essa tendência diminui de magnitude em função da sofisticação do compilador a ser utilizado. A IDE do Arduíno é boa e gratuita. Atolic e IAR são muito maiores para fazerem a mesma coisa e custam 1500 euros a cada 12 meses, se quiser.
  4. Os problemas apontados me fez lembrar um defeito numa máquina de correção ferroviária. Equipamento grande (uns 20m) possuia 5 réguas de leitura analógica. Numa delas, onde a sensibilidade era de 17mV/mm estava dando erro. No procedimento de aferição/calibragem não apresentava problema, no campo fazia caca. O potenciômetro 360º era um luxo só, da Honeywell, 2 rolamentos, cursor banhado a ouro com ajuste de pressão e coisa e tal. Após muita dor de cabeça (2 dias) descobri que o conector DIN teve infiltração de água. A arruela mola que pressionava o miolo oxidou. A pasta de óxido de ferro contaminou o miolo que alojava os contatos. Formou um tipo de pilha, capacitor ou coisa parecida. Caso a degradação da placa ou de algum componente tenha tomado as mesmas características será um inferno permanente. Caso seu escorpião seja de estimação dê-lhe cachaça para distrair a atenção e substitua esse multímetro infiel. Se não for possível um Minipa ou Fluke até um amarelinho te atenderá melhor do que este aí.
  5. A biblioteca ocupa espaço no seu PC mas não ocupa no microcontrolador. Quando é indicado no programa biblioteca.h isso é apenas uma referência ao compilador para pesquisar na referida biblioteca a sintaxe utilizada e ações associadas, nada mais. Somente os recursos utilizados serão incorporados e ocuparão espaço no seu programa e mesmo assim antes de serem incorporados terão que ser interpretados à luz do processador utilizado por estarem escritas em C e não em assembler. Assim sendo não faz sentido a faxina dos recursos que não serão utilizados.
  6. Já tive esse problema por conta do HD, velhinho. A saída foi outro HD, desta vez o SSD. Como o SSD é caro para elevado armazenamento e eu gosto de baixar uns filmes fiz o seguinte: Formatei o SSD com o Windows mas com o HD desligado. O problema de fazer a formatação com 2 discos é que o Windows coloca parte do SO no segundo disco. Depois do sistema instalado no SSD é que conectei o velho HD para usar como armazenamento de grandes arquivos, no meu caso filmes. Para mim deu certo. Não se esqueça de manter o HD velho desconectado caso queira ter os 2 discos. Só o reconecte depois de instalar o SO no SSD. Boa sorte.
  7. Complementando o post do @aphawk , aprendi que 10 mA doem, 20 mA já pode ser fatal e 50 mA é saco preto garantido. A pilha de 1,5V pode ser sentida na ponta da língua. O grande perigo é que nossos músculos se contraem na presença de corrente e se a ordem cerebral tiver intensidade menor que a da corrente externa vai ficar sem reação e em sofrimento continuado. Não se deve utilizar o corpo para verificar a presença de eletricidade mas se a curiosidade for maior que a prudência ao menos utilize as costas da mão para evitar que os dedos fiquem travados no condutor.
  8. Se é para simular, um zener de 1.8V é o adequado. O diodo começa a conduzir a partir de +- 0.5V. Com 2 em série começa a dar condução a 1V. O led a 1,5V só dá corrente de fuga. No início, capacitores descarregados e transistores cortados, R4 carrega C3, a tensão em VC2 é zero ou quase. Ao mesmo tempo R1 carrega C2 e deste RC tem-se a definição do intervalo de tempo. Quando Vb1 consegue excitar Q1 a mágica inicia com realimentação positiva pois basta uma faísca de excitação em Q1 para disparar o processo, tal qual uma espoleta na pólvora. Quando Q1 começa a excitar Q2 a tensão Vc2 começa a subir. Ao subir através de C2 aumenta a excitação sobre Q1, realimentando o circuito positivamente e levando ambos os transistores para a saturação onde até o minusculo C1 colabora para essa centelha inicial. Como consequência C3 age como dobrador de tensão sobre o led, este passa a conduzir enquanto houver carga em C3. Com a descarga de C2 através do emissor de Q1 a realimentação positiva é cortada e começa tudo de novo. O mais incrível e crítico é a influência de C1 sobre o comportamento do piscador. Se removido o tempo de piscada aumenta significativamente mas a corrente instantânea cai, fica limitada pela polarização de R2 x hfe de Q2. Se aumentado a corrente da piscada sobe de forma assustadora.
  9. Cabo blindado é bom. Cabo trançado também é bom. As formas de operação são distintas. O cabo blindado oferece um escudo contra as induções mas achar que nada vaza é ser otimista demais. O cabo trançado oferece uma convivência pacífica com a existência das induções pois ao trançar os fios a soma vetorial tende a zero. Quando se consegue utilizar as 2 técnicas ao mesmo tempo melhor ainda. É o que temos nos cabos de rede, pares trançados envoltos por capa metálica. Já tive experiência de cabos de rede carregarem 100Mbps num lance de 80 metros em postes da via pública. Numa experiência recente com fiação de 1 metro eu estava tendo resultados confusos. Bastou que eu fizesse apenas 5 tranças de qualquer jeito para que os resultados melhorassem de forma significativa. Cabo de rede é barato, fácil de achar e te dá essa dupla solução. Pense nisso.
  10. Altere o resistor de 100k. Para o dobro do tempo, 200k. Para metade, 47k. Alterando o resistor de 1k há uma discreta variação do intervalo, é necessário aumentar 10x o valor para se obter 2x o intervalo mas o brilho da piscada cai junto.. Diminuindo o valor aumenta o pico de corrente sobre o led e uma pequena diminuição do intervalo. Aumentando diminui o pico de corrente sobre o led (intensidade da piscada) e um discreto aumento do intervalo. Altere-o apenas para controlar a intensidade da piscada. Se muito forte pode queimar o led.
  11. Ler sinais baixos é sempre complicado, principalmente quando se tem muitos cm de cabo, a tal da interferência ou indução. Trance o fio de saída com o GND entre o LM35 e o Arduíno. Outra coisa: no código é usado o A0 como entrada analógica mas nas fotos o A0 aparece vazio. Não entendi.
  12. Um microcontrolador rodando a 16MHz faz umas 15 milhões de instruções por segundo. Apesar da CPU, AVR, ARM e outras modernas executarem 1 instrução por ciclo temos que considerar que as instruções condicionais gastam 2 ciclos quando positivas. Assim sendo em 1,67ms dá para rodar umas 25 mil instruções. ou se o motor estiver a 3000RPM umas 8 mil instruções para 10º de ignição. Entenda uma coisa: seu motor é lento quando comparado a capacidade de um microcontrolador mas tem a questão dos cálculos e é aí que o bicho pega. Numa CPU de 8 bits a manipulação de qualquer número que exceda a 255 é trabalhosa. Na programação em C ocupa apenas uma linha mas quando o compilador gera o assembler o buraco é mais embaixo. No último programa que fiz no Arduíno coloquei um cálculo com float. Por achar que estava lento demais adicionei 2 comandos no programa: o primeiro colocava em 1 uma porta que estava sobrando na hora de iniciar as contas. O segundo levava a zero quando terminava as contas. O programa ficava travado no loop no momento da aquisição de dados de tempo. Olhando no osciloscópio descobri que os cálculos com float (uso de decimal) ocupavam 80% do ciclo do programa. Arduíno usa CPU AVR, tem apenas 8 bits, só faz operação rápida para número <=255. O ARM tem 32 bits, só faz operação lenta para número > 4 bilhões. É o processador ideal pára quem tem que realizar cálculos. Por exemplo: se sua necessidade é de 2 casas decimais multiplique o valor inicial por 100 e passe a trabalhar com uma unidade valendo 1 centésimo, ou seja, se seu range de valores vai de zero a 220,00 ele passa a ser de zero a 22.000 ou se quiser de zero a 220.000. Pode parecer loucura mas os 32 bits vão até 4 bilhões numa só operação, num só clock. É muito mais simples do quer trabalhar com float para o processador.
  13. Note que a configuração do Timer1 e a captura do período estão juntas, durante o tempo em que o Timer1 fica capturando o tempo o programa fica preso no loop. Habitualmente se costuma fazer a configuração do timer na inicialização do programa mas o Arduíno é pobre de timers, as bibliotecas de tempo também fazem uso dele. Assim sendo a configuração e a tomada de tempo tem que estar contínuas sem que o programa possa fazer outras funções onde existam delay, milis ou um display que não seja I2C pois todos estes fazem uso do Timer1 para funcionar e você perderia a configuração e uma leitura válida. Feita a tomada de tempo agora você pode fazer outras coisas que venham a utilizar o Timer1. Numa leitura rápida do seu código vi pausas (delay) de meio segundo. Não é tempo demais para deixar o motor sem controle? Volto a insistir: tem uns ARM da STMicroeletronics pelo mesmo custo do Arduíno e com muito mais timers. O STM32F030F4P6 é baratíssimo e outros modelos com mais recursos custam pouca coisa a mais. Além dos timers colocados pela ST também tem mais um timer dentro da CPU para essas temporizações. Sobre você ser iniciante a boa notícia: dá para programar usando a IDE do Arduíno, não vai ter que aprender nada de diferente.
  14. A divisão não gera decimal exceto nas operações com float. O conceito básico de divisão é quantos divisores cabem dentro do número. Assim sendo 1/2 = 0 sobra 1
  15. Infelizmente cometi um erro no post acima. Fiz a analise 2 a 2 e não percebi que com as 3 entradas de presença em 1 a resposta será positiva. O correto é usar uma porta xor com 3 entradas ou mais. As excedentes (se houver) no nível1. Esqueça a cascata, não funciona como foi proposta.
  16. Para lidar com volumes de dados considero C++ mais apropriado. Cria arquivos, indexa, pesquisa fácil. Numa lista de compras a variedade de itens é errática. Criando um arquivo para o cliente em curso tem-se fácil a totalização das compras, emissão de nota fiscal ou lista de compras no caso de ser online. Dá um pouco de trabalho mas a estruturação é de fácil compreensão e isso simplifica futuras ampliações ou modificações. É um banco de dados natural.
  17. @Renato.88Sua proposta funciona assim como uma porta xor de 3 entradas com as presenças entrando nela e o resultado do xor fazendo um AND com a entrada de energia OK. Faz a mesma coisa e simplifica.
  18. @Renato.88 O erro que você observou existe sim.Se B e C estiverem ativos a saída do primeiro xor é zero. Estando D ativo também o segundo xor dará 1 na saída.
  19. Cara, fiz o raciocínio 2 a 2 na montagem do circuito, não pensei nos 3 acionados. Fiz caca! Caca hapens! Tem que utilizar uma porta de 3 entradas ou mais. Por diversão pensei como fazer isso de forma discreta. O xor de n entradas (sem limite, é modular) utiliza 2 transistores por entrada + 3 na análise booleana + 2 na saída totem pole. É simples. Num chute calibrado creio que a transição seja de uns 300ns, o que limita a frequência máxima. Ganhar um campeonato com a rosca piscando... Dependendo das preferências foi dupla felicidade! Boca maldita!
  20. @Elisson Hecavei O desenho 1 e 2 são a mesma coisa. Note que só chega nível1 na entrada da AND se apenas 1 e somente 1 das entradas estiver ativa. Sobre o tratamento dado à entrada de energia: o que faz aquele inversor entre a entrada A e a porta AND? Voltando a falar de porta xor: No primeiro desenho foi usada uma porta xor de 3 entradas e no segundo 2 portas xor de 2 entradas em cascata. É a mesma coisa. Note que, fazendo cascata, conseguimos ampliar o número do portas do circuito de forma infinita, não ficamos presos as limitações de entradas existentes no circuito integrado. Vamos supor que necessite fazer uma função xor entre 6 entradas e que tenha disponível um integrado dual 4-input xor gate (tem vezes que aparece como dual 4-input or exclusive, é a mesma coisa). Usa-se as 4 entradas do primeiro 4-input xor para as 4 primeiras variáveis. a saída deste é ligada a uma das entradas do segundo 4-input xor, as 2 variáveis que sobraram são ligadas em 2 entradas do segundo xor e a entrada que irá sobrar deve ser ligada direto no zero.
  21. Depois de tudo feito é que notei que a função AND dos 3 sensores energizados já viria pronta. Para não perder o trabalho coloquei o A depois da função AND. Fica para a estudante qualquer correção.
  22. @Renata De Pontes Crepaldi Briich você até pode conseguir notas usando sites como este mas te dou um alerta: na minha vida como empregado nunca me pediram diploma. Em poucos minutos de entrevista eu era avaliado. Vai ficar estranho se, para responder uma pergunta, você pedir um tempo para consultar o Google ou qualquer outro site.
  23. Existem XOR de 3 e 4 entradas, idem para AND mas o falstad é limitado.
  24. Ou um ou outro porém sempre com exclusividade. Acho que vi um gatinho!
  25. Fica mais fácil entender o desafio quando se conhece a aplicação. Qual a frequência que pretende utilizar no PWM das cores? Não pode ser baixa demais para não provocar flicker e nem necessita ser muito elevada. Cinema funciona com 24 quadros por segundos e todos gostam do resultado. Fazer um simples teste de frequência ajuda e muito. Quanto mais baixa for a frequência mais simples poderá ser o acionamento. O STM32F030 possui alimentação entre 2.4V e 3.3V e é tolerante a 5V nas entradas e também na saída se esta estiver como open drain. Nos diga qual o transistor que pretende utilizar. O teste de frequência mínima é simples: Escolha qualquer um dos timers que possua ao menos 1 canal de compare, pode ser de 8 ou 16 bits. colocando o clock em 16MHz programe o ARR para FF, só usaremos os primeiros 8 bits, terás uma frequência de 62.5kHz selecione 2 portas para serem entradas analógicas. A leitura será de 8 bits mas os registros vem em 32bits comk 12 significativos coloque 2 potenciometros entre o VDDA e o GND com o cursor na porta analógica. ligue o transistor que acionará o led na saída do compare. deixe o timer correr livremente após essas configurações o loop do programa será simples. Vai em pseudo código: ler a entrada do potenciometro 1 // controle de frequência valor_pot1 = valor_pot1/16 ou shift 4 posições à direita, tanto faz timerX_preescaler = valor_pot1 // isso nos dará entre 244Hz e 62kHz de frequência. O potenciometro 2 será utilizado para o duty do PWM. Se utillizar um timer com 4 canais poderá utilizar 3, um para cada cor, dutys independentes ler entrada do potenciometro 2 // controle de luz R valor pot2 = valor_pot2 / 16 timerXcompare1 = valor pot2 ler entrada do potenciometro3 // controle de luz G valor pot3 = valor_pot3 / 16 timerXcompare2 = valor pot3 ler entrada do potenciometro4 // controle de luz B valor pot4 = valor_pot4 / 16 timerXcompare3 = valor pot4 Fazer as avaliações manuais nos auxilia nas diretrizes finais do projeto. Acima de 30Hz já terá uma boa sensação de qualidade de luz mas, se fizer uma filmagem com a câmera do celular, o flicker aparece. Daí a necessidade dos testes antes de definir os parâmetros. Ir para uma frequência elevada é sempre tentador mas isso nos gera aquecimento por frequência (transições de comutação do transistor). O aquecimento por Rds_on é inevitável e independe da frequência. Quanto mais baixa a frequência mais lerda pode ser a comutação sem provocar grandes calores. Essa é a razão do teste. Se conseguir um transistor que comute bem com 3V3 a simplificação do projeto será ótima. Transistores que comutam bem para 3V3 costumam apresentar o Rds_on esperado para Vgs = 2.5V. O que economizar comprando transistor de alto Vgs vai gastar em triplo com o drive. Se o acionamento é de 12V qualquer VDS =>20V dá conta do desafio. Selecionando o transistor: Este acima (não importa o modelo) mesmo tendo VGSth baixo de 0.7V o próprio fabricante só o recomenda para 4.5V ou mais. Nesse caso teria que utilizar uma saída open drain com um resistor nos 5V para fazer a comutação. Não interessa. Este acima já nos dá um desempenho interessante para VGS de 2.5V. Como cada cor puxa até 250mA teremos a 100% de duty 7,5mW que a 300ºC/W resulta em 2ºC de aquecimento, vai tranquilo. Os micros da ST garantem até 5mA contínuos por porta e bem mais para surtos. Alguns modelos também te dão a seleção da performance de saída, isto é, se vai querer com elevado dv/dt ou não, veja o datasheet e o Reference Manual da família, tem a opção high, medium e low. Para essa aplicação prefira o baixo dv/dt, te possibilita a utilização de um resistor mais baixo. Fazer os cálculos do valor de pico que o gate irá fazer no micro é chato. Prefiro colocar um trimpot de 500R + um resistor de 10R entre o micro e o gate e com um scope de 1 canal (barato, tenho um de 100MHz) ver os surtos de corrente durante as transições e comparar com os valores máximos de surto no manual (uns 20mA). Os transistores utilizados nessa resposta foram os mais baratos que encontrei na Mouser utillizando os parâmetros: mosfetN, VDS entre 20V e 55V, corrente =>1A e custam entre 3 e 6 cents na bobina fechada (2500 peças). Se olhar para os transistores chineses os preços caem 70% mas lembre-se: a qualidade e imagem do seu produto depende da qualidade da matéria prima. Se confia nos chinas... Mais uma coisa: não se empolgue com modelos que, custando a mesma coisa, entregam um Rds_on menor ao mesmo preço. Para baixar o valor a capacitância do gate sobe e a dificuldade de controlar também, a ideia é utilizar o micro direto serm ter que construir drives. Com 120mR de Rds a temperatura sobe apenas 2ºC, então se um transistor de 200mR for mais fácil de trabalhar (menor capacitância no gate) vai deixar de simplificar seu projeto por causa de 2ºC a mais?

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!