Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Gerik

#1
Electrónica / Re: Duda con llave optica S525
28 Mayo 2011, 03:28 AM
no ya lo intente asi y no  nada probe una de 10k y tampoco


la cosa es que la necesito para contar las veces que pasa en una rueda dentada, es decir que me genere una señal cuadrada
#2
Electrónica / Duda con llave optica S525
27 Mayo 2011, 05:37 AM
Bueno necesito trabjar una llave optica S525
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=425-2680-5-ND

alguien sabe como se debe conectar ??
#3
Electrónica / Re: Duda Odometro
13 Mayo 2011, 04:11 AM
antes que todo gracias por contestar...

Ahora lo que tu dices si esta bien pero si digamos no di toda la vuelta el micro no se daria cuenta de esto por eso hago huecos cada 2 cm para medir distancias mas cortas

respecto a lo de ir solo hacia adelantes pues es que, asi me lo exigieron en la Universidad xD que cuente una Distancia A-B y si se desplaza una ditancia B-C se debe restar a la distancia A-B

Ejm: si avanzo 100 y me devuelvo 10 debe mostar 90 (si me devuelvo mas de 100 los display me deben mostar 0 )

"Aunque estoy leyendo mas sobre rebotes e interrupciones que creo me han dado una medio idea de como usar un pin para hacer 2 cosas"


#4
Electrónica / Duda Odometro
12 Mayo 2011, 06:46 AM
Bueno tengo que hacer un odometro con el Pic 16F84A para mi clase de Microcontroladores el proyecto debe hacer basicamente lo siguiente:
1.si la rueda va hacia adelante contar cuanto avanzo
2.si rueda va hacia atras decrementar lo avanzado.
3.1 pulsador para guardar un dato, otro para visualizar ese dato.
4 la visualizacion se muestra en 3 displays.


"La solucion pensada po mi es hacer una rueda de un perimetro por decir 30cm y hacer huecos cada 2 cm cerca al borde de la rueda, y pues usar un contador optico para que me genere las señales"

Ahora mi duda es como puedo hacer para que el micro se de cuenta de que la rueda esta andando hacia adelante o hacia atras

PD: Todos los pines ocupados (7 pines para display, 3 mas para habilitarlos ya sea anodo o catodo,1para guardar el dato, 1 para mostrar ese dato, y el que sobra que sera el RA4/TOCK0 que sera el que reciba la señal del optocontador)
#5
Hardware / Problema Con el Mouse!!
9 Diciembre 2010, 14:19 PM
Bueno mi duda es que cada vez que enciendo o reinicio el PC no me reconoce el mouse y tengo que desconectar y conectar el mouse.
alguien sabe como puedo solucionar este problema???
#6
Programación C/C++ / Re: duda pilas
18 Octubre 2010, 05:13 AM
Código (cpp) [Seleccionar]
int Sumar()
   {Nodo *recorrer;
    recorrer = inicio;
    if(recorrer!=NULL)
     {do
       {a+=recorrer->Dato;
       recorrer = recorrer->sig;
       }
       while(recorrer->sig!=NULL);
       a+=recorrer->Dato;
    }else
     {cout << "Pila vacia" << endl;}
     return a;}

En el main declaras la funcion sumar pero no la has implementado, solo era modificar dos lineas y yap :D :D :D :D :D
#7
Programación C/C++ / Simulacion Banco
4 Octubre 2010, 04:11 AM
Este programa crea o atiende clientes (lo hace random) lo maximo a crear o atender son 4 clientes ejem;

Se crearon n clientes (los muestra)
se atendieron n clientes (borra los atendidos de acuerdo TDA Cola)

ahora lo que intento hacer en modo grafico es mostar pero cuando intento mostrar con outtextxy (x,y,"string") siempre se sobreescribe ejem:
se crearon # clientes
# es donde se sobreescriba obviamente al llmar a la funcion
como podria borrar solo esa parte
no se si me hice entender (dejo el codigo asi es mas facil de entender lo que quiero hacer xD)


Código (cpp) [Seleccionar]
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

class Nodo
  {Nodo *sig;
   int id;
   public:
   Nodo()
       {sig=NULL;}
   Nodo(int id)
       {sig=NULL;
        setId(id);}
  Nodo* getNodo()
       {return sig;}
  void setNodo(Nodo *siguiente)
       {sig=siguiente;}
   int getId()
    {return id;}
   void setId(int valor)
    {id=valor;}
   };

class Lista
   {Nodo *inicio, *final;
    int  cantidad;
    public:
    Lista()
         {inicio=NULL;
          final=NULL;
          cantidad=0;}
   Nodo * getinicio()
       {return inicio;}
   Nodo * getfinal()
       {return final;}
   int cantidadNodos()
       {return cantidad;}
   bool insertar(Nodo *nodo)
       {if(inicio==NULL)
          {inicio=nodo;
           final=nodo;}
        else
          {final->setNodo(nodo);
           final=nodo;}
        cantidad++;
        return true;}
   void mostrar()
       {if(inicio==NULL)
          {exit;}
        else
          {Nodo *p;
           p=inicio;
           int conta=1;
           int miprioridad=-1;
           cout<<endl;
           while(p!=NULL && conta<=cantidad)
               {cout<<"C"<<p->getId()<<"\t";
       p=p->getNodo();
                conta++;};
          }
       }
   void mostrarNodosDirecciones()
       {if(inicio==NULL)
          {exit;}
        else
          {Nodo *p;
           p=inicio;
           int conta=1;
           int miprioridad=-1;
           cout<<endl;
           while(p!=NULL && conta<=cantidad)
                {cout<<"Nodo C"<<p->getId()<<" Direccion --> "<< p <<" Nodo Sig-->  "<<p->getNodo()<<endl;
        p=p->getNodo();
                 conta++;};
           }
       }
   bool eliminarNodo(int total) //cantidad de nodos a eliminar
      {if(inicio==NULL ||  cantidad==0)
         {cout<<"Lista vacia "<<endl;
          return false;}
       else
         {if(total>cantidad)
            {cout<<endl<<"Solo puede eliminar como maximo "<< cantidad  <<" nodos."<<endl;
             return false;}
             int conta=1;
             Nodo *p;
             p=inicio;
             while(p!=NULL && total>0 && cantidad>0)
               {inicio=inicio->getNodo();
                   total--;
                   cantidad--;
                   delete p;
                   p=inicio;};
             if (cantidad==0)
                inicio=NULL;
             return true;
         }
      }
   bool eliminarNodo()
       {if(inicio==NULL || cantidad==0)
           return false;
        else
          {Nodo *p;
           p=inicio;
     inicio=inicio->getNodo();
           delete p;
           cantidad --;
           return true;}
       }
   };

class Simulacion
  {Lista servidor;
   Lista clientes;
   int  codigo;
   public:
   Simulacion()
      {codigo=0;}
   generarClientes(int cantidad)
      {for(int x=1;x<=cantidad;x++)
    {codigo++;
     Nodo *minodo=new Nodo(codigo);
     clientes.insertar(minodo);}
       }
   int cantidadClientes()
      {return clientes.cantidadNodos();}
   int atenderClientes()
      {int valor;
       if(clientes.cantidadNodos()==0)
          return 0;
       valor=random(4);
       clientes.eliminarNodo(valor);
       return valor;
      }
   mostrarClientes()
     {//clientes.mostrarNodosDirecciones() ;
      clientes.mostrar();}
   mostrarServidor()
      {}
   };

int main()
   {Simulacion lab;
    bool activo=true;
    int canti=0;
    randomize();
    int c=0;
    int turno=-1;
    c=getch();
    cout<<"Presione ENTER para continuar la simulacion y ESC para salir..."<<endl;
    while(c!=27)
         {//determinar si llegan clientes o si atienden
          turno=random(2);
          if(turno==1)
            {//crear clientes
             int cuantos=0;
             cuantos=random(5);
             lab.generarClientes(cuantos);
             cout<<endl<<"Se crearon  "<<cuantos<<"  clientes."<<endl;
             lab.mostrarClientes();}
          else
            {//atender clientes
             canti=lab.atenderClientes();
             cout<<endl<<"Cantidad a atender "<<canti<<endl;
             if (canti>0)
                 lab.mostrarClientes();
            }
          c=getch();
         }
  clrscr();
  cout<<endl<<"El servidor no admite mas clientes..."<<endl;
  if(lab.cantidadClientes()>0)
    {cout<<"Clientes pendientes por atender... "<< lab.cantidadClientes() <<endl;
     lab.mostrarClientes();
     while(lab.cantidadClientes()>0) //si quedan clientes atenderlos
      {canti=lab.atenderClientes();
          cout<<endl<<"Cantidad a atender "<<canti<<endl;
          lab.mostrarClientes();}
     cout<<endl<<"Se atendieron todos clientes..."<<endl;
    }
  getch();
  }


#8
Compile este sencillo ejemplo y solo me ejecuta un pantallazo negro
Código (cpp) [Seleccionar]
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <graphics.h>

int main()
  {int driver=DETECT,mode;
   initgraph(&driver,&mode,"C:\BC5\BGI");
   int midx=getmaxx()/2,midy=getmaxy()/2;
   setbkcolor(5);
   outtextxy(midx,midy,"plop");
   getch();
   closegraph();
   return 0;
   }



#10
Programación C/C++ / Ayuda con modo grafico
25 Septiembre 2010, 05:33 AM
Tengo cierto programa en modo texto, necesito hacer unas modificaciones para mostrar en modo grafico pero pocon pocon de ese modo si alguien me recomienda un tutorial le agradeceria