Ir ao conteúdo
  • Cadastre-se

Fervolt

Membro Pleno
  • Posts

    335
  • Cadastrado em

  • Última visita

Tudo que Fervolt postou

  1. Olá, o programa abaixo recebe dados pela serial, quando recebe o valor 249 (0xF9), entende que é o inicio da recepção de uma string de caracteres, quando recebe 254 (0xFE) entende que o byte seguinte será um comando para ser enviado ao LCD. A string de caracteres é enviada ao LCD caracter por caracter conforme vai recebendo, então, caso queira armazenar, será preciso criar um array. Dúvidas retorne. Programa de recepção: #include <main.h>#include <lcd.h>#define LIGA output_high#define DESLIGA output_low#define PWM2 PIN_C3#byte RCSTA = 0X18#byte RCREG = 0x1A //posição que contém dado recebido pela serial//Variáveis globaisint1 bComandoLcd, bRecebeCmd, bR;int iValor, iComando, iDado, iSLcd;int16 iCont;#int_RDA //Interrupção de dado na serialvoid RDA_isr(void){ iDado = RCREG; if(iDado == 249 && !bR){ //bR - Flag q habilita recepção de uma string de caracteres bR = 1; iDado = 0; return; } if(iDado == 249 && bR){ bR = 0; iDado = 0; return; } if(bR){ iSLcd = iDado; iDado = 0; return; } //Se receber 254 (0xFE) liga flag de recepção de comando p LCD if(iDado == 254 && !bRecebeCmd){ iValor = iDado; iDado = 0; bRecebeCmd = 1; return; } //Recebe o comando a ser enviado ao LCD If(iValor == 254 && bRecebeCmd){ bRecebeCmd = 0; iValor = 0; iDado = 0; bComandoLcd = 1; iComando = RCREG; return; } }void main(){ enable_interrupts(INT_RDA); enable_interrupts(GLOBAL); lcd_ini(); limpa_tela(); cursor(1); bComandoLcd = 0; iComando = 0; iValor = 0; iCont = 0; for(;{ if(bComandoLcd){ bComandoLcd = 0; lcd_envia_byte(0, iComando); iComando = 0; } if(iSLcd && bR){ if(iSLcd >= 32 && iSLcd <= 126){ printf(lcd_escreve, "%c", iSLcd); } iSLcd = 0; } }} Programa de transmissão: #include <628TX.h>#include <teclas.h>int iTeclaAtu;void main(){ for(;{ iTeclaAtu = teclas(); if(iTeclaAtu == 1){ putc(249); printf("Teste"); putc(249); iTeclaAtu = 0; } if(iTeclaAtu == 2){ putc(0xFE); putc(1); iTeclaAtu = 0; } }}
  2. Boa noite, Uma dica pra você, pesquise sobre o componente MAX6675, usei em vários projetos e facilita muito a leitura do termopar pois entrega a temperatura através de uma comunicação SPI 3 vias. Att,
  3. Realmente, melhor seria levar numa assistencia. Se o filamento não acende, não está chegando tensão nele, considerando que a queima do filamento é rara. O filamento acende, geralmente, com 6,3 volts que vem diretamente da fonte. Então, acredito que o defeito de seu equipamento esteja na fonte. Att, Fernando
  4. Olá, Tenho um desse, mesmo modelo. Recomendo que veja se o filamento está aceso como a colega acima citou, caso esteja, verifique o potenciometro de brilho. Verifique tambem o +B que chega no fly-back. O meu ja deu defeito em 2 potenciometros (e na chave x5) não era o do brilho mas acredito que tenham a mesma qualidade. Att,
  5. @vtrx Procurei somente o touch para comprar e não achei, vou comprar outro módulo lcd completo. Por acaso você tem algum exemplo de uso de timer com interrupção? Valeu
  6. Segue imagem e esquema da placa. O modulo lcd vem com touch screen, mas tirei porque quebrou o vidro. Att, Fervolt HY-MiniSTM32V_SCH.pdf
  7. Olá, Veio a calhar este tópico, pois, estou no caminho das pedras com minha plaquinha ARM (STM32F103VC). gravador J-TAG J-LINK "clone". Instalei o CooCox e o Keil, estão funcionando, compilei "led blink"(rs) nos 2, gravei e funcionou. Venho dos PICs com compilador predominante CCS C, mas sei programar em assembly. O que posso dizer até agora é que, fazendo uma analogia grotesca, se o PIC é um carro popular, o ARM é um onibus espacial em termos de recursos. Está muito difícil assimilar tudo o que ele tem. Estabeleci algumas metas para meu aprendizado, assim como comecei com PIC, fazer programas simples para explorar os periféricos separadamente, como I/O, Timers, Interrupções, comunicações(USART, I2C, SPI, etc) e depois fazer um projeto integrando vários. Vou acompanhar o tópico, com certeza será de muito proveito. Parabéns pela iniciativa. Fervolt
  8. Olá, tenho uma 702, faz uns 4 anos, acho excelente e até agora não apresentou nenhum defeito. Fervolt
  9. Se não tem nada nessa placa, então está na placa-mãe, localize qual o fio do conector que liga a placa-mãe nessa placa está conectado ao 5 volts da USB, siga-o até a placa-mãe e verifique essa linha. Acredito que esse capacitor não esteja com problema. Att, Fervolt
  10. Olá, Geralmente não é difícil de consertar, o +5v que vai para as portas USB tem proteção que pode ser um indutor(bobina) ou resistor de 0 ohm, em caso de curto circuito, esses componentes "abrem" evitando que o curto siga. Tente seguir a linha de 5 volts da porta que queimou e procure por componentes em série com essa trilha, ou tente encontrar o manual de serviço que contenha o esquema elétrico da máquina, aí fica fácil. Att, Fervolt
  11. MatheusLPS, Eu fiz um desses, posso tirar uma fotos se quiser, é bem caseiro mesmo. Usa um "tapperware" de R$ 1,99, um cooler 12V e um umidificador ultrasonico igual a este http://www.ebay.com/itm/Mist-Maker-Fogger-Humidifier-Water-Pond-Fountain-12-LED-/261234352365?pt=LH_DefaultDomain_0&hash=item3cd2c7e0ed Para alimentar, um trafo 12+12 2A, funciona com AC direto, liguei os 2 enrolamentos em série para obter 24VAC. Usei por meses direto e funciona muito bem, melhor até que alguns de mercado. Att,
  12. Legal sua iniciativa, com certeza vai ajudar muita gente. Eu até tenho um bom material que fiz aqui, mas meu pc é uma bagunça total, vou tentar separar alguma coisa também. Valeu!
  13. aphawk, Gostaria de parabeniza-lo e agradece-lo pelo excelente trabalho ao criar esse tutorial para programação de AVR's com o BASCOM. Baixei e estou começando a programar um atmega8. Com certeza seu trabalho é de muita ajuda para iniciantes em AVR. Abraço
  14. Valeu pelas respostas, Como meu diploma não ficou pronto ainda, vou entrar em contato com o Senai e tentar tirar essa dúvida. Caso tenha uma resposta, eu posto aqui. Att,
  15. Bom dia a todos, dantas.roberto, sabe me dizer que o curso tecnico eletroeletronica do senai entra nessa parte da legislação? Não entendi quando diz "técnico de 2° grau". Terminei o curso no final do ano passado, 1200 horas presencial. Tenho, por enquanto, como hobby fazer circuitos com microcontroladores, também imaginava que com esse curso poderia projetar equipamentos comerciais. Att,
  16. Boa tarde, Na minha opinião, 1 PIC só faz isso tranquilo. Estou terminando um projeto que tem display gráfico 128x64, teclado de 8 teclas com bip, conversor A/D (2 canais), faz cáculo de leitura de um PT100 por calendar van-dusen, monitora 6 entradas digitais e controla 8 saídas. O teclado é multiplexado com o bus de dados do GLCD. Uso um PIC18F4550 clock do núcleo 16MHz. Até agora, está sendo usados 20% da RAM e 42% da ROM no CCS, tem muitas "strings" e elas ocupam bastante a ROM. Funciona muito bem e rápido, não perde sequer 1 pressionamento de qualquer tecla. Pretendo implementar USB para enviar o valor da temperatura para o PC. Att,
  17. vtrx, Eu tenho em pdf versão em inglês, se você quiser posso separar o artigo e te enviar, a revista inteira tem quase 100MB. Att,
  18. Olá bom dia. Segue 2 tipos. Lembrando que o interessante seria você tentar fazer para aprender. Esquemas elétricos obtidos no site: http://saladaeletrica.blogspot.com.br Att,
  19. Olá, Pode também procurar pelo 2N2219 ou 2N2222 (menor potência). No lugar do trimmer você pode colocar um capacitor ceramico de valor fixo, compre vários na faixa de 5 a 20pF e vá testando. A frequencia neste caso pode ser ajustada na bobina, ao "espaçar" as espiras aumenta a frequencia, ao comprimir diminui. Para testar, coloque um rádio perto em uma frequencia livre e tente espaçar ou comprimir a bobina até que o "chiado" desapareça, quando o rádio ficar mudo é sinal que você está conseguindo transmitir o sinal da portadora. Quando eu fazia transmissor eu fazia assim, fica mais estável, muitos dos trimmer que são vendidos hoje não tem boa qualidade o que prejudica a estabilidade do transmissor. Abç
  20. Olá, Depois que comecei usar o CCS, por várias vezes tentei migrar para o mikroc mas acabo sempre voltando pro CCS, tive problemas com GLCD, depois que consegui adaptar minha própria biblioteca para um modelo de GLCD que não funcionava com a biblioteca GLCD do CCS não usei mais o mikroC. Gosto do CCS porque as bibliotecas estão disponíveis, você pode altera-las a sua necessidade, no mikroC que eu sei não tem como. Muitos dizem que o mikroC gera o código "melhor" que o CCS, não sei dizer, pois, a maioria das minhas aplicações não são críticas e trabalho com folga em recursos de hardware. Quando a aplicação é crítica, faço em assembly. Abç
  21. Bom dia, Segue um vídeo que fiz ontem do meu propeller. Arquivo propeller.h (somente cabeçalho) #include <16F628A.h> #FUSES NOWDT //No Watch Dog Timer #FUSES INTRC_IO //Internal RC Osc, no CLKOUT #FUSES PUT //Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NOBROWNOUT //No brownout reset #FUSES MCLR //Master Clear pin enabled #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection //#FUSES RESERVED //Used to set the reserved FUSE bits #use delay(clock=4000000) Arquivo graphics.c (adaptado do próprio ccs) ///////////////////////////////////////////////////////////////////////// //// Defines a 5x7 font ///////////////////////////////////////////////////////////////////////// const int8 FONT[51][5] ={0x00, 0x00, 0x00, 0x00, 0x00, // SPACE 0x00, 0x00, 0x5F, 0x00, 0x00, // ! 0x00, 0x03, 0x00, 0x03, 0x00, // " 0x14, 0x3E, 0x14, 0x3E, 0x14, // # 0x24, 0x2A, 0x7F, 0x2A, 0x12, // $ 0x43, 0x33, 0x08, 0x66, 0x61, // % 0x36, 0x49, 0x55, 0x22, 0x50, // & 0x00, 0x05, 0x03, 0x00, 0x00, // ' 0x00, 0x1C, 0x22, 0x41, 0x00, // ( 0x00, 0x41, 0x22, 0x1C, 0x00, // ) 0x14, 0x08, 0x3E, 0x08, 0x14, // * 0x08, 0x08, 0x3E, 0x08, 0x08, // + 0x00, 0x50, 0x30, 0x00, 0x00, // , 0x08, 0x08, 0x08, 0x08, 0x08, // - 0x00, 0x60, 0x60, 0x00, 0x00, // . 0x20, 0x10, 0x08, 0x04, 0x02, // / 0x3E, 0x51, 0x49, 0x45, 0x3E, // 0 0x00, 0x04, 0x02, 0x7F, 0x00, // 1 0x42, 0x61, 0x51, 0x49, 0x46, // 2 0x22, 0x41, 0x49, 0x49, 0x36, // 3 0x18, 0x14, 0x12, 0x7F, 0x10, // 4 0x27, 0x45, 0x45, 0x45, 0x39, // 5 0x3E, 0x49, 0x49, 0x49, 0x32, // 6 0x01, 0x01, 0x71, 0x09, 0x07, // 7 0x36, 0x49, 0x49, 0x49, 0x36, // 8 0x26, 0x49, 0x49, 0x49, 0x3E, // 9 0x00, 0x36, 0x36, 0x00, 0x00, // : 0x00, 0x56, 0x36, 0x00, 0x00, // ; 0x08, 0x14, 0x22, 0x41, 0x00, // < 0x14, 0x14, 0x14, 0x14, 0x14, // = 0x00, 0x41, 0x22, 0x14, 0x08, // > 0x02, 0x01, 0x51, 0x09, 0x06, // ? 0x3E, 0x41, 0x59, 0x55, 0x5E, // @ 0x7E, 0x09, 0x09, 0x09, 0x7E, // A 0x7F, 0x49, 0x49, 0x49, 0x36, // B 0x3E, 0x41, 0x41, 0x41, 0x22, // C 0x7F, 0x41, 0x41, 0x41, 0x3E, // D 0x7F, 0x49, 0x49, 0x49, 0x41, // E 0x7F, 0x09, 0x09, 0x09, 0x01, // F 0x3E, 0x41, 0x41, 0x49, 0x3A, // G 0x7F, 0x08, 0x08, 0x08, 0x7F, // H 0x00, 0x41, 0x7F, 0x41, 0x00, // I 0x30, 0x40, 0x40, 0x40, 0x3F, // J 0x7F, 0x08, 0x14, 0x22, 0x41, // K 0x7F, 0x40, 0x40, 0x40, 0x40, // L 0x7F, 0x02, 0x0C, 0x02, 0x7F, // M 0x7F, 0x02, 0x04, 0x08, 0x7F, // N 0x3E, 0x41, 0x41, 0x41, 0x3E, // O 0x7F, 0x09, 0x09, 0x09, 0x06, // P 0x1E, 0x21, 0x21, 0x21, 0x5E, // Q 0x7F, 0x09, 0x09, 0x09, 0x76};// R const int8 FONT2[44][5]={0x26, 0x49, 0x49, 0x49, 0x32, // S 0x01, 0x01, 0x7F, 0x01, 0x01, // T 0x3F, 0x40, 0x40, 0x40, 0x3F, // U 0x1F, 0x20, 0x40, 0x20, 0x1F, // V 0x7F, 0x20, 0x10, 0x20, 0x7F, // W 0x41, 0x22, 0x1C, 0x22, 0x41, // X 0x07, 0x08, 0x70, 0x08, 0x07, // Y 0x61, 0x51, 0x49, 0x45, 0x43, // Z 0x00, 0x7F, 0x41, 0x00, 0x00, // [ 0x02, 0x04, 0x08, 0x10, 0x20, // \ 0x00, 0x00, 0x41, 0x7F, 0x00, // ] 0x04, 0x02, 0x01, 0x02, 0x04, // ^ 0x40, 0x40, 0x40, 0x40, 0x40, // _ 0x00, 0x01, 0x02, 0x04, 0x00, // ` 0x20, 0x54, 0x54, 0x54, 0x78, // a 0x7F, 0x44, 0x44, 0x44, 0x38, // b 0x38, 0x44, 0x44, 0x44, 0x44, // c 0x38, 0x44, 0x44, 0x44, 0x7F, // d 0x38, 0x54, 0x54, 0x54, 0x18, // e 0x04, 0x04, 0x7E, 0x05, 0x05, // f 0x08, 0x54, 0x54, 0x54, 0x3C, // g 0x7F, 0x08, 0x04, 0x04, 0x78, // h 0x00, 0x44, 0x7D, 0x40, 0x00, // i 0x20, 0x40, 0x44, 0x3D, 0x00, // j 0x7F, 0x10, 0x28, 0x44, 0x00, // k 0x00, 0x41, 0x7F, 0x40, 0x00, // l 0x7C, 0x04, 0x78, 0x04, 0x78, // m 0x7C, 0x08, 0x04, 0x04, 0x78, // n 0x38, 0x44, 0x44, 0x44, 0x38, // o 0x7C, 0x14, 0x14, 0x14, 0x08, // p 0x08, 0x14, 0x14, 0x14, 0x7C, // q 0x00, 0x7C, 0x08, 0x04, 0x04, // r 0x48, 0x54, 0x54, 0x54, 0x20, // s 0x04, 0x04, 0x3F, 0x44, 0x44, // t 0x3C, 0x40, 0x40, 0x20, 0x7C, // u 0x1C, 0x20, 0x40, 0x20, 0x1C, // v 0x3C, 0x40, 0x30, 0x40, 0x3C, // w 0x44, 0x28, 0x10, 0x28, 0x44, // x 0x0C, 0x50, 0x50, 0x50, 0x3C, // y 0x44, 0x64, 0x54, 0x4C, 0x44, // z 0x00, 0x08, 0x36, 0x41, 0x41, // { 0x00, 0x00, 0x7F, 0x00, 0x00, // | 0x41, 0x41, 0x36, 0x08, 0x00, // } 0x02, 0x01, 0x02, 0x04, 0x02};// ~ ///////////////////////////////////////////////////////////////////////// Arquivo propeller.c (programa principal) #include "propeller.h" #include "graphics.c" int8 letra[5]; void texto57(char* textptr, int posicao){ int8 h; h = 0; textptr += posicao; if(*textptr < 'S') memcpy(letra, FONT[*textptr - ' '], 5); else if(*textptr <= '~') memcpy(letra, FONT2[*textptr - 'S'], 5); else memcpy(letra, FONT[0], 5); } //****************** Rotina principal ******************// void main(){ int8 n, m, inicio, fim, atual, tamanho, comeco; char texto[] = " Feliz 2012 a todos do Forum Clube do Hardware!! "; *cmcon = 0x07; atual = 0; m=0; tamanho = sizeof(texto)-2; output_b(255); output_bit(pin_a6, 1); output_bit(pin_a7, 1); delay_ms(3000); //Acende todos os leds por 3 segundos, para teste while(1){ if(!input(PIN_A0)){ delay_ms(5); for(inicio = 0; inicio < 17; inicio++){ if(fim+inicio < tamanho){ texto57(texto, fim+inicio); }else{ fim = 0; } for(n = 0; n < 5; n++){ output_bit(pin_a6, bit_test(letra[n], 4)); output_bit(pin_a7, bit_test(letra[n], 6)); output_b(letra[n]); delay_us(180); output_low(pin_a6); output_low(pin_a7); output_b(0); delay_us(230); } delay_us(320); } m++; if(m == 2){ atual++; fim++; m = 0; } } } //*********** FIM LOOP PRINCIPAL ************* } O programa foi desenvolvido por mim, peguei a tabela de caracteres pronta do ccs (um dos motivos que prefiro o ccs ao mikroc ). Acredito que da pra melhorar esse código, minha intenção era implementar um controle IR para editar a frase mas não tive mais tempo. Se alguém tiver alguma dúvida é só perguntar. Att, Fervolt
  22. Bom dia, Bem legal seu propeller, parabéns!! Eu tenho um também, nem lembrava mais, só que o meu é mais simples, usa 2 baterias CR2016 onboard e é tipo "AXIAL", programado em C (ccs) e consegue escrever até 16 caracteres rotacionando. Se você permitir posso postar uma foto. Abraço
  23. Olha só, li o post mas me passou despercebido, fui atraido pelo valor dessa estação no mercadolivre...rs Bom, como não tenho condição de comprar uma 968, o que me sobra, pra começar, é uma 850 mesmo. valeu Fernando Voltani
  24. Bom dia, Estou acompanhando o tópico, também estou interessado em comprar uma estação, estive vendo a Yaxun 878D. Abç Fernando
  25. Exatamente! Certa vez fiz um circuito desses, "acendeu" dentro do potenciômetro e saiu fumaça.

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