-
Posts
7 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Raphael Nazário
-
-
Olá pessoal, estou tentando comunicar o blender com o arduino, via python.
o programa da erro na hora de importar a biblioteca bge
--->import bge
Não encontrei a solução. Podem me ajudar?
Estou seguindo esse tutorial: https://blenderartists.org/forum/showthread.php?236135-Arduino-controls-Blender-object-in-real-time -
Bommu, muito obrigado pela ajuda e por ter achado a explicação! Muito obrigado mesmo.
Então é isso mesmo, tenho realmente que aterrar o pino 10! Independente do proteus estar funcionando ou não.
Novamente, Grato pela Fineza.
Abçadicionado 1 minuto depois3 horas atrás, Bommu Perneta disse:Agora já to com dúvida no teu código uhauhauhaahu
Coloquei aqui no mkroC Pro e está dando erro em "contagem" pois não foi declarado. Resolvi declarando no início ele como int.
Depois está dando Asssigning to non-lvalue para "vetor=10;", "vetor=20" e "vetor =30".
Realmente você colou rb0 como entrada e o resto da porta B como saída.
Sobre o circuito:
Não estou vendo erro. Só falta ver teu circuito real...
adicionado 4 minutos depoisAqui um projeto Parecido com o teu.
Pelo que to vendo tem que ter uma referencia e um positivo ... acho que não teve referencia no teu circuito e quando você colocou o pino você conseguiu isso...
adicionado 55 minutos depoisAcho que achei a resposta
"The PIC16F628A has a PGM pin that it uses in LVP (Low Voltage Programming) mode. It shares the same pin as RB4. The PGM pin must be tied to ground under normal operation and pulled high during programming (your programmer should pull it high during a programming sequence). If the PGM pin is left floating, the chip will randomly reset for no explicable reason. Or just not run at all."
Então o pino 10 tem que estar aterrado ou em valor alto se não corre o risco de dar resete randomicamente.
Valeu mesmo!
-
Coloquei como saída, apanas o RB0 como entrada. Lembrando que no simulado está correto. Apenas no Físico que tenho que aterrar o Rb4 para que funcione.
segue o código completo:
int i=0,j=0,k=0, l=0; // Variáveis incrementais dos contadores
int vetor[10]; // Declaração do vetor que armazena a sequencia das entradasvoid temp1()
{
contagem = 0;
while (contagem <= 1000)
{
}
}
void temp2()
{
contagem = 0;
while (contagem <= 500)
{
}
}
void limpavetor()
{
i=0;
j=0;
k=0;
l=0;for (l=0;l<=9;l++)
{
vetor[l] = 0;
}
}void interrupt() // Função de interrupção
{
if(INTCON.TMR0IF ==1)
{
contagem++; //para cada interrpção do TMR0 incrementa a variável contagem
TMR0 = 0;
INTCON.TMR0IF = 0; //limpa o overflow.
}if(INTCON.INTF == 1) // Verificação de nível lógico alto da porta RB0(flag INTF)
{
limpavetor();
portb.rb6 = 1;
delay_ms(1000);
portb.rb6 = 0;
INTCON.INTF = 0;
}
}void record()
{
limpavetor();
while (porta.ra4 != 1)
{
if(porta.RA1== 1 )
{
while(porta.RA1==1)
{
}
vetor= 10;
i=i+1;
temp2();
//delay_ms(500);
}
if(porta.RA2== 1 )
{
while(porta.RA2 == 1)
{
}
vetor= 20;
i=i+1;
temp2();
//delay_ms(500);
}
if(porta.RA3 == 1)
{
while(porta.RA3 == 1)
{
}
vetor=30;
i=i+1;
temp2();
//delay_ms(500);
}
}
}
void play()
{
portb.rb5 = 1;
temp1();
portb.rb5=0;
temp1();
for(j = 0;j <= 9;j++)
{
if(vetor[j] == 10)
{
portb.rb1=1;
temp1();
portb.rb1=0;
temp1();
}
if(vetor[j] == 20)
{
portb.rb2=1;
temp1();
portb.rb2=0;
temp1();
}
if(vetor[j] == 30)
{
portb.rb3=1;
temp1();
portb.rb3=0;
temp1();
}
}
limpavetor();
}void main()
{
TRISA= 1;
PORTA=0;
TRISB = 0B00000001;
PORTB = 0x00;
CMCON=7; //comparadores Desativados
INTCON.GIE = 1;
INTCON.PEIE = 1;
INTCON.INTE = 1;
INTCON.TMR0IE = 1;
OPTION_REG.INTEDG = 1;
OPTION_REG = 0b10000001;
TMR0 = 0;while(1)
{
record();
play();
}
} -
Bom, no proteus tá de acordo, porém no físico aterrei o pino 10 (RB4), para que funcionasse. Gostaria de ver o código completo ?
-
-
Boa noite a todos. Estou realizando um projeto com o pic16f628a e na simulação (no proteus) funciona de acordo com o esperado. Porém, ao montar o circuito físico, notei que a porta 10 do pic precisou ser aterrada para que funcionasse de acordo com o esperado. Não sei explicar o porque desta situação. Alguém pode me ajudar? Desde já sou grato! Peço perdão pela desorganização, ainda estou comentando o código. Abraços!
Segue a função principal:
void main()
{
TRISA= 1;
PORTA=0;
TRISB = 0B00000001;
PORTB = 0x00;
CMCON=7; //comparadores Desativados
INTCON.GIE = 1;
INTCON.PEIE = 1;
INTCON.INTE = 1;
INTCON.TMR0IE = 1;
OPTION_REG.INTEDG = 1;
OPTION_REG = 0b10000001;
TMR0 = 0;while(1)
{
record();
play();
}
}
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
arduino, python e blender
em Programação - outros
Postado
Pois é Isrick, to tentando de tudo aqui, não tá indo. Mas obrigado de qualquer forma.