Estoy haciendo un proyecto sobre el diseño de voltímetros. Una de las condiciones del proyecto es que debe tener una pantalla analógica. Después de la investigación, descubrí que usar un motor paso a paso es una de las soluciones. El motor paso a paso X-25, que está diseñado para grupos de automóviles, es lo suficientemente compacto y potente como para impulsar un indicador en el dial.
Sin embargo, estoy teniendo dificultades para girar el motor a un ángulo particular según el voltaje medido.
He adjuntado el esquema del circuito y el código snap. Gracias de antemano por su ayuda.
while (1)
{
voltage = ADC/204.8*18;//ADC/18.618;
if (voltage>=0 && voltage<=3)
{
// OCR1A = 65;
degree = 34;
while(degree)
{
PORTB = 0x01; //0001
_delay_ms(10);
PORTB = 0x04; //0100
_delay_ms(10);
PORTB = 0x02; //0010
_delay_ms(10);
PORTB = 0x08; //1000
_delay_ms(10);
degree--;
}
//_delay_ms(1500);
}
else if(voltage>3 && voltage<=4)
{
//OCR1A = 175;
degree = 75;
//All pins of PORTB as output
while(degree)
{
PORTB = 0x01; //0001
_delay_ms(10);
PORTB = 0x04; //0100
_delay_ms(10);
PORTB = 0x02; //0010
_delay_ms(10);
PORTB = 0x08; //1000
_delay_ms(10);
degree--;
}
//_delay_ms(1500);
}
else
{
//OCR1A = 300;
degree = 100;
while(degree)
{
PORTB = 0x01; //0001
_delay_ms(10);
PORTB = 0x04; //0100
_delay_ms(10);
PORTB = 0x02; //0010
_delay_ms(10);
PORTB = 0x08; //1000
_delay_ms(10);
degree--;
}
//_delay_ms(1500);
}
}
}
Saludos Srinidhi