HOMENAGEM
† 12 de março de 2016
Quem está conectado?
Há 177 usuários online :: 1 registrado, 0 invisíveis e 176 visitantes :: 2 motores de buscasandy silva de oliveira
O recorde de usuários online foi de 362 em Sex 9 Abr 2021 - 22:11
Últimos assuntos
Top dos mais postadores
Rafael Silveira (7816) | ||||
Caca Silva (6057) | ||||
renatoscp (3891) | ||||
CMeletronica (3234) | ||||
michel chagas (2791) | ||||
Railson (2119) | ||||
alexsandro rodrigues de a (1835) | ||||
naldo santos (1625) | ||||
ablacon64 (1222) | ||||
gilvantexas (1061) |
Medidor de Velocidade
Ajuda! Medidor de velocidade.
Página 1 de 1
Ajuda! Medidor de velocidade.
Boa tarde amigos do Forum. Gostaria de uma ajuda no meu projeto de medidor de velocidade usando 8051 (AT89S52).
Minha logica foi feita utilizando 2 sensores fototransistor um para dar partida no timer e o outro para parar o timer.
Meu codigo ficou assim:
#include <AT89X52.h>
#include <stdio.h>
unsigned char contador_velocidade; //onde ira colocar o valor final da velocidade
unsigned long ciclos_timer; //usado para contar as interrupções
unsigned int acumulador; //utilizado para fazer a formula da velocidade
unsigned int acumulador2; //utilizado para fazer a formula da velocidade.
#define valor_inicial_timer0 15535
#define valor_TH0 60
#define valor_TL0 175
#define chave1 P3_0 //chave start do timer
#define chave2 P3_1 //chave onde encerra o timer e faz a formula da velocidade
#ifdef MONITOR51
char code reserve [3] _at_ 0x23;
#endif
void IntTimer0() interrupt TF0_VECTOR
{
TF0=0;
ciclos_timer=ciclos_timer+1;
TL0=175;
TH0=60;
}
void main (void)
{
P3=0; //zera a porta para uma melhor visualização na simulação.
while(1)
{
contador_velocidade=0; //zera o contador onde mostra a velocidade final.
ciclos_timer=0; //zera o contador de interrupções.
acumulador=0;
TR0=0;
while(chave1==1) //verifica o estado da chave de start
{
chave1=0;
TMOD=1;
TCON=0;
TH0=60;
TL0=175;
TR0=1; //ligar timer
while(chave2==0)
{
EA=1;
ET0=1;
}
chave2=0;
acumulador=ciclos_timer/20;
acumulador2=30/acumulador;
#ifndef MONITOR51
SCON = 0x50;
TMOD |= 0x20;
TH1 = 221;
TR1 = 1;
TI = 1;
#endif
P2 ^= 0x01;
printf ("Velocidade Média= %u Km/h \n",acumulador2);
}
}
}
Este codigo envia os dados via serial para ser mostrado no hiperterminal do windows, ai que vem o meu problema na formula da velocidade. Estou com meus sensores exatamente a 30cm do outro. e assim tendo a distancia e o tempo do timer consigo ter a velocidade, mais ele esta mostrando no maximo 30km/h. Se alguem poder m ajudar... vlw.
Minha logica foi feita utilizando 2 sensores fototransistor um para dar partida no timer e o outro para parar o timer.
Meu codigo ficou assim:
#include <AT89X52.h>
#include <stdio.h>
unsigned char contador_velocidade; //onde ira colocar o valor final da velocidade
unsigned long ciclos_timer; //usado para contar as interrupções
unsigned int acumulador; //utilizado para fazer a formula da velocidade
unsigned int acumulador2; //utilizado para fazer a formula da velocidade.
#define valor_inicial_timer0 15535
#define valor_TH0 60
#define valor_TL0 175
#define chave1 P3_0 //chave start do timer
#define chave2 P3_1 //chave onde encerra o timer e faz a formula da velocidade
#ifdef MONITOR51
char code reserve [3] _at_ 0x23;
#endif
void IntTimer0() interrupt TF0_VECTOR
{
TF0=0;
ciclos_timer=ciclos_timer+1;
TL0=175;
TH0=60;
}
void main (void)
{
P3=0; //zera a porta para uma melhor visualização na simulação.
while(1)
{
contador_velocidade=0; //zera o contador onde mostra a velocidade final.
ciclos_timer=0; //zera o contador de interrupções.
acumulador=0;
TR0=0;
while(chave1==1) //verifica o estado da chave de start
{
chave1=0;
TMOD=1;
TCON=0;
TH0=60;
TL0=175;
TR0=1; //ligar timer
while(chave2==0)
{
EA=1;
ET0=1;
}
chave2=0;
acumulador=ciclos_timer/20;
acumulador2=30/acumulador;
#ifndef MONITOR51
SCON = 0x50;
TMOD |= 0x20;
TH1 = 221;
TR1 = 1;
TI = 1;
#endif
P2 ^= 0x01;
printf ("Velocidade Média= %u Km/h \n",acumulador2);
}
}
}
Este codigo envia os dados via serial para ser mostrado no hiperterminal do windows, ai que vem o meu problema na formula da velocidade. Estou com meus sensores exatamente a 30cm do outro. e assim tendo a distancia e o tempo do timer consigo ter a velocidade, mais ele esta mostrando no maximo 30km/h. Se alguem poder m ajudar... vlw.
Skarface- Nível 1
- Mensagens : 2
Data de inscrição : 04/11/2012
Idade : 34
Localização : Cachoeirinha
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Ontem à(s) 20:57 por sandy silva de oliveira
» >>>>>>> Sobre a criação de novos tópicos<<<<<<<<<<<<<<<
Dom 24 Mar 2024 - 16:10 por crisnich
» Defeito intermitente amplificador Ciclotron TIP5000
Qua 20 Mar 2024 - 9:13 por fastaveira
» Esquema Amplificador Audio Leader AL 5.0
Qua 20 Mar 2024 - 9:01 por fastaveira
» MK4000 - FONTE CHAVEADA FULL BRIDGE
Dom 17 Mar 2024 - 18:43 por sandy silva de oliveira
» amplificador class h tailandes
Sex 15 Mar 2024 - 22:41 por mehuysal
» Amplificador Super Strong
Qui 14 Mar 2024 - 13:03 por Reginaldo Silva
» Amplificador Classe D UCD1500
Qua 13 Mar 2024 - 13:07 por Guille
» NS450 - FONTE CHAVEADA PARTE 2
Seg 11 Mar 2024 - 6:55 por ffernand3s
» DETECTOR DE METAIS IDX-PRO
Sex 1 Mar 2024 - 16:41 por Benyamin
» Amplificador Fonte Simples em teia de aranha
Sex 1 Mar 2024 - 12:17 por Reginaldo Silva
» Manutenção Gradiente 366 / 266
Qui 29 Fev 2024 - 21:40 por tiaogaviao
» Criação pcb esquema phono cápsula ceramica
Qui 29 Fev 2024 - 16:58 por warley cesar
» DETECTOR DE METAIS MKII (PINPOINTER)
Qua 28 Fev 2024 - 19:09 por Benyamin
» Fonte chaveada compacta IR2153D - 10 x 10 cm
Ter 27 Fev 2024 - 22:02 por microbit