-
Posts
2.891 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que MatheusLPS postou
-
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Boas notícias então. você está fazendo correto. É melhor fazer o C# chamar funções no PIC do que fazer o PIC enviar valores e deixar o C# esperando por eles. Dessa forma fica mais estável o projeto. Qualquer dúvida, só chamar. Mas tenho um outro projeto igual a esse que funciona plenamente inclusive no windows 7 64 bits. Mas o protocolo é totalmente diferente. Mas o esquema é o mesmo. Só muda a programação do C# e o driver que fizeram um novo. Falou -
Olha só, o erro foi meu. você tinha escrito lá em cima mas não prestei atenção. SEguinte, se os LEDs estão em série, a corrente necessariamente tem que passar em todos. Ainda não conegui pensar num jeito de ativar 1 de cada vez. Já pensou em usar um circuito PWM com um 555? Fica pequeno e você varia o brilho dos 3 leds ao mesmo tempo com um potenciômetro. Fica mais fácil de fazer. Falou
-
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Opa, baixei minha versão do Visual C# aqui ó: http://www.microsoft.com/express/Downloads/ Só escolher a opção "All - Offline Install ISO image file". Tem 1.6GB. Ela vem com todos. Atualizei minhas .dll como você fez. Mas no windows XP funciona normal. você tem o proteus aí poder testar? você pode ao invéz de usar uma placa pronta, testa no proteus primeiro. você dá play no circuito o windows vai reconhecer, vai pedir driver e você usa o programa feito no c# p comandar o PIC do proteus. Qualquer dúvida, estou por aqui. Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
E ae. Td bem? Sim! Consegui resolver. Cara, como esse mundo é pqueno, você encontrou minha dúvida em outro fórum q nem me lembro mais qual é e me encontrou aqui. Seguinte. Pela screenshot q você tirou, percebe-se que você utiliza windows 7. Correto? Esse projeto apenas funciona no windows XP. Na verdade, eu até consegui fazer funcionar no windows 7 32bits mas depois d um tenpo começou a dar esse erro ai. A única coisa que resolvou foi eu formatar o PC e instalar o windows XP enquanto estava desenvolvendo o projeto. Caso você não queira formatar o PC, tenho outra solução para você. Já ouviu falar no Windows XP Mode? è um aplicativo que você baixa do site da microsoft e ele emula o windows XP sobre o windows 7. Com ele consegui faezr funcionar também. você faz o download dele aqui ó: Download windows XP Mode São 3 arquivos. Tem uns 600MB mas vale a pena. Melhor usar ele doq formatar o PC né. Se a dúvida resolver, posta aqui. Falou -
Opa, é isso aí colega Jorge, sempre que possível estou ajudando... Falou
-
Acabei de fazer, fresquinho: Circuito: Qualquer crítica em relaçao é bem vinda. Falou
-
Qual o valor da tensão de trabalho e corrente de cada led? Falou
-
Controle Motor Dc Com PIC (PWM) e Driver L298 (Ponte H)
MatheusLPS respondeu ao tópico de aender em Microcontroladores
Marsil, os pinos de enable só servem para ativar/desativar o chip. Nivel alto/baixo nesse caso. EDIT: Estive olhando o bloco interno do chip: Reparem nos pinos de Enable 1 e de IN 1 e In2. Eles vão para uma porta lógica. Estive pensando sobre a pergunta do colega e me parece que posso sim aplicar PWM ao ENABLE. A diferença que notei é que se aplicarmos o pwm no enable, o motor não pára de imadiato quando o PWM está em nível baixo. Fica uma espécie de roda livre. Ao contrário de aplicarmos PWM em um dos IN. Digo, se aterrarmos o IN2 e aplicarmos PWM ao IN1. Uma hora os dois serão 0 pela natureza do sinal PWM. Isso funciona como freio. o que vocês acham? Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Adicionado ao msn. Falou -
Controle Motor Dc Com PIC (PWM) e Driver L298 (Ponte H)
MatheusLPS respondeu ao tópico de aender em Microcontroladores
Opa, bom que tenha gostado do resultado. Do jeito que você quer, funciona sim perfeitamente. Podemos utilizar apenas 2 botões: você deve estipular um valor para o duty_cicle. Nesse exemplo que passo agora ele recebe 125 ou 50%. Se apertar o botão de ENABLE, ele ativa o chip, o motor começa a girar para um lado na velocidade programada. Se apertar de novo, ele pára o chip. O outro botão, inverte a rotação para o outro lado na velocidade desejada. Dessa forma o código pode se tornar bem mais simples utilizando as interrupções. Circuito: Código: #include <16F877A.h> #FUSES NOWDT //No Watch Dog Timer #FUSES XT //Clock <=4Mhz #FUSES PUT //Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #use delay(clock=4000000) #define botao_stop PIN_D2 #define botao_inverte PIN_D4 int1 modo=0, stop; void main() { output_high(PIN_B0); SETUP_CCP1(CCP_PWM); SETUP_CCP2(CCP_PWM); setup_timer_2(T2_DIV_BY_4,249,1); set_pwm1_duty(0); set_pwm2_duty(0); while (TRUE) { if (stop == 1) { output_high (PIN_B0); if (modo == 0) { set_pwm1_duty(125); set_pwm2_duty(0); } if (modo == 1) { set_pwm2_duty(125); set_pwm1_duty(0); } if (input(botao_inverte)) { modo++; do{} while(input(botao_inverte)); } } if (stop == 0) { output_low (PIN_B0); } if (input(botao_stop)) { stop++; do{} while(input(botao_stop)); } } } Arquivos: http://www.4shared.com/file/3ZszGjIp/PWM_L298_versao_2.html Nao deixe de ler esse tópico: http://forum.clubedohardware.com.br/motor-pwm-pic/857314 Dúvidas? Pergunte! Falou -
Controle Motor Dc Com PIC (PWM) e Driver L298 (Ponte H)
MatheusLPS respondeu ao tópico de aender em Microcontroladores
Fala garoto, claro q lembro de você..... Bem, vamos lá: Seguinte, sua lógica está correta sobre o funcionamento. Mas falta uns detalhes. você já estudou sobre o PWM? Um sinal de alta frequencia e que alteramos o ciclo de trabalho dele. Quanto mais alto for o ciclo de trabalho, mais potência entregamos ao motor. Esse ciclo de trabalho é o tempo do PWM que fica ON dividido pelo período total. Nesse caso, teremos que aumentar em mais 1 botão. Se você utilizar as interrupçoes do PIC fica fácil. Fica assim: 1 botão para incremento do ciclo do PWM e 1 botão para decremente do ciclo, sendo que o ciclo vai de 0 a 100%. 1 botão para troca de sentido do motor. 1 botão para o enable/disable... SE você usasse o CCS eu poderia fazer um código de teste pra você. Não sei programar no MikroC. Vou p faculdade agora e mais tarde monto o circuito de exemplo p você. EDIT: Fiz um exemplo. O código está simples e sem refinamento pois fiz ele rapidin aqui. Sei que é para outro compilador, mas serve para você ter uma ideia. Hospedei os arquivos para simulação. Só fazer o download lá em baixo: Circuito: Código: #FUSES NOWDT //No Watch Dog Timer #FUSES XT //Clock <=4Mhz #FUSES PUT //Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #use delay(clock=4000000) #define botao_incremento PIN_D0 #define botao_decremento PIN_D1 #define botao_stop PIN_D2 #define botao_inverte PIN_D4 int8 ciclo_1, ciclo_2; int1 modo=0, stop; void main() { output_high(PIN_B0); SETUP_CCP1(CCP_PWM); SETUP_CCP2(CCP_PWM); setup_timer_2(T2_DIV_BY_4,249,1); set_pwm1_duty(0); set_pwm2_duty(0); while (TRUE) { if (stop == 1) { output_high (PIN_B0); if (modo == 0) { if (input(botao_incremento)) { ciclo_1 = ciclo_1 + 5; do{} while(input(botao_incremento)); } if (input(botao_decremento)) { ciclo_1 = ciclo_1 - 5; do{} while(input(botao_decremento)); } set_pwm1_duty(ciclo_1); set_pwm2_duty(0); } if (modo == 1) { if (input(botao_incremento)) { ciclo_2 = ciclo_2 + 5; do{} while(input(botao_incremento)); } if (input(botao_decremento)) { ciclo_2 = ciclo_2 - 5; do{} while(input(botao_decremento)); } set_pwm2_duty(ciclo_2); set_pwm1_duty(0); } if (input(botao_inverte)) { modo++; do{} while(input(botao_inverte)); } } if (stop == 0) { output_low (PIN_B0); } if (input(botao_stop)) { stop++; do{} while(input(botao_stop)); } } } #include <16F877A.h> Link com os arquivos: http://www.4shared.com/file/sskt4SGf/PWM_L298.html Falou -
Controle Motor Dc Com PIC (PWM) e Driver L298 (Ponte H)
MatheusLPS respondeu ao tópico de aender em Microcontroladores
Bom, vamos lá: O pino RB0 está indo no pino ENABLE do L298. Se você leu o datashhet do L298, vai lembrar que esse pino é responsável pela habilitação/desabilitação do chip. Se você colocar nível alto, 5V, o chip é ativado, nível baixo, 0V, o chip é desativado ou seja o motor para. Os pinos RB1 e RB2 estão indo nos pinos INPUT 3 e INPUT 4. Mais uma vez, do datasheet, na página 6, na Figura 6: Interpretando a tabela acima: Se você colocar nível alto no INPUT 3 e nível baixo no INPUT 4, o motor gira para um lado, se você colocar nível baixo no INPUT 3 e nivel alto no INPUT 4, o motor gira para o outro lado. Simples. A unica coisa a ser feita no PIC é colcar as portas em nivel alto ou baixo. Caso queira utilizar o PWM, você aplica PWM em um dos INPUTS e o outro você aterra. Depois você inverte e ele gira devagar ou rápido para o outro lado. Qual compilador que você usa? Programa em C? Usa o proteus p simular? Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Dê uma olhada nesse tópico: Question of getc() E nesse: RS-232 data between PC and PIC getting jumbled SE você não entender, quando eu voltar da rua faço um exemplo p você. Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Atenção!!!! Algumas pessoas me disseram que as imagens não estavam aparecendo. Estão mudei todos de servidor, não utilizo mais o imageshack. Uso o http://imgur.com/ Quando a dúvida do colega acima. Nao estou familiarizado com a comunicação CDC. Falou -
Tutorial de PIC - Programação em Assembly
MatheusLPS respondeu ao tópico de Mulder_Fox em Microcontroladores
Excelente iniciativa colega Mulder_Fox!!! Quando comecei a programar nao encontrei uma apostila com linguagem mais didática. Aí acabei indo pro C! Boa! Falou -
Tópico excelente. Mais uma vez, o colega Faller esclarecendo de uma maneira eficaz as dúvidas do pessoal!!! Falou
-
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Tenta desinstalar os drivers USB do proteus, reinia o PC, instala d novo... Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Caro colega felipeetec, obrigado pelo comentário. Então, verifiquei o link e está funcionando sim: Projeto Final test man*~, ficou ótima sua aplicação! Funcionou direitinho! Acontece as vezes do 4shared dar pau! Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Exato, a comunicação HID é bem mais lenta. Tanto que HID encontramos mouse, joystick, etc O resto é bulk. Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Boa test man*~. Gostei do resultado obtido!! Fico contente que tenha se empenhado. Agora você já pode fazer o contrário. O Labview enviar dados ao PIC e fazer alguns leds acenderem? Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Como você sabe que ele está queimado? Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Aquele montagem com LCD não possuo mais. No entanto, tenho uma rotina de LCD de teste aqui: Código: #include <16F877A.h> #FUSES NOWDT //No Watch Dog Timer #FUSES XT //Crystal osc <= 4mhz #FUSES PUT //Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #use delay(clock=4000000) #include <lcd.C> /*void lcd_scroll_right(void) { lcd_send_byte(0, 0x1E); } //------------------------- void lcd_scroll_left(void) { lcd_send_byte(0, 0x18); } //Colocar essa parte do código logo abaixo da frase grande. for(i = 0; i < 20 ; i++) { lcd_scroll_left(); delay_ms(50); // scroll delay } */ void main() { lcd_init (); while (true) { lcd_gotoxy (1,1); lcd_putc("Teste LCD"); delay_ms(500); lcd_putc("\f"); delay_ms (500); lcd_gotoxy (1,2); lcd_putc("com PIC"); delay_ms (500); lcd_putc("\f"); delay_ms (500); } } Circuito: Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Olha, quando você pensa em fazer a comucação pela USB no PC, pelo menos entendo que o hardware deve fciar próximo ao PC. Para aumentar essa distância você pode usar módulos RF como comentei no outro tópico. Aí, nesse caso você precisa de 2 PICs: 1 vai estar no PC e o outro será o escravo q só receberá as ordens do primeiro PIC. Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
Recomendo que teste na protoboard primeiro. A chance de dar errado é grande no início. Falou -
TUTORIAL: Projeto PicUSB quase pronto PIC<-->RF<-->PIC<-->USB<-->PC
MatheusLPS respondeu ao tópico de MatheusLPS em Microcontroladores
você está correto. Utilizei um polarizado, eletrolítico, no pino VUSB de 47uF. O positivo vai no pino e o negativo no terra. Um amigo meu estava usando um verde grande q nao sei o nome e teve problemas. O de 100nF é para deixar a alimentação do PIC bem estável. Se você não utilizar um capacitor ali, quando tentar acender um led pelo PIC, ele simplesmente reinicia!!! Falou
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