viernes, 23 de julio de 2010

El auto que quería ser ratón






El circuito para los sensores de distancia
ojo que no use los lm741 para amplificar la señal de los sensores de distancia. En vez de eso ocupe 358.














el codigo escrito en ccs:

#include <16F84A.h>

#FUSES WDT                      //Watch Dog Timer
#FUSES XT                       //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT                      //Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading

#use delay(clock=4000000)

front()
{
output_a(0b011);
delay_ms(100);
}

rear()
{
output_a(0b110);
delay_ms(100);
}

stop()
{
output_a(0x00);
delay_ms(100);
}

void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);setup_wdt(WDT_36MS);
   int8  portb;
   // TODO: USER CODE!!
   while(1)
      {
      portb = input_b();     
      switch (portb)
         {
         case 0b10000000:     //escapar 
         front();
         break;
         case 0b01000000:
         rear();
         break;
         case 0b00100000:
         front();
         break;
         default:
         stop();
         break;
         }
      }    
}

miércoles, 7 de julio de 2010

Contro de Motor con Acelerometro

La idea era poder controlar el sentido de giro y las velocidad de un motor dc. El motor que ocupe es de un auto radio controlado, marca radioshack que mi padre me regalo hace unos 10 años atrás.
Al poner el acelerometro en posición horizontal no hay giro del motor, al variar el ángulo hacia adelante acelera variando el pwm. Y si se varía el ángulo hacia atrás comienza a girar hacia el toro lado, pero a máxima velocidad. Con mas ángulo hacia atrás menos velocidad.



Ahorra comenzare con otro sensor que es uno de flexión para hacer un variado de pwm, pero el sensor estará montado en un dedo, para simular un acelerador.