Ir ao conteúdo

aphawk

Membro Pleno
  • Posts

    8.316
  • Cadastrado em

  • Última visita

Tudo que aphawk postou

  1. aphawk

    Ponte H com mosfet

    @Jaime , Quais os Mosfets que você está usando ? Paulo
  2. @1hsouza1 , Use o frequencímetro do Proteus, coloque ele em um Led de cada vez, e veja se a frequência está correta. Paulo
  3. @Pietra Ester , Você vai montar no Proteus ? É fácil, não demora e o mais legal é que você pode simular e ver isso funcionando ! Pela complexidade, você está aprendendo o motivo de se usar um microcontrolador para isso, em vez de um monte de CI de porta lógica ! Paulo
  4. @alexandre.mbm , No mundo real esses encoders baratos não fornecem os sinais tão limpinhos como mostram os datasheets .... tem ruído de monte. No caso do Arduíno, tem o agravante das interrupções da base de tempo dele, e acaba perdendo movimentos do encoder em uma velocidade maior. Eu aprendi a controlar muito bem todas as interrupções que podem ocorrer em um projeto, então tenho alguns truques para eliminar essas perdas. Mas isto implica em escrever algumas rotinas em Assembly para manter o controle total, habilitando novamente as interrupções assim que possível para evitar perder algo que possa ter tempos críticos. Isso não é a norma dos programadores atuais, eles não tem conhecimento de stack da CPU, dos registradores, do fato de os microcontroladores PIC e AVR comum não terem prioridade de interrupção , então acontece um monte de problemas nos projetos deles. Existe uma grande diferença entre aprender como funciona o hardware interno de um microcontrolador e programar tudo orientado para esse funcionamento, e um iniciante aprender a programar na IDE do Arduino sem saber os detalhes de todo o hardware .... Enfim, como já disse, esse conhecimento que alguns de nós aqui do CDH ainda possuímos logo será perdido , pois os novos programadores não acham isso necessário, e acabam usando microcontroladores de 32 bits e 500Mhz de clock para fazer coisas que um de 8 bits a 4Mhz faz com um pé nas costas.... Bom, pensando bem esse foi o mesmo motivo que fez com que um Windows 3.1 que ocupava menos de 10 Mbytes num computador virasse um Windows 10 que ocupa mil vezes mais espaço ..... tudo pela facilidade de programação ! Paulo
  5. Pois é, eu não interpretei como varredura de um display não .... ainda mais que isso me lembra do tempo que o display tinha varredura num tubo de raios catódicos kkkkkkk ! E cá entre nós, se isso for um display tipo LCD moderno essa taxa é impossível .... Bom, pelo que foi dado de informação , as respostas estão excelentes kkk ! Paulo
  6. @1hsouza1 , A dica já foi dada [email protected] , vou dar um reforço: Como você não forneceu nenhuma informação adicional, a ideia também vai genérica : Você tem 3 Timers nesse PIC, certo ? Crie uma interrupção para cada um deles, no período de tempo equivalente a cada uma das frequências , e atualize o display em cada uma delas. O correto é você apenas sinalizar via Flag para o programa principal fazer as atualizações, porque pode demorar essa atualização de display, e não é bom uma interrupção demorar muito tempo. Paulo
  7. @Sérgio Lembo , Sim, eles são controladores muito legais, e relativamente baratos. Infelizmente não tem suporte para eles no Bascom, houve uns boatos mas até agora nada ..... Existem alguns microcontroladores novos semelhantes aos velhos Atmegas lançados pela Microchip que são um híbrido AVR/PIC, com muita coisa nova dentro deles, e que são bem baratos também, mas ainda tem muita errata saindo nos datasheets. Sobre usar os encoders, eu fiz a minha rotina em Assembler, usando interrupção nos dois pinos, funciona muito bem mesmo se o encoder sair voando.... uso elas nos meus programas fazem alguns anos, porque a rotina original do Bascom também é uma porcaria, igual às bibliotecas que tem no Arduino... claro que ajuda muito nos Atmegas quase qualquer pino poder ter uma interrupção ! Dá uma olhada nesse CI : AVR128DB28 e família, desde 28 pinos até 64 pinos... olha quanta coisa tem dentro... O Bascom já tem suporte para essa família, tá todo mundo querendo brincar com isso nos Fóruns. Paulo
  8. @carlos.camj , Isto pode te ajudar bastante : USING BRUSHLESS MOTORS WITH AVR E isto também : https://circuitmaker.com/Projects/Details/StefanLuethi/BLDCControl Paulo
  9. @carlos.camj , voce precisa também implementar um dead time, e o sinal não é uma simples onda retangular... creio que conforme a velocidade ir aumentando você tem de compensar a frequência também.... na realidade todo mundo usa um ESC para facilitar o controle, mas nunca ví um ESC trabalhar com mais de 50 Volts .... Paulo
  10. Sim, ela esconde todo o tratamento com o hardware. Mas também "mata" algo muito útil : definir a frequência na qual ocorre o PWM ........ é o tal "engessamento" . Mas nem essa funçãozinha é perfeita, olhe o aviso : "Notes and Warnings The PWM outputs generated on pins 5 and 6 will have higher-than-expected duty cycles. This is because of interactions with the millis() and delay() functions, which share the same internal timer used to generate those PWM outputs. This will be noticed mostly on low duty-cycle settings (e.g. 0 - 10) and may result in a value of 0 not fully turning off the output on pins 5 and 6." Ou seja, não espere precisão kkkkk ! Olha, eu creio que já cheguei no ápice de minha evolução nesta vida : BASIC .... e sou totalmente contra o fato de os usuários não saberem o que existe além da IDE do Arduíno, nunca irão aprender a real mecânica do funcionamento dos hardwares, sempre serão simples programadores, iguais aos que programam para fazer os programinhas que rodam nos PCs da vida, o SO esconde todo o hardware por trás ... Podem achar estranho eu usar uma linguagem tão antiga, mas com ela eu garanto que tudo funciona como eu espero que funcione... Enfim, estamos ficando mesmo obsoletos.... já entendo o que os dinossauros sentiram quando viram o meteoro chegando kkkkk ! Paulo
  11. Bom, me parece que tem uma modulação no duty cycle. O que pode-se fazer é usar um dos Timers do Arduino para gerar o sinal PWM, e alterar o valor da frequência gerada também se for necessário. Agora, a sequência a ser feita em cada fase eu nem faço ideia.... Paulo
  12. @MOR , Eu sou fã de tabelas kkkkkkk , eu montaria direto uma tabela com os 32 possíveis valores e já montaria a saída nela.... isso de fazer AND OR NOR XOR NAND no software até poderia ser feito, mas uma tabelinha com 64 bytes fica bem menor ..... Acho que se for implementar um FPGA ou algo desse tipo aí sim teria de fazer na base das equações mesmo .... Paulo
  13. Pior que você tem razão ! Muitas coisas que eu aprendi na faculdade não tive nenhuma aplicação prática, eu diria que mais de 60% foi só tempo perdido. Paulo
  14. @MOR , Estranhei que o seu não deu igual ao meu. Aí percebi que eu usei nas entradas a tabela do código Morse com valores de ponto e de traço, ao passo que você usou números BCD na entrada. Mas a técnica é a mesma ! Paulo
  15. @alexandre.mbm , Não. Repare a imagem que eu postei do programa que eu usei. Na parte de baixo, saiu a equação que mostra o circuito lógico, que é composto de 4 sub-modulos que são aplicados em uma porta OR de 4 entradas. O que o @MOR disse é que provavelmente nos outros 6 pinos do display irão aparecer sub-módulos que podem ser iguais, então caso tenhamos 3 vezes um mesmo sub-modulo, podemos montar apenas um e derivar a saída dele para outras duas portas OR dos outros segmentos ! Paulo
  16. Bom, para ajudar, eu resolví o primeiro mapa de Karnaugh, para o segmento A do display, considerando nas entradas os valores binários correspondentes do código Morse. Usei um programinha no meu Iphone ( KMAP SOLVER) : É só fazer mais 6 tabelinhas para os outros segmentos .... mais baba que isso só empurrando bêbado na ladeira ( melhor antes ver se não é bêbado pegador kkk ) ! Paulo
  17. @.if , Estás brincando né ??? Já sei que você detesta Karnaugh mas ...... tem de usar ! Um sistema onde entram 5 bits paralelos , e saem 7 bits paralelos é um exemplo perfeito. Mapas de Karnaugh na tabela de entrada e tabela de saída e pronto, assim evita até o CI decodificador para 7 segmentos. É exatamente o que está proposto no enunciado do problema ! São 7 mapas nesta versão, ou se resolver usar um decodificador de 7 segmentos, são apenas 4 mapas. 5 bits são 32 possíveis combinações. Basta deixar o display apagado nas 22 combinações que não correspondem aos números, e decodificar corretamente as 10 restantes. Vai ficar um monte de portas, mas é fácil colocar elas no Proteus e ver funcionar. Paulo
  18. Sim, em 1985 trabalhei junto com um engenheiro muito bom em software, ele projetou um sistema e batizou de SOCO ( Sistema Operacional CONTRAP) , baseado na arquitetura que trabalhávamos na época, Z80A com Z80CTC, e ele criou o sistema em tempo real que fazia isso muito bem .... tinha as prioridades das tarefas, tinha um stack individual para cada uma, flags para conversação entre as tarefas, demorou uns 4 meses para ele escrever e debugar mas depois funcionou muito bem. Usamos isso em uns 3 projetos industriais legais. Era interessante escrever as tarefas para esse sistema, o L80 ( linker ) fazia milagres com as macros.... Mas claro que a base é um sistema onde você tem interrupções com prioridades... já ví tentarem implementar isso em um Atmega48 , mas no final não deu muito certo. Faz muita falta poder escolher as prioridades ..... que saudades dos vetores de interrupção do Z80.... Enfim, cada um sabe onde dói mais o seu calo, né ? Sim, tem razão, mas eu complementaria um pouco mais : se é para uso profissional, a IDE do Arduino não é uma boa escolha. Para aprendizado, sim, mas para uso profissional eu indicaria o C mesmo. Cansei de ver programas do Arduino que só funcionavam direito numa versão específica da IDE .... isso nunca deve ser feito profissionalmente. Paulo
  19. É bem mais complicado do que isso.... Na comunicação real existe uma temporização tanto entre caracteres como de palavras, e ambas são diferentes, e também a velocidade , na forma de palavras por minuto, que pode variar desde algo bem lento como algo um pouco rápido, ou seja, o importante é sempre respeitar a temporização entre os caracteres e palavras, e não a velocidade absoluta da comunicação ! Então um circuito deveria respeitar isso, abrindo um tipo de janela de tempo no qual o caractere digitado seria aceito ou rejeitado, baseado sempre na DURAÇÃO DE TEMPO de um simples ponto ! Mas continuo acreditando que esse exercício não precisa fazer a conversão de caracteres seriais para paralelo... nunca vi um projeto real que fizesse isso com componentes discretos, sempre são usados microcontroladores para isso. Paulo
  20. kkkk é .... fazer na marra como eu fazia desde os anos 80 não é para qualquer um ...... O unico problema que eu vejo no ambiente do Arduino é que é muito complicado para um iniciante trabalhar com várias interrupções ao mesmo tempo. Algumas bibliotecas atrapalham bastante, e algus comandos da IDE também podem usar alguma coisa e dar pau ..... O programa que eu mostrei o finalzinho num outro tópico, feito em Basic e Assembler, é o motivo de eu preferir ficar no ambiente idoso do Basic que eu domino bem : Tenho o Timer1 gerando interrupção de base de tempo , fazendo leituras do ADC e normalizando os possíveis ruídos. Tenho o Timer0 gerando interrupção como Counter para transferir dados por pulsos com outro equipamento. Tenho uma interface serial gerando interrupção na comunicação USB serial a 9600 Bauds com o micro. Tenho uma interface I2C conversando com o display, a 100 Khz, também por interrupção. Fora essas interrupções, tenho uma outra interface serial por software a baixa velocidade ( 1200 Bauds ) enviando um log para outro equipamento. E tenho o Timer2 gerando sinal PWM para modular a velocidade de um motor DC. No meio disso tudo, tenho um Rotary Encoder usando interrupção dos pinos do Atmega328, e mais 3 botões que preciso ler as entradas , um deles gera interrupção também .... Quem já tentou usar um rotary encoder no Arduino já sabe a porcaria que implementaram, falha toda hora e se girar rápido demais perde um monte de pulsos. Não posso perder de jeito nenhum as interrupções geradas pela porta serial, a 9600 Bauds, e sei que o buffer de recepção por hardware do Atmega é de apenas 1 byte. Para o programa rodar , não perder dados do micro, não perder dados dos outros equipamentos, o display não perder dados, o rotary não falhar, a comunicação por trem de pulsos não perder dados, tudo isso precisa ser muito bem controlado, usando rotinas em Assembler para garantir o total controle, e muitas vezes desabilitando as interrupções para fazer algo muito crítico e reabilitando elas depois. Isso eu consigo facilmente pois sei TUDO o que o Bascom utiliza, e assim planejo o meu programa. Fazer isso tudo usando a IDE do Arduino, a qual eu não domino, com bibliotecas de monte as quais eu também não escrevi , me parece uma doideira enorme .... por isso que fico no meu velho ambiente onde dificilmente serei surpreendido por algo imprevisto na linguagem. Paulo
  21. @alexandre.mbm , Sim, claro que o ESP-32 é bem mais potente que um simples Arduino, mas usar o hardware do Arduino é algo muito simples, e usar o hardware do ESP-32 já é bem mais complicado. Isso se traduz numa facilidade programação bem maior , com milhares de exemplos disponíveis para o Arduino, contra poucos exemplos para o ESP-32. Muitas vezes preferimos trabalhar com aquilo que dominamos, mesmo sendo menos potente e talvez dando mais trabalho na programação, do que nos embrenharmos em um caminho desconhecido. Aliás, eu sou um perfeito exemplo disso : faço quase tudo em Basic, usando os velhos Atmegas e o Proteus na simulação, e sempre consigo chegar no produto desejado bem rápido. Paulo
  22. @Pincipi , O problema é a ANATEL aceitar um país que não seja os USA e um laudo que não seja do FCC ....... teria de ser um laboratório que ela reconheça. Pesquise sobre isso antes de gastar dinheiro .... Paulo
  23. @alefe zanella , Eu sou do tempo dos modens .... então eu usaria esse ESP-32 exatamente como um modem, usando o set de comandos AT .... assim isolo tudo do Arduino e uso os ESP-32 como se fossem um modem full duplex ou half-duplex, virando um simples link serial ...... Procure exemplos desse tipo com o ESP8266 que são bem numerosos, então apenas use os comandos equivalentes do ESP-32 ok ? Para sua referência : https://docs.espressif.com/projects/esp-at/en/latest/esp32/AT_Command_Set/Basic_AT_Commands.html Veja este vídeo : https://www.youtube.com/watch?v=xOLG-88Ld3A Paulo
  24. @arturfreddy e @alexandre.mbm , Ele está em algum lugar aqui do Fórum, vou procurar o tópico inicial e posto aqui, pois vale a pena rever tudo o que está lá escrito no Fórum, o manual tem uma parte básica de quase 80 folhas, mas o tópico completo tem muita informação legal que não está na apostila, são vários anos de desenvolvimento. A apostila foi feita em 2012, mas o tópico terminou em 2018 se não me engano. Por isso que recomendo olhar as várias paginas de postagens nesse tópico ok ? Link para o tópico inicial : https://www.clubedohardware.com.br/forums/topic/937085-projetos-com-avr-design-programação-em-basic-e-assembly/?do=findComment&comment=5252683 Link para baixar o Tutorial : https://www.clubedohardware.com.br/applications/core/interface/file/attachment.php?id=129218 Percebi que eu também coloquei um link para o manual atualizado, não sei se é o mesmo arquivo do link de cima, vou postar aqui na dúvida : https://www.4shared.com/rar/x8u4oNuF/Tutorial_AVR.html Para quem acha que o Bascom só serve para "coisinhas" : Programa usando Basic e um monte de Assembler juntos, funcionando maravilhosamente bem, com quase 4.500 linhas , num Atmega328P ! Paulo
  25. Alexandre, esse CI existe sim, é o CD4511 , no Proteus aparece só 4511 embaixo ..... Ele já é um decodificador de Binário 4 digitos para display de 7 segmentos. Usei muito ele fazem muitos anos, junto com o CD4029 em um circuito para usar nos rádios PX .... 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!