-
Posts
8.316 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que aphawk postou
-
@albert_emule, Opa legal, valeu Albert, vou baixar agora mesmo ! Obrigado ! Paulo
-
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
@Intrudera6, Caramba, mais recursos ? Já tem muito mais comandos do que deveria, tem várias maneiras de se fazer a mesma coisa, até confunde um pouco hehehe. O que que você acha que está faltando ? Eu posso passar para Mark, ele sempre pede sugestões para a melhoria. Infelizmente, a estrutura de Hardware dos ARMS não é nem um pouco parecida, e teria de ser criada uma versão diferente, apenas para os Arm's mesmo. Preste atenção nisto : existem sim um bom compilador basic para os ARM's !!! E suporta um montão de kits que você encontra baratinhos no Ebay ! Dá uma olhada aqui : http://www.mikroe.com/mikrobasic/arm/ Paulo -
Pessoal, Estava aqui sofrendo para eliminar alguns "zumbidos" nos circuitos de áudio, causados por um transformador de força que fica dentro da caixa do pré-amplificador, e que tem um 60 Hertz danado, deve ter um núcleo de baixíssima qualidade ...... Resolví então que a melhor solução é tirar esse maldito de uma vez por todas, e fazer uma pequena Fonte Chaveada. A dificuldade é apenas uma : preciso de 3 tensões diferentes, sendo duas simétricas : - + 5V por 600 mA para alimentar os circuitos digitais e relé - + 19V por 300 mA para os operacionais ( vou usar regulador 15V ) - - 19V por 300 mA para os operacionais ( vou usar regulador 15V ) Em resumo, são apenas 15 Watts, e a entrada de tensão pode ser apenas 110V, mas nada impede suportar também 220V. Ví que existem vários fabricantes, e várias famílias de CIs para isso, e fiquei em dúvida sobre qual utilizar, pois gostaria de poder utilizar o software de projeto do próprio fabricante. Mas nem todos os CI's que pesquisei são fáceis de se encontrar. Gostaria de uma fonte que fosse simples e com componentes fáceis de encontrar no mercado. Quais CI's vocês indicam ? E se tiver algum projeto já pronto para partir dele, agradeçeria bastante ! Obrigado ! Paulo
-
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
Infelizmente, é uma arquitetura ARM, não AVR, e não tem suporte no momento. Talvez pelo MikroBasic, tem de olhar no site deles. O máximo que voce pegar para usar o BASCOM é um Arduino MEGA2560, que embora tenha a mesma performance dos AVRs tradicionais, tem um baita monte de memória RAM e FLASH para programar. Muito mais do que eu teria saco para escrever, com certeza ! Paulo -
Opa legal meu amigo , boa diversão ! Paulo
-
@MOR, Pois é, eu aprendi num IBM370 se me lembro bem ... haja papel perfurado kakakaak ! @marcoshenri, Infelizmente eu também não sei programar no Arduíno, prá mim é igualzinho a C.... ou seja, simbólico demais prá minha cabeça.... Mas é muito fácil, existe uma função prontinha : TONE() , onde voce define a frequência e a duração dela, assim resolve o problema sem ter de inventar nada ! http://arduino.cc/en/Reference/Tone Boa diversão ! Paulo
-
@marcoshenri, Calma, voce não vai ter o problema do bouncing quando usar o sensor, esse problema ocorre quando você está simulando o sensor no protoboard, pois tanto fios no contato ou chaves geram ruído, ok ? Paulo
-
@marcoshenri, Isso que você postou eu já sabia... o que falta é exatamente o circuito que leva o pulso até o Arduíno, é ele que me importa. Pelo que eu me lembro, você usar o pino com entrada pela IDE do Arduíno acaba deixando ele em alta impedância, o ideal seria ligar o resistor interno de Pull-Up, ou acrescentar um externo mesmo. Estranhei porque você dizia que no teste do Proteus funcionou e no protoboard estava mais acelerado, só pode ser algum problema na entrada do circuito. Ah, outra coisa, você disse logo acima que está usando a interrupt 0, mas lá em cima, no seu programa, está Interrupt 1 , ok ? Para testar, tem um jeito fácil, use um canal PWM do Arduíno, e gere uma frequência de onda quadrada, por exemplo 200 hertz, e aplique essa saida à sua entrada, faça as contas e veja se deu certo, ok ? Assim, não vai ter ruídos , e voce evita o bouncing. Paulo Mor, Gostei do seu fluxograma, é o mesmo jeitao dos que eu faço... você deve ter aprendido a programar em Fortran, acertei ????? Paulo
-
Poste o esquema de ligação de seu sensor de velocidade, eu ví que você usa um pino com interrupção, mas preciso saber exatamente o que que está ligado nesse pino. Paulo
-
@albert_emule, Entendí, obrigado pela explicação. Paulo
-
@cesardelta1 Hehehe, eu também não resisti em contar.... Depois de um tempo, eu coloquei a lampada no alto da torre, com um pino aterrado, e o outro apontado para cima, era só transmitir e pronto, parecia um OVNI, ficava piscando conforme falava, imagina o efeito disso de noite .... Mas me deu uma baita encheção de saco depois.... A vizinhança começou a se queixar de interferência e vira e mexe vinha o Dentel me visitar.... O mais legal era que mesmo de tarde vinha vizinho tocar a campainha de casa, mesmo eu estando na faculdade, e ficavam discutindo com minha irmã, dizendo que era eu que atrapalhava a TV deles..... Eu acabei comprando uma sucata de rádio, troquei o serial com o meu, e pedí para o Dentel lacrar..... Quando vinha qualquer um em casa reclamar, minha irmã mostrava o rádio totalmente lacrado , com os selos de lacração, só assim pararam de me encher. Paulo
-
@Zafar, Eu já ví isso que você quer fazer ! Um amigo meu morava na Vila Maria, a menos de 300 metros de uma antena enorme de ondas curtas que tinha lá, ele fez uma bobina enorme, sintonizada, e conseguia acender uma lampada de 10 watts !!!!! @MOR, Eu fiz algo parecido, eu tinha uma torre de 20 metros com uma antena de alto ganho, direcional, uma quadra-cúbica de 4 elementos, polarizada na Vertical. Ligava nela um amplificador de RF, entregava 1000 Watts PEP, mesmo ao pé da torre, bastava segurar um polo da fluorescente, e levantar alto, a lampada brilhava e ainda modulava o brilho conforme o áudio SSB..... Paulo
-
@cesardelta1 Não estou falando de uma fonte regulada, eu preciso apenas retificar e por um capacitor de filtragem. A parte de regulação eu sei como fazer, mas existe diferença em como especificar o transformador , caso seja CT, ou seja normal. A minha pergunta é justamente para eu entender a diferença nos dois tipos, ok ? Paulo
-
@albert_emule, Quer dizer que se eu preciso montar uma fonte tipo 12V e que forneça 1A, qual seria a especificação para eu comprar no mercado nos dois casos , com center tap, e sem center tap ? Por exemplo, 12 + 12V 1A se for CT e 12V / 1A se for normal ? Ou muda a corrente nos dois casos ? Sempre me confundo com isso, então sempre compro com o dobro da corrente kkkkk ... Paulo
-
Grande Faller, Sim, foi com esse kit que eu começei a aprender eletrônica, com seus transistores AF114 e AC126 ! Se não me engano, eram 23 montagens, e o microfone de cristal era ótimo, servia como um pequeno alto-falante de alta impedância. Cansei de montar todas as experiências muitas vezes, usei esse kit por mais de cinco anos ! Paulo
-
Que tal pensar nisto : você vai na loja e compra um transformador 12+12 volts com 1A de corrente. Se a gente ligar ele com center tap, qual a corrente que poderemos fornecer à carga ? 1, 2, ou 0,5 A ??? Agora, resolvemos mudar o circuito, não vamos usar o center tap, e usaremos como um transformador comum de 24 volts. Nessa condição, com certeza a corrente fornecida será a metade da anterior, ou teremos um milagre pois a potência do transformador é fixa. Também sempre fico com dúvida quando preciso comorar um transformador.... Paulo
-
Olha lá no site..... Tem umas variantes interessantes, o cara até consegue retirar um pouco de tensão para alimentar um pequeno amplificador, tudo diretamenta da própria antena receptora. Quando eu tinha uns 14 anos ( 40 anos atrás ! ), eu ví esse circuito numa revista Antenna, e meu pai comprou os componentes para eu montar, e funcionou , se não me engano foi com o OC74 .... , mas só pegava algumas estações. Mas tinha um diodo a mais, que pode ser curto-circuitado para melhorar a sensibilidade, e é esse que foi postado aí em cima. Com o diodo, fica mais fácil de entender o funcionamento. 30 anos e tá se achando velho ??????? Kakakakak estou ferrado !!!!!Olha, a maior alegria que eu tive foi quando montei um galena, foi impressionante ver que funcionava sem nenhuma pilha.... Alguns anos mais tarde, montei um receptor de FM, com 4 transistores, fiquei uma semana enrolando bobina e mexendo nos núcleos, até receber uma estação, aí fiquei um mes com o radiozinho ligado dia e noite..... Bons tempos aqueles.... É bom relembrar estas coisas, ainda mais hoje em dia, onde se compra tudo prontinho. Paulo
-
Mroberto, Funciona sim, esse circuito é um clássico, mas só o pessoal mais antigo conhece ! Surpreenda-se, vale a pena, procure lá pela metade da página : http://www.neazoi.com/xtalpage/ Paulo
-
Albert, Por incrivel que pareça, o circuito apresentado funciona, pois nada mais é do que o velho GALENA que voce mesmo citou, onde o autor está usando um transistor de germânio para fazer a função do diodo de germânio..... é só um "disfarçe" do circuito heheheh Tem duas condições para isso funcionar : 1 - Estar próximo das estações 2 - O fone de ouvido tem de ser de alta impedância, tipo de cristal piezoelétrico. E pensar que os "antigos" faziam um receptor desse tipo , mas com diodos tipo "Bigode de Gato" , com cristal de galena, daí vindo o nome original do circuito. Paulo
-
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
MOR, Perfeito ! É muito importante um bom conhecimento do hardware do microcontrolador, e eu indico também pesquisas sobre usos em condições fora das espeçificadas no datasheet ! Sempre existe algum jeitinho de se contornar limitações, abrindo mão de bits de resolução ou de velocidade, ou com experimentação na bancada. Por exemplo, nos casos dos Atmega328, temos overclock com cristal externo de 32 Mhz, temos PWMs de 250 Khz com 5 bits, temos conversão A/D com velocidade de 250 Khz em 8 bits, temos conversor A/D com 12 ( ???? !!!!!! ) bits de resolução...... E nada disso consta como possível no datasheet ! O caminho que voce está seguindo vai ser perfeito. Paulo -
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
Postado po MOR_AL : Aí é que vem a minha dúvida. Porque você usa o BASCOM, cujo free é limitado em 4KB? Minha suposição é que seria equivalente a uns 1k3 em asm, o que é pouco. MOR_AL Bom, nao tinha reparado nisto que voce perguntou. Não é essa a comparação de tamanho que voce imagina.... Se voce quiser escrever um programa complexo, com I2C, Internet, e coisa parecida, vai ver que não é o tamanho do código gerado que importa. é a facilidade em escrever e debugar que vale ! voce lembra do Windows 3.11 ???? O kernel dele era todo puro Assembler ! O bicho voava mesmo com processadores a 40 Mhz. E para instalar, usava 13 disquetes de 1.2 Mb, e ocupava menos de 5 Mb instalado. Quando surgiu o Windows 95, ele já usava um kernel misto, muita coisa em C. voce reparou a diferença de tamanho que os dois programas instalados ocupavam ? De 5 Mb passou para mais de 350 Mb , e virou uma carroça de tão lento que ficou. Se ficou tão lento, e tão grande, porque que a Microsoft não fez tudo em Assembler ?????????????? Hehehe voce já sabe a resposta ! Iria demorar muito mais tempo para debugar, e não poderiam dividir a "escrita" do programa em tantos programadores , iria ser um caos fazer o debugger. Lembro que o Windows95 não tinha nada de Internet ! Isso que eu escreví acima é o que realmente importa. Tempo, hoje, é muito mais caro do que um microprocessador um pouco maior. Mais um exemplo : Desenvolví em 4 dias um aparelho de som que ficou fantástico, usando um Atmega328P, um TDA8425 como circuito controlador de áudio, com duas entradas selecionáveis, controle de volume, grave e agudo; um amplificador para fones de ouvido hi-fi feito apenas com operacionais, coloquei um módulo de FM TEA5767, um display 16x2 e tudo controlado por IR ! A conversa com o TDA e o TEA é feita em I2C. Fui escrevendo o código, sem otimizar nada, e o programa final ocupou 32% da memória Flash. Como sobrou espaço, estou querendo implementar também um relógio de tempo real com um RTC, e um receptor de áudio via Bluetooth, para eliminar cabos de conexão. Detalhe, o receptor Bluetooth usa interface serial, e o RTC também usa I2C. Já imaginou fazer isto em Assembler ? Em 4 dias eu idealizei o hardware, montei tudo numa placa padrão, escreví o software em Bascom, fiz o debug, e está funcionando que é uma beleza ! Claro que partí de outros projetos que eu já havia feito. O programa feito até o momento, que não tem relógio nem Bluetooth, tem tamanho menor do que 12K. Poderia usar um Atmega16 que ainda daria para fazer o relógio e o Bluetooth. Segue esquema : Como eu não pretendo fabricar nada, para mim não importa o processador, importa o tempo. Creio que para quase todos aqui no Fórum, isto é o que mais importa : a facilidade de atingir o seu objetivo. Paulo -
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
Pessoal, Reparei que muita gente tem interesse em fazer um sistema que decodifique sinais Infravermelhos ( IR ) padrão NEC. Aliás, como curiosidade, tenho 6 controles remotos aqui no quarto, e os 6 usam esse padrão, tanto a Panasonic, como Samsung, e a LG , entre outros usam esse padrão. Assim, disponibilizo o codigo fonte no Bascom, de um programa que serve de início para qualquer aplicação, pois ele pode executar qualquer operação que voce colocar no programa. Chamei isto de um pequeno processador de comandos. Pode também rodar em um Arduíno , sem problemas. Basta ligar um receptor do tipo TSOP 1838 ou qualquer equivalente, desde que seja para 38 Khz. O sensor tem de ser ligado ao pino 4 ( INT0) do microprocessador, diretamente, sem nenhuma resistencia. Apenas faça um pequeno filtro RC na alimentação do TSOP, verifique a documentação fartamente encontrada na Internet. Se quiser, pode ligar um display LCD também, o programa prevê um modo de DEBUG, onde voce vai ver qual o código que cada tecla gera ao ser pressionada, assim fica fácil escolher qual tecla vai fazer qual função. Se usar um display em pinagem diferente à que eu usei, basta mudar os pinos no programa. Por último, se voce usar outro microprocessador tipo ATMEGA , basta modificar e recompilar para ele. Como é usado a INT0 e o Timer0, presentes em quase todos microprocessadores AVR, pode-se usar até mesmo a família ATtiny para isso ! Segue o programa : '--- Programa decodificador de código IR NEC normal ----------------------------'' Este programa é uma melhora de um programa publicado no site do BASCOM,' em um Application Notes.' Fiz algumas melhoras para corrigir algumas temporizações e para tratar' melhor o caso de uma tecla mantida apertada.' E aproveitei e coloquei uma estrutura de processador de comandos'' O padrão NEC normal envia duas informações : a primeira é um código fixo' determinado no controle remoto; e a segunda, que é a que nos interessa,' é o código único de uma determinada tecla do controle remoto.' Aqui, ignoro o código do controle remoto, uso apenas o das teclas.'' Existe uma variante do NEC, que envia dois bytes para cada tecla, mas até' hoje não encontrei nenhum controle desse tipo.' Porém este programa pode ser fácilmente modificado para esse padrão, ou' para se obter o código do controle remoto.'$regfile = "m328pdef.dat"$crystal = 8000000 '8 MHz Interno$hwstack = 64$swstack = 64$framesize = 100'---- Declaração de sub-rotinas ------------------------------------------------Declare Sub Processa_comando'---(LCD)-----------------------------------------------------------------------' usado para o modo TESTEConfig Lcd = 16 * 2Config Lcdpin = Pin , Db4 = Pd.5 , Db5 = Pd.4 , Db6 = Pd.3 , Db7 = Pd.1 , E = Pd.6 , Rs = Pd.7'---( hardware)-----------------------------------------------------------------Config Portd.2 = Input' O sensor IR vai ligado ao pino Portb.2Config Portb.0 = OutputLed Alias Portb.0' usei um Led no Portb.0 que fica aceso e pisca quando recebe sinal IR' Facilita para ver se tá recebendo algum comando....'--- DIMENSIONAMENTO DAS VARIÁVEIS ---------------------------------------------Dim Teste_codigo As ByteDim Tik As Word 'counter of teaks of timerDim Byt As Byte 'counter accepted bitDim Repeat_flag As Bit 'flag of repetitionDim Start_flag As Bit 'flag of start conditionDim Flag_dado As Bit 'flag indica que tem dado valido recebidoDim Address As Byte 'byte of addressDim Command As Byte 'byte of commandDim Address_1 As Byte 'direct byte of addressDim Command_1 As Byte 'direct byte of commandDim Address_0 As Byte 'indirect byte of addressDim Command_0 As Byte 'indirect byte of commandDim Summa As WordDim Ult_command As ByteDim Dado_valido As BitDim Last_command As Byte'---- Tabela de comandos a serem decodificados ---------------------------------' Adicione tantos quantos forem necessáriosConst Inc_vol = 98Const Dec_vol = 162Const Inc_tr = 168'---- DEBUG --------------------------------------------------------------------Const Teste = 0 ' NORMAL OU MOSTRAR CODIGOS DO IR NEC' 0 é o processamento normal, 1 mostra dado recebido no display'--- INICIO PROGRAMA -----------------------------------------------------------Teste_codigo = TesteLed = 1Waitms 200InitlcdClsCursor OffConfig Timer0 = Timer , Prescale = 256 '16000000/256=62500 HzConfig Int0 = Falling 'Interruption on FallingStop Timer0Enable Timer0Enable Int0Timer0 = 253Enable InterruptsOn Timer0 TikersOn Int0 Infrared 'work on interruptionCursor OffClsDado_valido = 0Command = 0Last_command = 0'###############################################################################Do 'Main cycleIf Dado_valido = 1 Then If Repeat_flag = 0 Then If Teste_codigo = 0 Then Dado_valido = 0 Processa_comando Else Locate 1 , 1 Lcd Space(16) Locate 1 , 1 Lcd Command End If Waitms 200 Else Command = Last_command If Teste_codigo = 0 Then Dado_valido = 0 Repeat_flag = 0 Processa_comando Else Locate 1 , 1 Lcd Space(16) Locate 1 , 1 Lcd Command' não usei o Wait senão fica muito lenta a repetição devido ao LCD... End If End IfEnd IfLoopEnd'############################################################################### Tikers: 'work on timer Timer0 = 253 '31250/(256-253)=10416,66 Hz (96 e(e;n') Incr Tik If Tik >= 1150 Then 'if 1200 teaks, have thrown all in source condition Tik = 0 Repeat_flag = 0 Start_flag = 0 Address_1 = 0 Command_1 = 0 Address_0 = 0 Command_0 = 0 Address = 0 Command = 0 Led = 1 Stop Timer0 End If Return '############################################################################## Infrared: 'work on interruption Start Timer0 Toggle Led If Tik >= 130 And Tik < 145 Then 'if has happenned from 139 before 150 teaks - "START" Address = 1 Repeat_flag = 0 Start_flag = 1 Address_1 = 0 Command_1 = 0 Address_0 = 0 Command_0 = 0 End If If Tik >= 110 And Tik < 125 Then 'if has happenned from 116 before 138 teaks - "REPETITION" Address = 2 Repeat_flag = 1 Start_flag = 0 Dado_valido = 1 End If If Tik >= 18 And Tik < 26 And Start_flag = 1 Then 'if has happenned from 22 before 115 teaks - have taken "1" Incr Byt If Byt < 9 Then Shift Address_1 , Left Address_1 = Address_1 + 1 End If If Byt >= 9 And Byt < 17 Then Shift Address_0 , Left Address_0 = Address_0 + 1 End If If Byt >= 17 And Byt < 25 Then Shift Command_1 , Left Command_1 = Command_1 + 1 End If If Byt >= 25 Then Shift Command_0 , Left Command_0 = Command_0 + 1 End If End If If Tik >= 8 And Tik < 18 And Start_flag = 1 Then 'if has happenned from 10 before 21 teaks - have taken "0" Incr Byt If Byt < 9 Then Shift Address_1 , Left End If If Byt >= 9 And Byt < 17 Then Shift Address_0 , Left End If If Byt >= 17 And Byt < 25 Then Shift Command_1 , Left End If If Byt >= 25 Then Shift Command_0 , Left End If End If Tik = 0 If Byt = 32 Then 'if have taken 4 bytes, check correctness a receiving a command 'If Address Or Command 16 -bit , Check Does Not Pass Summa = Address_0 + Address_1 If Summa = 255 Then Address = Address_1 Dado_valido = 1 Else Dado_valido = 0 Start_flag = 0 Repeat_flag = 0 Dado_valido = 0 Command = 0 Address = 0 End If Summa = Command_0 + Command_1 If Summa = 255 And Dado_valido = 1 Then Command = Command_1 Last_command = Command Dado_valido = 1 Else Start_flag = 0 Repeat_flag = 0 Dado_valido = 0 Command = 0 Address = 0 End If Byt = 0 Repeat_flag = 0 Start_flag = 0 Stop Timer0 Led = 1 End If Return'###############################################################################'--------- SUB ROTINAS -------------------------------------------------------Sub Processa_comando' Aqui é processado o codigo recebido' Basta acrescentar estruturas IF para cada código a processar.If Command = Inc_vol Then' se foi recebido o código 98' coloque aqui o seu códigoEnd IfIf Command = Dec_vol Then' se foi recebido o código 162' coloque aqui o seu códigoEnd IfIf Command = Inc_tr Then' se foi recebido o código 168' coloque aqui o seu códigoEnd IfEnd Sub Boa diversão. Paulo Minha inclusão aqui... -
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
Opa, nova aparência do Fórum ficou legal, mas vou ter de instalar um programa anti-anúncios no Ipad, tá muito difícil de ler ou postar, toda hora aprece um maldito anuncio que só some se clicar nele.... Que saco ! Tenho algumas novidades para postar, assim que resolver isso.... Paulo -
Hoje temos módulos muito superiores, este aqui é um dos mais usados com um excelente custo-benefício, lembre-se de que você vai precisar de dois deles. http://produto.mercadolivre.com.br/MLB-521040534-modulo-wireless-nrf24l01-24ghz-transceiver-rf-arduino-_JM Paulo
-
Boa dica Mor, deve ser isso, diferença nas frequências. Quem sabe ainda dá para salvar a brincadeira tentando o ajuste. 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