-
Posts
8.316 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que aphawk postou
-
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
Ok, já respondí, quando terminar o seu projeto, poste aqui o projeto completo, para ajudar a mais pessoas, ok ? Um abraço ! Paulo -
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
Heheheh isso acontece..... Pode desconsiderar o velho porque tudo o que tinha nele está também no novo, além de ter os programas-fontes e os arquivos de simulação tudo prontinhos prá rodar !!!! Aquela sua aplicação, que voce disse no outro tópico, fica muito fácil de fazer em Basic mesmo, é só voce acompanhar o tutorial e estudar pelo menos uns 3 projetos do início, aí já dá para fazer o que voce precisa, ok ? Aí, se voce resolver montar o projeto, pode tanto usar um protoboard maior e montar tudo inclusive a parte do microcontrolador, como comprar uma plataforma ARDUÍNO simples, eu recomendo o famoso Uno R3, barato e super-documentado com zilhões de aplicações na NET; aí voce só tem que mudar no BASCOM o tipo de processador, o clock utilizado, e as portas que voce quiser utilizar, e usa um pequeno protoboard externo só para montar os circuitinhos externos, ok ? Para programar , voce usa o soquete ICSP de 6 pinos que tem em todos os Arduínos. Todo o procedimento de gravação com o PROGISP está detalhado no tutorial, assim fica bem fácil começar ! Enfim, boa diversão !!!! Paulo -
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
Oi lpdant, Como assim não consegue baixar ? Acabei de verificar, 8 pessoas já baixaram, e o link está ok, acabei de testar. O que que acontece ? Paulo -
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk respondeu ao tópico de aphawk em Microcontroladores
Pessoal, Comprei um sensor baratinho ( R$ 13,00 ) de umidade do ar e temperatura, que é o DHT-11, chegou ontem, e não tive tempo de incluir o projetinho no tutorial. Só depois que ele chegou é que ví que embora ele seja do tipo 1-Wire, o protocolo é proprietário, isto é, não segue nenhum padrão !!! Tive de baixar o PDF dele e procurar mais dicas na NET para fazer isso funcionar..... Só agora conseguí terminar o projetinho, ficou simples e funcional; vou postar aqui o projetinho completo com o programa para quem precisar. O esquema eletrônico é exatamente o mesmo que eu usei no Tutorial para o Controle de Cooler com 1-Wire, a única diferença é a troca do sensor pelo DHT-11. Eu encontrei esse programa práticamente pronto na Net, reproduzo aqui , modificando para o meu caso, e acrescentei os comentários para explicar o programa. O site que encontrei foi o AVRproject.ru . Mais informações sobre o funcionamento do DHT-11 no link abaixo : http://embedded-lab.com/blog/?p=4333 $regfile = "m48pdef.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 Cursor Off Cls Declare Sub Get_th(t As Byte , H As Byte) 'vamos ligar o sensor no pino B.0 Dht_put Alias Portb.0 ' aqui usamos como saída Dht_get Alias Pinb.0 ' e aqui usamos como entrada ! Dht_io_set Alias Ddrb.0 ' aqui mudamos entrada < - > saída Dim T As Byte 'Temperatura Dim H As Byte 'Umidade Dim Crc As Byte 'CRC do medidor Dim Mybyte As Byte Dim Sensor_data As String * 40 'buffer para os 5 bytes Dim Tmp_str8 As String * 8 'string temporária para receber 8 bits Dim Count As Byte 'contador para os bits recebidos Enable Interrupts Set Dht_io_set Set Dht_put Lcd "AVRproject.ru" Lowerline Lcd "DHT11 sensor" Do Waitms 1500 Call Get_th(t , H) Cls Lcd "TMP: " ; T ; "C" Lowerline Lcd "PHP: " ; H ; "%" Loop Sub Get_th(t As Byte , H As Byte) Count = 0 Sensor_data = "" Set Dht_io_set 'vira saída Reset Dht_put 'nivel 0 na saída Waitms 25 'tempo de espera pro dht11 25mseg Set Dht_put 'volta nivel 1 na saída Waitus 40 'espera 40 useg Reset Dht_io_set 'vira entrada Waitus 40 'espera mais 40 useg If Dht_get = 1 Then 'se continua 1 tem algo errado H = 1 'pois deveria estar em 0 ! Exit Sub End If Waitus 80 'espera 80 useg If Dht_get = 0 Then 'agora tem de estar 1 ! H = 2 'se tiver 0 , deu erro Exit Sub End If While Dht_get = 1 : Wend 'espera iniciar transmissão Do While Dht_get = 0 : Wend 'começou a transmissão Waitus 30 'voltou a nivel 1, espera 30 useg If Dht_get = 1 Then 'se apos 30 useg continua 1, então o bit é 1 Sensor_data = Sensor_data + "1" 'coloca 1 no buffer de dados While Dht_get = 1 : Wend 'espera esse bit 1 terminar Else 'se apos 30 useg virou 0, então o bit é 0 Sensor_data = Sensor_data + "0" 'coloca zero no buffer End If Incr Count ' incrementa contador de bits Loop Until Count = 40 ' repete para 40 bits totais Set Dht_io_set Set Dht_put Tmp_str8 = Left(sensor_data , 8) 'os primeiros 8 bits são a umidade H = Binval(tmp_str8) 'Vamos transformar para valor numérico Tmp_str8 = Mid(sensor_data , 17 , 8) 'estes 8 são a temperatura T = Binval(tmp_str8) Tmp_str8 = Right(sensor_data , 8) 'os ultimos 8 são o CRC Crc = Binval(tmp_str8) ' Mybyte = T + H ' o CRC é a soma da umidade + temperatura If Mybyte <> Crc Then ' considerando 8 bits H = 3 ' se não bateu, erro ! End If End Sub 'final da subrotina Paulo -
Projetos com Avr : Design, Programação em Basic e Assembly
aphawk postou um tópico em Microcontroladores
Pessoal, Segue um novo tutorial, orientado para os principiantes, sobre o uso de microcontroladores AVR ( Atmega, Attiny ) em vários tipos de projetos. Conforme os projetos vão evoluindo, mostro também como pode ser muito importante o uso do Assembly dentro do programa em Basic. Isto torna totalmente desnecessário, (melhor dizendo, obsoleto !) o uso de linguagem C para qualquer tipo de programa, mesmo os de temporização muito crítica. Apresento os programas-fontes, os objetos da compilação, e os arquivos de simulação do ISIS, tudo incluído para facilitar. Muitos dos projetos aqui neste tópico são inéditos, e conforme vou apresentando, vou explicando muitas técnicas bem avançadas para conseguirmos atingir os objetivos utilizando sempre um hardware de baixo custo. Lembro aqui que quase sempre podem ser utilizadas as plataformas ARDUÍNO, bastando adequar os esquemas para o hardware escolhido ! O foco foi dado no uso do BASCOM, que possui versão gratuita para gerar objetos até 4K, e a Simulação dos projetos, utilizando o ISIS do PROTEUS. Assim, fica bem mais fácil para todos fazerem os seus projetos, e rodar a simulação no ISIS, antes de partir para a montagem física. Este novo tutorial é uma evolução natural do antigo tutorial escrito por mim faz algum tempo, e este novo substitui totalmente o antigo. Importante -> Acabei de colocar uma versão atualizada, com projetos utilizando sensores de Umidade e de Pressão, bem como utilização de componentes 1-WIRE e I2C com tensões diferentes à do AVR. Esta nova versão tem agora 169 páginas ..... Mas mesmo após ler o tutorial, a continuação natural dele está aqui neste tópico, que já possui muita informação extra e avançada. Boa diversão e um excelente aprendizado a todos. Paulo Tutorial_AVR.zip Tutorial_AVR.zip -
Vou tentar descrever a técnica de multiplexação : Como sabemos, a persistência retiniana faz com que percebamos como contínua qualquer visualização discreta, desde que essa visualização seja maior do que 30 vezes por segundo. Claro que isso varia um pouco de pessoa para pessoa, mas em tese, se fazermos uma imagem piscar 40 vezes por segundo, iremos perceber como se essa imagem estivesse sempre ligada ! Esse é o princípio da multiplexação, que no seu caso é acender apenas um dos displays, deixar um pouquinho aceso, apagar, acender o outro display, esperar um pouquinho, etc, e assim indefinidamente. Imagine o numero 81, queremos que ele seja mostrado no display. O primeiro display é o dezenas, e o segundo display é o das unidades. Portanto, temos de colocar na saída do PIC o numero 8, selecionar a saída do display das dezenas, esperar um pouco, apagar o display, e aí colocamos o numero 1 na saída do PIC, selecionamos a saída do display das unidades, esperamos um pouco, apagamos, e voltamos ao início novamente. Se fizermos esse processo 40 vezes por segundo para cada display, voce não irá perceber as piscadas que existem, e o melhor de tudo, como apenas 1 display está aceso , sempre a corrente será a de um só display ! Isso fica melhor ainda se voce imaginar que tem 4 displays em vez de 2, imagine se voce fosse acender todos eles ao mesmo tempo, a corrente que seria consumida pelo seu circuito ! No caso dos PICs, que suportam uma boa corrente de saída em seus pinos, podemos ligar os displays diretamente aos pinos, com apenas um resistor limitador, e não precisamos de nenhum driver adicional de corrente. como se faz essa multiplexação a nivel de software ( e hardware ... ) ? Usamos um dos TIMERS do PIC, geralmente o TIMER 0 , e programamos ele para interromper o programa principal no mínimo 80 vezes por segundo, para fazermos a sequência descrita acima. Assim, fica fácil de perceber que iremos acender cada um dos displays 40 vezes a cada segundo, e cada display ficará aceso por cerca de 1/80 = 12,5 milisegundos a cada vez ! Claro que esse procedimento faz com que a luminosidade de cada display seja baixa, pois em 1 segundo cada display ficará aceso por apenas 0,5 segundos, ou seja, a luminosidade será a metade ! O que fazemos para melhorar isso é utilizar uma característica dos LEDs : se normalmente a corrente máxima para um display é de 25 ma para cada segmento, se consultarmos a documentação veremos que eles podem suportar uma corrente bem maior ( por exemplo, 100 ma ) por alguns milissegundos, e com uma certa taxa de repetição máxima . Assim, baseado no datasheet do display, escolhemos a frequência de refresh , e aumentamos a corrente dos segmentos, para mantermos o brilho alto. Claro que nesse caso usamos drivers de corrente tipo source, por exemplo, o UDN2981. Resumindo, o programa principal calcula o valor a ser mostrado, e coloca esse valor em duas variáveis separadas ( dezenas e unidades ), e sinaliza à rotina de multiplexação que os dados estão completos e corretos. Ou seja, se o programa principal está na iminência de alterar um dos dois valores, ele sinaliza através desse flag, e quando ele concluir a alteração dos dois valores, ele sinaliza novamente através desse flag. Assim, a rotina de multiplexação consulta sempre o flag ANTES de mostrar, asssim evitamos um problema recorrente que é o de perceber uma "piscada" de um valor meio maluco de vez em quando ( imagine que o valor está mudando de 10 para 09, e a rotina de multiplex interrompeu justamente após a mudança da dezena apenas, o que irá aparecer rápidamente no display será 00 ! ) . Ao consultar o flag, a rotina de multiplex simplesmente não faz nada e termina, o que pode fazer com que um dos displays seja atualizado apenas 39 em vez de 40 vezes, na prática isso não é perceptível ! Caso voce ainda tenha dúvidas, sugiro que leia o Tutorial no link abaixo : http://forum.clubedohardware.com.br/showpost.php?p=3712305&postcount=3 Bons projetos. Paulo
-
Brunocavaledo, Eu tenho um projetinho muito parecido, que mede tensão e corrente, usando EXATAMENTE o mesmo princípio ( mas tensão até 20 V e corrente até 20A ), utilizando um microcontrolador AVR ATMEGA48, e que possui apenas a calibração de corrente devido à tolerância do resistor shunt ( 10% ). É práticamente idêntico em funcionamento e ajuste ao segundo esquema que voce postou. A medição de tensão tem precisão dentro de 5% e para mim é o suficiente, mas pode ser alterado no programa para também poder ajustar mais precisamente a tensão. Posso modificar ele para a tensão e corrente que voce precisar, e o código-fonte está escrito em BASCOM ( Basic ). Veja se te ajuda, ok ? Paulo
-
Beleza , Felipe, se voce escrever em C , mas colocar a sintaxe normal, sem aquelas abreviações ( *&%$#@!(@!)!)@>>++<<< ..... ) , fica bem mais fácil para mim converter, e se tiver alguma dúvida voce me ajuda !!!! Legal essa ideia de fazer multiplataforma, mas voce vai parametrizar para ela ser bem genérica, tipo poder definir quantas frequências , quantas amostras, quantos intervalos , etc ???? Se for usar aquele método Buterfly, vai dar trabalho pacas !!!! Bom, manda bala e vê o que fica melhor para todos . Valeu , Felipe ! Paulo
-
Felipe, no post anterior ao seu, eu passei o link do projeto completo ! Eu tentei copiar o link apenas do arquivo para download, mas não funciona se voce não acessar a página diretamente ! Acesse a página, o link para download está imediatamente ao final da descrição do projeto, e ANTES dos trocentos posts de comentários !!!! Esse arquivo contém tudo, desde o esquema, PCB's para diversos tipos de displays, fontes e arquivos .HEX prontos para gravar, ok ? Dá uma olhada no source do cara ..... e depois se voce me ajudar a passar pro Basic, vai ficar uma beleza isso ! Valeu !!!!!!! Boa pesquisa ! Paulo
-
Pessoal, Segue o link de um projeto muito legal, muito simples de montar, e que funciona muito bem. É um analisador de espectro de áudio, que pode utilizar vários tamanhos de displays LCD ou VFD. Tem ajuste de luminosidade via PWM, e ajuste de ganho de áudio, tudo por software. http://diy.elektroda.eu/analizator-widma-akustycznego-v2/?lang=en O site está em inglês, e ao final existem os links para se obter todos os arquivos do projeto. Mas todo o projeto original está em Polonês, e os comentários do programa também estão em Polonês, ou seja, não dá para entender o funcionamento do programa sem ficar traduzindo os comentários .... O circuito usa um ATMEGA8, e o software é em Bascom-AVR com algumas operações em assembly para se ganhar velocidade. Se alguém estiver interessado, eu reescreví o software para utilizar um ATMEGA88, o qual não apresenta nenhum possível problema com o ADC em 44 Khz. Aliás, só para fazer um pequeno teste, eu troquei o cristal de 16 Mhz por um de 20 Mhz, e tirei as rotinas em assembler, utilizando exclusivamente o Bascom, e funcionou direitinho. Embora a parte do software que realiza a DFT esteja bem confuso, o resto é bem simples, e ilustra muito bem o poder da linguagem Basic do BASCOM, aliado a um hardware muito simples. Futuramente, estarei incluindo num novo tutorial esse exemplo, simulado pelo Proteus. Paulo
-
Bom dia pessoal, estou voltando à atividade aqui no Fórum, e percebí que os links de downloads dos tutoriais não estão funcionando. Vou atualizar os links, e depois postarei algumas novidades sobre o uso do BASCOM-AVR, que ajudam bastante a quem está começando. E ao longo desse tempo que fiquei ausente, acabei usando bastante o Proteus, para simular o funcionamento dos programas sem ter de toda hora mexer no hardware físico. Conseguí simular quase todos os projetos que realizei, claro que com algumas limitações, mas ganhei muito tempo fazendo essa simulação. Com o osciloscópio virtual, o debug ficou muito, mas muito mais fácil. Se houver interesse , posso fazer um pequeno tutorial sobre o processo e algumas dicas muito úteis, que permitirão a integração fácil entre o BASCOM-AVR e o PROTEUS. E, aos amigos que sempre ajudaram a todos aqui no Fórum, meus agradecimentos pela cooperação ! Paulo
-
Grande Felipe, faz tempo que voce não aparece, bom retorno !!!! Só para deixar um pouco mais claro, esse exemplo do Felipe está perfeito em termos de cálculo, mas assume que a transferência de energia térmica entre todos os envolvidos tem rendimento de 100 % , que na prática está muito longe da realidade. Se conseguirmos fazer acoplamentos muito eficientes entre a junção Peltier e os dois lados envolvidos, quem sabe conseguiremos uns 20 % de rendimento nas transferências, aí então bastaria multiplicar os números por 5. Assim, ou aumentamos a potencia da junção Peltier em 5 vezes, ou o tempo necessário terá de ser multiplicado por 5, certo ? Esse é o tipo de projeto em que só a prática permite ajustar as coisas até estarmos satisfeitos com os resultados .... Paulo
-
O que voce quer é isto : O seu programa fica normalmente fazendo a conversão do A/D e guardando elas na memória , e quando voce receber um determinado byte voce que que páre de fazer as conversões e vá para uma rotina que vai te enviar esses bytes pela serial, ok ? Basta implementar a comunicação serial e ficar observando sempre a cada conversão A/D se tem algum dado recebido via serial; se tiver, veja se é o dado correto que voce está esperando, e se for, simplesmente sai do loop do A/D e vai para a rotina de TX serial, ok ? Veja se é isso e eu posto o esqueleto do negócio ! Paulo
-
Pessoal, Independente do método, a pastilha Peltier tem de dissipar a potência para o ambiente, ou não vai conseguir retirar o calor do conteúdo da caixa. Seja cobre, alumínio, cerâmica, continua sendo um dissipador. E se quiser um dissipador mais eficiente, lembre-se do princípio dos coolers de CPU cheio de aletas. As aletas multiplicam grandemente a superfície de dissipação, permitindo um fluxo de calor bem maior. O truque é prender a pastilha em algo que funcione como um dissipador, tanto do lado interno da caixa como do lado externo, assim melhora o fluxo entre a pastilha e os 2 ambientes. Já ví usarem algo tipo aqueles dissipadores de amplificador de potência de áudio de grande potência, cheio de aletas, e funcionou perfeitamente. Se colocar poucas aletas ( ou seja, baixa eficiência ) , demora muito mais tempo para as latinhas abaixarem a temperatura, ok ? Paulo
-
Nossa, agora ferrou .... misturou A/D, serial e gravação Eprom .... Bom, pelo que entendí, voce está preocupado em perder alguma coisa. Explique melhor qual é a sua dúvida, se é perder o valor do conversor A/D, ou perder o valor do dado recebido via serial. A gravação na Eprom não tem problema de ser perdida, ok ? Lembre-se , sempre podemos habilitar ou desabilitar as interrupts na hora em que quisermos, com isso podemos controlar bastante cada processo. Paulo
-
Igor, Existe um projeto completo que saiu numa revista brasileira de eletrônica, fazem uns 2 anos creio eu, tinha tudo isso que voce tá falando. Dá uma pesquisada ok ? O que eu sei : - Primeiro, tem de dimensionar qual a potência necessária para resfriar o seu recipiente. Isto voce calcula a partir do conteúdo dele e da provável temperatura ambiente. Por exemplo : 10 latas de cerveja = +- 3,6 litros de "'agua" ( parecido ... ) Aí voce imagina que a temperatura ambiente é de por exemplo 30 graus, e voce quer refrigerar até uns 4 graus, e calcula quantas calorias voce terá de retirar das latinhas para atingir a sua temperatura. A partir disto, voce calcula qual a potência de sua pastilha Peltier para fazer isto. Dá uma margem de sobra de uns 30% para compensar rendimento térmico. - Agora, sabendo da potência que voce quer, o fabricante das pastilhas possui tabelas que informam os modelos com as potências desejadas, e dentro desta potência existem variações de tensão e de corrente. Por exemplo, existe um modelo que trabalha com 12 volts e 5 ampéres, e um outro modelo que trabalha com 20 volts e 3 ampéres, ambos possuem a mesma potência. A partir daí, é só voce fornecer a tensão e a corrente desejada, e controlar a temperatura, ok ? Boa sorte. Paulo
-
Oi Helder, O compilador C que a turma usa para AVR é o WINAVR, é free !!!! , e um tutorial que já ví recomendarem é este aqui : http://winavr.scienceprog.com/ Infelizmente em C não posso te ajudar nada, mas tem muita gente aqui no Fórum que é fera em C e AVR. Faça um post no Fórum principal, e veja se aparece alguém para te ajudar, ok ? Agora, não se assuste com os AVR's, eles são muito mais poderosos que os 8051 que voce conheceu, e incluem um montão de hardware dentro deles por um custo x benefício imbatível. Boa sorte ! Paulo
-
Não faça isso ...... Dimmer é utilizado para o controle de potência, pois ele não limita nem a tensão, nem a corrente, o que ele faz é limitar o tempo em que a energia é aplicada à carga ! Se retificar a tensão com a ponte de diodos, e filtrar com um capacitor, vai ter mais de 150 volts nela !!!!!!! A melhor solução mesmo é utilizar um transformador, ok ? Paulo
-
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
aphawk respondeu ao tópico de MatheusLPS em Microcontroladores
MatheusLPS, Excelente a sua iniciativa, parabéns !!!! Estou no aguardo do restante do projeto ! Paulo -
Ué ... estão define TODA A EEPROM : Dim buffer(511) As ERAM Byte DIM b as Byte DIM i as byte para ler : i= 124 b=buffer(i) -> b tem o conteúdo da posição 124 da EEPROM ! para gravar : i=124 b=adc(0) buffer(i)=b -> agora, a leitura do ADC está na posição 124 da EEPROM ! Detalhe : sempre tem de usar uma variável comum para ler e gravar dados na EEPROM, ou seja, não pode usar diretamente em nenhuma outra operação, nem fazer contas com ela, nem mostrar no display, nada !!!!! Primeiro sempre passe o valor da EEPROM para uma variável comum. Lembre sempre disso, ajuda a procurar agulhas num palheiro ! O tamanho da EEPROM muda conforme o AVR, ok ? Eu percebí que a variável C era só um contador, mas também percebí que o seu programa de ler e escrever na memória EEPROM ignorava totalmente a variável C !!!! Porisso que eu falei aquela observação. Modifique e teste, ok ? Paulo
-
Eu tava estranhando a sua dificuldade, pois RS232 é mais fácil que empurrar bêbado em descida .... Bom, pelo seu código, voce está querendo armazenar 10 leituras então por que que não reservou 10 endereços na EEprom ?????? Vou te dar uma excelente dica : baixe o Help do Bascom, verifique os exemplos que tem nos comandos Basic, relativos à escritas e leituras em EEPROM, sua resposta está lá ! Seu programa está invadindo áreas que não foram reservadas, porisso o erro ! Repare que nos exemplos são especificados os N bytes para serem guardados os valores, ou seja, voce precisa reservar eles ANTES de usar, pois o compilador utiliza isto para alocar a área exata de EEPROM. Modifique seu programa para esses 10 bytes no seu caso, que deve funcionar, ok ? Um abraço ! Paulo Opa, achei algo estranho : Do O = Getadc(0) Print #1 , O Print #1 , T Waitms 250 Writeeeprom O , Label1 C = C + 1 Loop Until C = 10 Do Readeeprom D , Label1 Print #1 , D Waitms 250 C = C - 1 Loop Until C = 0 O que que a variável C tem a ver com os seus dados na EEprom ??????????? Tudo está se referindo SEMPRE para o endereço definido em Label1, como isso nunca muda, sempre está vindo o valor mantido em Label1 .... mude isto, indexando o byte A PARTIR de label1 , ok ?
-
Ué ... não entendi ... Se no seu programa voce definiu o cristal como 10 Mhz, voce só poderia estar usando um cristal EXTERNO !!!!!!!!!!!! O clock interno no Atmega pode ser 1 Mhz, ou 8 Mhz, mas nunca 10 Mhz ! Porisso que te perguntei sobre os FUSES !!!! Se voce está usando o clock interno, programa os FUSES no Atmega para gera 8 Mhz, e declare no programa $crystal = 8000000 ! Se for usar um cristal externo, também tem de programar os FUSES de acordo com o cristal utilizado, e declarar a velocidade correta no programa. O Bascom gera o baud rate a partir da frequência declarada do cristal no programa, que TEM DE COINCIDIR COM O CRISTAL !!!! Caso contrário voce vai ficar doido mesmo ..... Modifique e veja se agora vai, ok ? Paulo
-
Playmobil, Ué, cade as definições de hardware, os pinos que serão Inputs, e os pinos que serão Outputs ? Creio que falta isso. Tente isto aqui : $regfile = "m8def.dat" $crystal = 10000000 $hwstack = 32 $swstack = 10 $framesize = 40 $baud = 4800 [B]Config Portb = Input Config Portb.2 = Output[/B] Dim O As [B]WORD[/B] Config Adc = Single , Prescaler = Auto Open "comb.2:4800,8,n,1" For Output As #1 Open "comb.1:4800,8,n,1" For Input As #2 Start Adc Do O = Getadc(0) [B]Print #1 , O ; " " Waitms 250[/B] Loop [B]End[/B] voce está usando um cristal externo, verifique se programou os Fuses de acordo. Paulo
-
Pessoal, Acabei de atualizar o Tutorial com o projeto de um Frequencímetro até 50 Mhz, bem simples, mas bem preciso e fácil de ser feito, com o software em Basic e todos os comentários explicando o funcionamento. Se quiserem baixar, o link já está atualizado. Apenas para dar um pouco de água na boca... segue o esquema em anexo. Um abraço e bons usos. Paulo
-
Rafeldi, Sáo sais de sódio, betonita ou sulfato de cobre. Mas existem também solução tipo GEL de vários fabricantes, os quais são bem eficientes, não corroem os eletrodos das barras, mas custam bem mais caro. 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