TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: juan-jubilado en 21 de Junio de 2005, 11:44:00

Título: por donde empezar?
Publicado por: juan-jubilado en 21 de Junio de 2005, 11:44:00
Hola amigos:
En primer lugar deciros que soy nuevo en el foro, en el cuál espero ser bien recibido, sobre todo para pediros consejo.
Como el enunciado indica mi pregunta es: Por donde empezar a familiarizarme con los micros?. El tema, o mas bien asunto, es una maqueta de tren la cuál actualmente está medio funcionando con un circuito digital muy casero a base de puertas, flip-flops, inversores y buffers, pero no acaba de convencerme. La cuestión es cómo podria sustituir todo éste embrollo que tengo montado, con un simple microcontrolador, pero claro está empezando por el principio. Pero como?

Espero vuestras sugerencias. Gracias

Juan

Pdta. También necesitaré ayuda para determinar el chip mas conveniente
Título: RE: por donde empezar?
Publicado por: Nocturno en 21 de Junio de 2005, 12:00:00
Hola Juan, ¿cómo no vas a ser bien recibido?. Con los brazos abiertos, ya verás como entre todos conseguimos modernizar esa peaso de maqueta que tienes Muchas risas

Mira, hace tiempo publiqué un link con muy buena pinta y del que seguramente podrás sacar muchas ideas.
Échale un vistazo y seguimos hablando, ¿vale?

http://miarroba.com/foros/ver.php?foroid=382972&temaid=2075044
Título: RE: por donde empezar?
Publicado por: adrian2a1 en 21 de Junio de 2005, 16:58:00
Creo que este también te puede ayudar:

http://miarroba.com/foros/ver.php?foroid=382961&temaid=3336381

Suerte

Adrian.


Título: RE: por donde empezar?
Publicado por: juan-jubilado en 22 de Junio de 2005, 10:05:00
Hola amigos:
En primer lugar daros las gracias por atender tan rapidamente a mi comunicado, y tambien por aceptarme como nuevo "micromaniaco".
Quisiera puntualizar alguna cosilla respecto a la maqueta, ya que en su momento no lo cité. El comandamiento de las locomotoras y los desvios está digitalizado, lo que me interesa realmente es automatizar el funcionamiento de los semaforos conjuntamente con las zonas de frenado y parada de las locomotoras. El trazado del cicuito está dividido en dos ovalos, interconectados, que estan a su vez divididos en tres zonas o "cantones". Cada cantón está protegido con un semaforo y una zona de frenada, y ésto es lo que quiero, si es posible, comandar con un pic. Tambien tengo instalados en cada cantón detectores de presencia por infrarojos, que se activan al pasar un tren. Además éste inicio me serviria de experiencia para una futura ampliación, la cuál ya está en proyecto. Por cierto,de que manera puedo seleccionar el pic mas conveniente?.
Perdón por el "tocho" que os he soltado, y solo es un resumen, y gracias de nuevo por atenderme.
Saludos.

Juan
Título: RE: por donde empezar?
Publicado por: Nocturno en 22 de Junio de 2005, 10:45:00
Ni idea de maquetas, ni de cómo debería interaccionar el PIC con tu maqueta, pero lo importante es que tú tengas claro lo que tiene que hacer el micro.

Para empezar yo te recomendaría un micro básico, porque no necesitas mucha potencia de cálculo ni prestaciones espectaculares, aunque sí que sería bueno un micro con muchos pines de entrada y salida, para poder "engancharle" muchos sensores, semáforos y "cantones".

Ese micro podría ser el 16F877.
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 24 de Junio de 2005, 11:39:00
Hola nocturno66:
Una curiosidad, lo de nocturno significa que vives de noche?, es broma. Gracias por indicarme un camino de inicio, aunque creo que no tendré suficiente, ya que mis conocimientos en este campo son nulos, pero mis ansias por aprender son infinitas, y me temo que necesitaré algo mas que consejos. En éste instante sólo creo saber lo que quiero que realize el micro, pero no se como interpretarlo de forma que lo entienda. Tengo una serie de señales de entrada (sensores), y otras tantas señales de salida (semaforos, decoders de frenada y paro). La verdad es que no se como mezclar todo este inmenso "mejunje" para que se obtenga un delicioso manjar. Hasta ahora lo tenia todo bastante claro con mi "embrollo" de "escarabajos" digitales, pero debo reconocer que a partir de aqui se agotan mis recursos (cosa de la edad), por lo tanto necesitaré de toda tu influencia, si ello es posible, para levar a buen puerto esta nave.
Mi siguiente pregunta es: como seguir?
Gracias
Juan_jubilado(y no es broma)
Título: RE: por donde empezar?
Publicado por: Nocturno en 24 de Junio de 2005, 12:17:00
Bueno, creo que habría que describir con todo lujo de detalles qué quieres que haga el micro, determinando cuál será la respuesta que debe dar ante las distintas situaciones con que se pueda encontrar.
Desconozco la complejidad del control ferroviario, pero supongo que tu problema será divisible en muchos problemas chiquititos que en el límite se podrían reducir a conclusiones del tipo:

- si los sensores S1, S2, ..., Sn están encendidos/apagados según esta plantilla P0, P1, ... Pn entonces los actuadores estarán configurados según esta otra plantilla A0, A1, ... An.

Donde pongo Px y Ax entiendo que hay ceros y unos.

Lo ideal sería que hubiera muchas sentencias como la anterior con "n" lo más pequeño posible, es decir, que el diseño será más fácil en tanto en cuanto la interdependencia entre sensores sea mínima.

¿Te animas a describirlo?, quizás con un dibujo puedas aclarar bastante mejor el tema.
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 27 de Junio de 2005, 01:53:00
Hola:
En primer lugar, he estado pensando lo que dijiste, te diré que una vez repasados mis esquemas y el montaje fisico, tengo un total de 20 señales de entrada y 14 de salida, las cuales suman 34, y según creo el número maximo de E/S del pic que indicas es de 33. Mis preguntas serian:
1.- Hay algún micro con mas E/S?
2.- Pueden utilizarse las patillas de comunicación (E/S), como entrada y salida al mismo tiempo, sin solaparse claro, debidamente configuradas? Si no es asi, que otra solución existe?.
El circuito que tengo montado no es secuencial, sino combinacional, es decir no sigue una constante de tiempo. Intentaré describirlo lo mas gráficamente posible, en un próximo mensaje.
Saludos.
Título: RE: por donde empezar?
Publicado por: Nocturno en 27 de Junio de 2005, 02:45:00
En ese caso hay varias alternativas, una de ellas puede ser multiplexar entradas y salidas.

De todas formas yo utilizaría expansores de puertos por I2C y un micro más pequeño puesto que ya no necesito tantos pines.

Echa un vistazo al PCF8575 que es un expansor de 16 pines de entrada y salida por I2C. Es un chip barato que podría solucionar tu problema con 3 unidades del mismo conectadas al mismo bus I2C, con lo que sólo gastarías 2 pines de tu micro.

http://focus.ti.com/docs/prod/folders/print/pcf8575.html
Título: RE: por donde empezar?
Publicado por: RaDoN en 27 de Junio de 2005, 08:23:00
Hay una páginilla con la que yo "aprendi", vamos lo poco que sé ... "Ero-Pic", que tiene un tutorial bastante buenecito para empezar desde 0, hace poco que empece esto y recuerdo lo complejo que es empezar y no desmoralizarte por el camino, que cuando lees tutoriales y el tio te habla como si fueses un ingeniero industrial de la Nasa, resulta bastante frustante. Te dejo la url: http://perso.wanadoo.es/luis_ju/pic/ind_pic.html

Es sobre todo programación en ASM (ensamblador), que yo creo que antes de tocar C u otro lenguaje estilo Visual Basic es fundamental saber como trabajo el micro a nivel de hardware.

Algo más ... tengo curisidad sobre los sensores que usa tu maqueta de tren, aver si puedes detallarlos Flash
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 28 de Junio de 2005, 01:54:00
Hola nocturno:
Debo confesar que estoy perdido, pues de electrónica sólo tengo nociones muy limitadas (mi fuerte es la mecánica), la verdad es que no tengo ni idea de lo que es un expansor de puertos(me suena a abocardador). Puedes indicarme algún tutorial (en español) en el que se explique cuál es su funcionamiento, para poder entender que estoy haciendo?.
saludos.

Hola Radon:
Gracias por el tutorial, es muy interesante y espero que me ayude a entender como funciona este mundo de los micros, sobre todo me gusta el lenguaje que se utiliza, es bastante asequible.
Respecto a los sensores, puedo mandarte a tu correo (si me lo indicas)el articulo juntamente con el esquema electrónico y la lista de componentes del mismo. Utiliza diodos y fototransistores de infrarrojos, formando una barrera.
Saludos.

Juan (desde Badalona)
Título: RE: por donde empezar?
Publicado por: Nocturno en 28 de Junio de 2005, 02:30:00
Un expansor de puertos es un dispositivo al que tu le dices: "quiero sacar un uno por el pin 14, un 0 por el pin 11, y los demás los dejas como estén"
Concretamente el que te comento tiene 16 pines de entrada / salida que puedes comandar con un protocolo llamado I2C y que sólo necesita dos pines de tu microcontrolador.
Seguramente en el tutorial que te ha pasado Radón, y que está de escándalo por cierto, aparecerá algo de dicho protocolo.
Si quieres más detalles de estos chips puedes mirar la datasheet que aparece en el link que te dejé más arriba.
De todas formas, no te agobies. De momento ve mirando el tutorial y ve preguntando por aquí. Vamos paso a paso.

Por cierto, podrías poner esos esquemas en el almacén del foro para que los pudiéramos ver todos. El almacén está aquí:
http://todopic3.foro.st
Título: RE: por donde empezar?
Publicado por: RaDoN en 28 de Junio de 2005, 04:24:00
Pues mi correo es the_radon@hotmail.com , sobre el protocolo I2C, creo que ese tutorial no lo comenta, es mas bien orientado a iniciarse desde 0 y con el PIC 16F84a (con el que comienza todo el mundo creo). Y como este protocolo no forma parte del hard de este PIC, no lo contempla. Pero nada que preocuparse hay unos PDF, sobre la serie 16F87x, que son una especie de datasheet donde te lo comentan todo, en castellano!!!, y con ejemplos sobre todos los módulos de estos PICs, como son el conversor ADC, SPI, I2C, comunicación en paralelo, interrupciones posibles de este, etc ... Es buenisimo!! te enseña los pasos a configurar de cada uno y como usarlos. Voi a ver si encuentro el texto y edito el post con la url.
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 28 de Junio de 2005, 10:34:00
Ya he colgado en el almacen el fichero del detector, espero que le sirva a alguien, a mi particularmente me funciona perfectamente. He tenido que eliminar unas fotos que habia con detalles del montaje, por problemas de volumen.

Saludos.

Juan-jubilado
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 30 de Junio de 2005, 08:25:00
Me gustaria pediros vuestra opinión respecto de un problema que tengo en el montaje actual (aunque no trata de micros creo que podreis ayudarme). Como ya os comenté, actuálmente tengo montado un circuito a base de puertas lógicas, todo ello sobre una placa de pruebas, y un sinfin de cables entrecruzados para establecer la interconexión entre los chips, y luego otra serie de cables para las señales de E/S. Todas las conexiones están hechas sin aislamientos ni optoacoplamientos de ningún tipo. El problema es el siguiente:
A la puesta en marcha, todo funciona aparentemente bien pero al cabo de un tiempo, diez o quince minutos, empieza el desmadre, semáforos que no se mantienen en su estado, que cambian continuamente aunque no se active ningún sensor, en definitiva deja de funcionar.
Me pregunto si no será debido a la falta de aislamiento de las señales, o a las corrientes electromagnéticas que crean los cables entrecruzados, o a la electricidad estática generada por el propio circuito.
Que opinais?
Gracias y perdón por plantear un tema que no trata de micros.

Saludos.

Juan

Pdta: Paralelamente ya estoy inmerso en la tarea de asimilar el funcionamiento de los micros, para poder sustituir por uno de ellos el montaje casero y un tanto cutre que tengo
Título: RE: por donde empezar?
Publicado por: Nocturno en 30 de Junio de 2005, 09:19:00
Errores al cabo de un ratito me suena a algún problema de temperatura. ¿No tendrás nada por ahí que se caldee más de la cuenta?

Por cierto, ha caído en mis manos la revista Elektor de este mes y trae un artículo de un programador DCC para maquetas de trenes. El sistema, completamente desconocido para mí, está basado en un protocolo que transmite por las vías la energía y la información codificada a las locomotoras.

Buscando en Internet he encontrado algunos esquemas y explicaciones del DCC. La verdad es que tiene muy buena pinta y no sé si deberías plantearte su implantación en tu maqueta:
http://www.fut.es/~fmco/dccgen_sp.html
Título: RE: por donde empezar?
Publicado por: RaDoN en 30 de Junio de 2005, 10:08:00
Joder que buena idea, por las vias ... supongo que la info irá modulada en frecuencia o algo así, la placa parece sencilla ...

juan-jubilado !! yo ya estaria cambiando todo el lio de cables y puertas logicas por un microcontrolador !! PIC powah! Flash
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 01 de Julio de 2005, 02:00:00
Gracias por la indicación, ya conozco esta estación de control. Yo ya tengo un sitema de control DCC, con el que puedo controlar las locomotoras los desvios y también rutas, además de poder conectarse a un ordenador. La idea de controlar el resto de señales a través de micro (o puertas como hasta ahora), pretendia suplir de alguna manera el control por ordenador, momentáneamente, y asi automatizar un poco mas el funcionamiento.
Precisamente ayer, y volviendo al tema de los errores, descubrí que precisamente éstos aparecen (o mas bien empiezan a aparecer), cuando los trenes se ponen en circulación (principálmente cuando son mas de dos), mientras ésto no se produce y simulando el paso de los trenes por los distintos sensores, todo funciona a la perfección. Esto me da que pensar que quizás lo que produce el desequilibrio es precisamente la corriente que circula a través de las vias (digital).No se!!!

Saludos
Juan
Título: RE: por donde empezar?
Publicado por: Nocturno en 01 de Julio de 2005, 03:47:00
Bueno, pues si ya tienes control DCC y lo que pretendes es suplir el ordenador con un microcontrolador tendrías que analizar qué hace exactamente el ordenador.
¿Hay algún software que podamos mirar para entender mejor tu necesidad?
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 01 de Julio de 2005, 07:27:00
Existen varios programas para controlar maquetas, pero los mas utilizados (que yo sepa) son dos:
Win-Digipet, del cuál existe una reseña del funcionamiento en la pagina web del distribuidor: http://www.trenes-aguilo.com , pincha en la pestaña "programas".

TrainController de RAILROAD & Co. del que existe una versión utilizable sin registro (demo) en el enlace:
http://www.freinwald.com/seiten/index.html
Esta pagina está en aleman.

Juan (jubilado) (Badalona)

Pdta: La central que tengo es una Intellibox de Uhlenbrock
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 10 de Julio de 2005, 13:40:00
Hola:
Como todavia no tengo claro por dónde agarrar al "toro" (creo que es mejor por los cuernos), se me ha ocurrido confeccionar unas tablas de verdad lógicas por bloques, me explico: En el circuito tengo seis bloques muy bien definidos, en los cuales dependiendo de ciertos parámetros (sensores de presencia de tren, y posicion de desvios), deben cumplirse determinados eventos (semáforos: verde, rojo, amarillo, y freno: activado, desactivado). Esto me ha ayudado en la composición de la tabla de verdad de cada uno de éstos bloques por separado.
Mi pregunta es: Pueden éstas tablas servirme de alguna manera para empezar a confeccionar un programa de algún bloque sencillo (que los hay) ?.
Como?

Saludos
Juan (jubilado)(badalona)

Pdta. He intentado montar un diagrama de bloques, pero al no ser secuencial no veo la manera
Título: RE: por donde empezar?
Publicado por: RaDoN en 10 de Julio de 2005, 14:25:00
Por supuesto, por citar un ejemplo para que lo entendamos ... :

if(sens1 == 1 && sens2 == 1) {
 outputbit(PIN_B5,1);}

Que en castellano podria significar, si el sensor 1 (por ejemplo un sensor IR) y sensor2 (imaginacion ... xD), han sido activados, saca un 1 logico por el pin B5 (que puede ser no se, activar el semaforo en verde por ejemplo).

Esa tabla te ayudara mucho desde luego de lo que quieres esperar de tu programa, empezando a resolver el problema en pedazos pequeños y sencillos lograras algo mucho mas funcional que como lo tienes montado con puertas logicas. Animo! Sonrisa Gigante
Título: RE: por donde empezar?
Publicado por: Nocturno en 11 de Julio de 2005, 01:29:00
Creo que lo de las tablas de la verdad sería una buena forma de describir lo que necesitas, y por lo tanto, la guía para el desarrollo de tu aplicación.
Me resulta chocante eso que dices que no hay nada secuencial; ¿en tu maqueta no hay cosas que pasan después de que hayan pasado otras?. Si pienso en lo que ocurre cuando un tren está esperando en un semáforo, por ejemplo:
- tren parado
- ¿está verde?
- si no lo está vuelve al paso 1, y si está continúa
- enciende motor locomotora a Velocidad x
- asigna prioridad a este tren en la vía y

¿Es que no sería algo así?
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 24 de Julio de 2005, 12:56:00
Hola:
La pregunta que voy a plantear seguro que os dara motivos para reir, pero es la realidad. Como puedo insertar un dibujo, o parte de el, en un mensaje?. Me explico: Tengo hecho en Autocad el diagrama lógico con el que estoy comandando actualmente las zonas (cantones) de la maqueta, y quisiera insertar parte de él en un mensaje para ver si podeis interpretarlo de manera que pueda ser traducido en instrucciones para el micro. Debo informaros que hasta el momento tengo una idea bastante clara de como configurar los puerto de entrada y salida, por ejemplo, en un 16F84, pero a partir de aqui ya me pierdo. Podeis ayudarme?

Saludos.
Juan (jubilado)
Título: RE: por donde empezar?
Publicado por: antoniof en 24 de Julio de 2005, 13:16:00
Ve a esta página:

http://imageshack.us/

Le das a examinar, buscas la imagen que quieras poner en el foro, y le das a host it!.

Al hacer esto te sale una nueva página donde tienes un enlace web a esa imagen (El último de todos, el que pone "Direct link to image")

Cuando escribas la nueva respuesta le das al boton "insertar imagen" y pegas el enlace en el cuadro que sale. Y listo, ya podemos ver tu imagen integrada en el mensaje.

Título: RE: por donde empezar?
Publicado por: juan-jubilado en 25 de Julio de 2005, 02:51:00
Hola:
A continuación os adjunto una imagen de una parte del esquema lógico que tengo montado, por si es posible que podais interpretarlo en forma de grograma, o indicarme cómo hacerlo, casi mejor la segunda opción ya que asi aprenderé.
Saludos desde Badalona



Título: RE: por donde empezar?
Publicado por: juan-jubilado en 03 de Agosto de 2005, 03:50:00
Hola:
Os adjunto un esquema de conexiones de un pic 16F84A, tal como yo lo haria para simular el funcionamiento del esquema logico que inserté en post anterior (ya se que faltan algunos detalles).
Mi pregunta es: Podeis traducir este esquema en un programa para dicho pic, o indicarme el camino a seguir, teniendo en cuenta que la secuencia debe ser:

Si pulsamos T1 1 RA1=1 hasta pulsar T1 2
Si pulsamos T8 1 RA3=1 hasta pulsar T8 2
Si D8=1 RA0=1, si D8=0 RA0=0
Cuando RA1=1 y/o RA0=1 y RA3=1 entonces RB0=1

T1 1  T1 2  T8 1  T8 2  Pulsadores (o detectores de infrarrojos)
D8  Desvio (1 derecha, 0 izquierda)
F8 diodo led (o accionador reléGiño

Gracias y saludos desde Badalona
Juan (jubilado)
Título: RE: por donde empezar?
Publicado por: Nocturno en 03 de Agosto de 2005, 04:45:00
Hola juan-jubilado.
No te he podido contestar al esquema que pusiste porque no lo entiendo, espero que alguien que sepa de electrónica digital pueda interpretarlo.

Sin embargo, sí que puedo darte algunos comentarios de tu segundo diagrama.

Dices en tu post "Si pulsamos T1 1 RA1=1 hasta pulsar T1 2" y creo que hay un error de concepto. Efectivamente RA1 será 1 cuando pulse T1 1, pero dejará de serlo en cuanto lo sueltes. Los pines RA0 a RA4 tendrás que definirlos como entradas y, por tanto, serán siempre un fiel reflejo del estado de los pulsadores.
Sin embargo, si lo que quieres es que una determinada salida permanezca a 1 desde que se pulse T1 1 y hasta que se pulse T1 2, tendrías que utilizar otro pin del micro y declararlo como salida, por ejemplo, RB1. En este caso, tu sentencia sería:
"Si pulsamos T1 1 RB1=1 hasta pulsar T1 2"

Si entiendes lo anterior, verás que también aplica al resto de tu esquema, aunque no tendrás que modificar mucho, sólo conectar las salidas.

Otros comentarios:
- has invertido el sentido de Vss y Vdd. La conexión correcta sería Vss a masa y Vdd a +5V.
- para evitar que las entradas queden en un estado indeterminado mientras no se pulsen los pulsadores, habría que ponerles unas resistencias a masa.
- la patilla MCLR debe tener una resistencia a Vdd para que el micro funcione.
- con idea de ampliar con posterioridad, yo usaría un micro con más pines de entrada y salida. El 16F84 quizás te quede muy justito.
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 04 de Agosto de 2005, 02:11:00
Hola nocturno:
En primer lugar gracias por corregir los errores de conexión, y de aclararme conceptos, que espero ir asimilando. Sin embargo creo no haberme explicado con suficiente claridad (por falta de experiencia). Cuando digo "Si pulsamos T1 1 RA1=1 hasta pulsar T1 2", me refiero a que "Si tengo un 1 en la patilla RA1, guarda la información en un registro hasta tener un 1 en la patilla RA2", y "Si tengo un 1 en la patilla RA3 guarda la información en otro registro hasta tener un 1 en la patilla RA4", y finalmente "Si en el primer registro tengo un 1 y/o en la patilla RA0 tengo un 1 y en el segundo registro tengo un 1 entonces en la salida RB0 tendré un 1". No sé si ésto que digo es una barbaridad, pero si no lo es, cómo puede traducirse en programa?

Gracias por atender mis incongruencias y alimentar mi "memoria"

Saludos desde Badalona
Título: RE: por donde empezar?
Publicado por: Nocturno en 04 de Agosto de 2005, 02:59:00
Sí, entonces correcto.

Lo que quieres hacer, en C por ejemplo, podría ser así:

if (RA1) RB0=1;
if (RA2) RB0=0;
if (RA3) RB1=1;
if (RA4) RB1=0;

Si estas cuatro líneas están en un bucle que se ejecute sin cesar dentro de tu programa, las salidas se comportarán como tú indicas.
Además, en este caso no necesitas antirrebotes puesto que la función de los pulsadores es poner un estado determinado, y si se hace muchas veces, no importa.

Título: RE: por donde empezar?
Publicado por: juan-jubilado en 05 de Agosto de 2005, 01:42:00
Bien pero, y en ensamblador, como podría ser el programa?. Es que "mis primeros pasos" los estoy dando en éste lenguaje.

De momento quiero usar un 16f84a, pues tengo varios (muestras de "MICROCHIP"Giño, que queria usar para otros montajes y al final no lo hice. Para esos montajes ya tenia el código en hexadecimal.

Saludos desde Badalona.

Juan (jubilado)Sonrojado
Título: RE: por donde empezar?
Publicado por: Nocturno en 05 de Agosto de 2005, 02:08:00
En ese caso mejor será que conteste alguien que sepa ASM, a mí ese lenguaje me da yuyu
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 06 de Agosto de 2005, 02:27:00
Me pregunto si es mejor que aprenda a programar en lenguaje "C". Que opinas?
Es más fácil de aprender, o tiene mas ventajas que el ensamblador?.

Saludos desde Badalona

Juan (jubilado)
Título: RE: por donde empezar?
Publicado por: Nocturno en 06 de Agosto de 2005, 09:50:00
Para mí esa pregunta sólo tiene una respuesta posible Rebotado, aunque aquí en el foro se ha debatido mucho sobre las ventajas e inconvenientes de uno u otro lenguaje. Puedes echar un vistazo a este hilo, donde se discutió bastante de los distintos lenguajes:
http://miarroba.com/foros/ver.php?foroid=6510&temaid=113728

Si finalmente te decidieras por C, te recomiendo leas este otro, haciendo los ejemplos que ahí vienen. No soy el único usuario que aprendió C con este hilo del foro:
http://miarroba.com/foros/ver.php?foroid=46840&temaid=2307248&marcar=microcursillo

Título: RE: por donde empezar?
Publicado por: juan-jubilado en 06 de Agosto de 2005, 11:59:00
Pues creo que va a ser que si. Ya que es un lenguaje al que han derivado (según entiendo en la encuesta) muchos que antes usaban assembler, por lo tanto como he de empezar con algo lo haré de lleno con el "C", aunque, y el que avisa no es traidor, os advierto que quizás os apedree a preguntas, pues soy muy duro de mollera, y a mis años es mas dificil aprender cosas nuevas aunque ganas no faltan.

Gracias por el apoyo. Saludos desde Badalona

Juan (jubilado)

Pdta. Tranquilos que antes tengo que descifrar que es esto del "C"Angelito
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 28 de Agosto de 2005, 06:04:00
Hola compañeros:
Aunque he estado varios dias en silencio, no significa que me haya dormido, todo lo contrario he estado intentando digerir todo (muy poco) lo que ha caido en mis manos (o pantalla del PC) referente a "C", hasta el punto de atreverme a escribir mi primer programa con toda la ilusión del principiante, pero que desilusión no me funciona al compilarlo. Podeís darle un vistaco e indicarme dónde esta(n) el(los) herrores? Llorando

#include <16f84a.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)

void main()
{
   set_tris_a(0b11111);  //asignamos el puerto A como entrada
   set_tris_b(0b00011000);  //asignamos RB0,RB1,RB2,RB5,RB6,RB7, salidas y RB3, RB4, entradas
      while (true) ;        //bucle infinito
      {
         if (RA0) RB0=1;     //si RA0=1, activamos relé por la salida RB0
         if (RA1) RB1=1;     //si RA1=1, aparece 1 en RB3
         if (RA2) RB1=0;     //si RA2=1, aparece 0 en RB3
         if (RA3) RB2=1;     //si RA3=1, aparece 1 en RB4
         if (RA4) RB2=0;     //si RA4=1, aparece 0 en RB4
         if (RB3&&RB4) RB0=1;  //si RB3 y RB4=1, activamos relé por RB0
      }
}         

Gracias anticipadas

Saludos desde Badalona

Juan (jubilado)
Título: RE: por donde empezar?
Publicado por: RaDoN en 28 de Agosto de 2005, 06:12:00
El primer error es la h en esta palabra Avergonzado es broma ...

Pues en los if, no pones ninguna condición, por lo que nunca entrará.
Depende de lo que quieras:

 if(input(PIN_XX) == 0/1) ---> Si es 0 o uno cen el PIN XX, entrará. O bien otra forma de escribirlo:

 if(input(PIN_XX))  ---> entrara si es 1 (TRUE)
 if(!input(PIN_XX)) ---> el signo "!" niega la condición, es decir, entra si es 0 (FALSE).

Anímo juan Sonrisa GiganteRebotado
Título: RE: por donde empezar?
Publicado por: Nocturno en 28 de Agosto de 2005, 23:28:00
Pues es curioso, porque esa sintaxis sí que funciona en C30, y es algo que nunca he entendido del CCS.
En C30 puedes hacer:
if (RA1) RB1=1;

y en CCS hay que hacer:
if(input(PIN_A1)) output_high (PIN_B1);

Como puedes ver arriba, es mucho más incómodo en CCS pero ambos son C.

En cualquier caso, otro error que veo en el programa es que te sobra un signo de punto y coma detrás del while (true). Tal y como está puesto, el programa quedará ahí para siempre y no pasará a la siguiente línea.
Si lo quitas, el contenido del bucle pasará a ser el grupo de líneas que has encerrado entre llaves.

Ánimo, Juan, verás como eso compila pronto Sonrisa Gigante
Título: RE: por donde empezar?
Publicado por: Nocturno en 29 de Agosto de 2005, 02:27:00
Cambia la última línea por:
 if (input(PIN_B1) && input(PIN_B2)) output_high(PIN_B0); //si RB1 y RB2=1, activamos relé por RB0

Además, tal y como está no puede compilar bien, seguramente es que no has pegado la última llave de cierre en el post.
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 29 de Agosto de 2005, 02:42:00
Correcto, las llaves de cierre no las he pegado, pero están.

No entiendo la corrección, si los pins B1 y B2 son salidas porqué  poner "input"

Saludos.
Juan (jubilado)
Título: RE: por donde empezar?
Publicado por: Nocturno en 29 de Agosto de 2005, 02:47:00
Ah,vale, no me había dado cuenta de que son salidas.
En cualquier caso, no puedes usar el "output_high" como lo usas, porque es un comando que  escribe sobre el puerto, no lo lee para ver su valor.

Lo que yo haría en este caso es asignar a una variable, por ejemplo V1, el valor de B1 cada vez que lo cambies en alguna parte de tu programa. Igual con B2, tendrías V2.
Una vez llegado a esta altura del programa, tu condición sería:
if (V1 && V2) ....
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 29 de Agosto de 2005, 03:57:00
Que tal ahora?:

#include <16f84a.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#define V1 PIN_B1
#define V2 PIN_B2

void main()
{
   set_tris_a(0b11111);  //asignamos el puerto A como entrada
   set_tris_b(0b00000000);  //asignamos el puerto B como salida
      while (true)          //bucle infinito
      {
         if (input(PIN_A0)) output_high(PIN_B0);     //si RA0=1, activamos relé por la salida RB0
         if (input(PIN_A1)) V1==1;     //si RA1=1, aparece 1 en RB1
         if (input(PIN_A2)) V1==0;     //si RA2=1, aparece 0 en RB1
         if (input(PIN_A3)) V2==1;     //si RA3=1, aparece 1 en RB2
         if (input(PIN_A4)) V2==0;     //si RA4=1, aparece 0 en RB2
         if (V1&&V2) output_high(PIN_B0);  //si RB1 y RB2=1, activamos relé por RB0
      }
}

Saludos.
Juan(jubilado)
Título: RE: por donde empezar?
Publicado por: Nocturno en 29 de Agosto de 2005, 04:14:00
No me refería exactamente a eso. Mira, mejor lo pego aquí:
Codigo:

#include <16f84a.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)

void main()
{
   int V1;
   int V2;
   
   set_tris_a(0b11111); //asignamos el puerto A como entrada
   set_tris_b(0b00000000); //asignamos el puerto B como salida
   while (true) //bucle infinito
      {
         if (input(PIN_A0)) output_high(PIN_B0); //si RA0=1, activamos relé por la salida RB0
         if (input(PIN_A1))
            {
               V1=1; //si RA1=1, aparece 1 en RB1
               output_high(PIN_B1);
            }
         if (input(PIN_A2))
            {
               V1=0; //si RA2=1, aparece 0 en RB1
               output_low(PIN_B1);
            }
         if (input(PIN_A3))
            {
               V2=1; //si RA3=1, aparece 1 en RB2
               output_high(PIN_B2);
            }
         if (input(PIN_A4))
            {
               V2=0; //si RA4=1, aparece 0 en RB2
               output_low(PIN_B2);
            }
         if (V1&&V2) output_high(PIN_B0); //si RB1 y RB2=1, activamos relé por RB0
      }
}


Observa que V1 y V2 son variables declaradas como int, y que cada vez que hay un comando output_xxx también asigno el valor a la variable que corresponda.
Además, observa que no es lo mismo = que ==. Mientras que el primero asigna, el segundo chequea.

Por último, te recomiendo que utilices sangrías en el programa, y lo harás más fácil de entender.
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 29 de Agosto de 2005, 05:19:00
Me temo que todavia me queda muuuuuucho camino por recorrer, en éste momento me siento como si andara en pañales. Tendrás que perdonar mis fallos de comprensión, pero es que mis neuronas ya no responden como antes (pienso que es por la edad).
Cuando hablas de utilizar sangrias, te refieres a poner {} en cada bloque de funciones para separarlas?.
Si no entiendo mal el hecho de asignar una variable como entero es como si le asignaramos un resultado , 0 o 1?

Saludos
Juan(jubilado)
Título: RE: por donde empezar?
Publicado por: Nocturno en 29 de Agosto de 2005, 05:41:00
Tranquilo, tú pregunta, que todos hemos pasado por lo mismo. Además, los pañales no se sueltan nunca, porque en este hobby que tenemos siempre estamos aprendiendo cosas nuevas.

Con las sangrías me refería a los tabuladores por la izquierda. No es obligatorio su uso, pero si cada bloque de programa que se ejecuta en un condicional o en un bucle, lo "sangras" a la derecha con el tabulador el programa queda mucho más legible.

Lo de las {} tras un IF o un WHILE lo necesitarás si la condición o el bucle afectan a más de un comando. Si es uno sólo no tendrás dudas ni problemas, pero si tienes que ejecutar varios, tendrán que estar encerrados entre llaves.

No sé qué edad tienes, pero tus neuronas funcionan bien, hombre...
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 29 de Agosto de 2005, 06:12:00
65.
Puestos a preguntar, las V1 y V2 declaradas como int, significa asignarles resultado entero 0 o 1?
Título: RE: por donde empezar?
Publicado por: vszener en 29 de Agosto de 2005, 06:59:00
Con permiso de los contertulios decir que cuando se declara variables tipo int no significa 1 o 0 eso es tipo boolean(tipo binario de algebra de Boole), tipo int significa datos tipos enteros, si no se especifica nada en el int el compilador lo toma como dato tipo entero de 8bits, es decir int V1; la variable V1 sera un numero entero comprendido entre 0 y 2^8 es decir entre 0 y 256, si queremos mas bits(mas resolucion) declaramos la variable entera como sigue:
int16 V1;
int32 V1;
donde 16 o 32 es la resolucion donde se puede abarcar los datos de la variable V1. Recordar que si quieres utilizar cifras negativas enteras deberas expecificarselo al compilador, sino te dara mensaje de warning y el programa no funcionara como debiera, para expecificarlo deberas poner delante de la palabra int signed, es decir: signed int V1; entonces asi el compilador sabra que la variable V1 es significativa a los numerso negativos enteros.
Giño
Título: RE: por donde empezar?
Publicado por: piriots en 29 de Agosto de 2005, 11:50:00
A ver, dejando el codigo, lo que veo es que los pulsadores estan mal conectados. Se tienen que conectar a traves de una resistencia de pull-un de 10k.

Codigo:


  +5
    |
    |
    <
    < 10K
    <
    |
    | - ------ pic
    * pulsador
    *
    |
    |
    GND



UPS!!!! donde esta el post con la pregunta y esquema???
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 29 de Agosto de 2005, 12:04:00
Lo siento piriots, la he borrado porque mas que un esquema parecia la sagrada familia.
La cuestión es que cuando pulso el boton de reset el led se apaga momentáneament y luego se enciende de nuevo y asi permanece, quizás sea debido cómo tu dices a la mala conexión de los pulsadores, lo probaré. Por si acaso inserto de nuevo el esquema:

Gracias.
Título: RE: por donde empezar?
Publicado por: piriots en 29 de Agosto de 2005, 12:11:00
Si el led se queda encencido puede ser debido a que no has dado valor inicial al puerto. Prueba poniendo

#byte port_a=5 // definimos los puertos a y b como una variable
#byte port_b=6

esto lo pones despues de  
#use fast io

en la funcion principal, pero fuera del bucle principal pones
port_b=0;

Prueba con esto a ver si se soluciona.

Salu2
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 30 de Agosto de 2005, 03:57:00
Bueno parece que ya empieza a funcionar. El programa ha quedado asi:

#include <16f84a.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#byte port_a=5
#byte port_b=6

void main()
{
   int V1;
   int V2;

   set_tris_a(0b11111); //asignamos el puerto A como entrada
   set_tris_b(0b00000000); //asignamos el puerto B como salida
   port_b=0;            //ponemos el puerto B a cero

   while (true) //bucle infinito
      {
         if (input(PIN_A0)) output_high(PIN_B0); //si RA0=1, activamos relé por la salida RB0
            {
         if (input(!PIN_A0)) output_low(PIN_B0); //si RA0=0, desactivamos relé por la salida RB0
            }
         if (input(PIN_A1))
            {
               V1=1; //si RA1=1, aparece 1 en RB1
               output_high(PIN_B1);
            }
         if (input(PIN_A2))
            {
               V1=0; //si RA2=1, aparece 0 en RB1
               output_low(PIN_B1);
            }
         if (input(PIN_A3))
            {
               V2=1; //si RA3=1, aparece 1 en RB2
               output_high(PIN_B2);
            }
         if (input(PIN_A4))
            {
               V2=0; //si RA4=1, aparece 0 en RB2
               output_low(PIN_B2);
            }
         if (V1&&V2) output_high(PIN_B0); //si RB1 y RB2=1, activamos relé por RB0
            {
         if (!V1&&V2) output_low(PIN_B0); //si RB1=0 y RB2=1, desactivamos relé por RB0
            {
         if (V1&&!V2) output_low(PIN_B0); // si RB1=1 y RB2=0, desactivamos rele´por RB0
            {
         if (!V1&&!V2) output_low(PIN_B0); //si RB1 y RB2=0, desactivamos relé por RB0
            }
            }
            }
      }
}

Vereis que he añadido algunas lineas mas porqué el led no se apagaba cuando no se cumplian las condiciones.

El esquema que utilizo es el que hay mas arriba.
Sólo hay un problema, y es que al cerrar el interruptor de RA0 el led se enciende pero parpadea indiscriminadamente, es decir no con una frecuencia estable.
Que puede ser?

Saludos
Título: RE: por donde empezar?
Publicado por: vszener en 30 de Agosto de 2005, 04:10:00
Viendo tu esquema opino igual que el amigo piriots, te aconsejo que lo modifiques los botones como te ha indicado piriotsGiño
Título: RE: por donde empezar?
Publicado por: Nocturno en 30 de Agosto de 2005, 05:35:00
Sí, por supuesto, conecta las entradas como dice Piriots.
Tu problema de los parpadeos aleatorios suena a que las entradas quedan en un estado indeterminado cuando levantas el interruptor.
Ponles una resistencia a masa para que al abrir el interruptor quede un 0 clarito en la entrada y debe funcionar bien.
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 30 de Agosto de 2005, 07:13:00
Es que el problema del parpadeo sólo se manifiesta cuando cierro el interruptor que está conectado a la entrada RA0, en éste estado el led deberia estar siempre encendido hasta abrir dicho interruptor. Ocurre lo mismo si le pongo un pulsador, y también se manifiesta el mismo fenómeno conectando los pulsadores e interruptor como indica Piriots. Actuando sobre los pulsadores según la secuencia de funcionamiento el led funciona perfectamente. desquiciado

Saludos


Pdta. Seguro que será una chorrada que no alcanzo a ver
Título: RE: por donde empezar?
Publicado por: vszener en 30 de Agosto de 2005, 07:21:00
De todas formas te aconsejo que modifiques tu circuito como indica el amigo Piriots ya que es la forma correta de montaje por lo que te ha explicado nocturno66 de obligar un "0" logico...De todas formas viendo tu programa tienes declarados muchos if....podrias hacer un if else para el estado del led que indicas por el portb B0, y desactivar las interrupciones si no las vas a utilizar(por lo menos desactva la interrupcion del RB0):
Esto iria despues de los set_tris...
DISABLE_INTERRUPTS(GLOBAL); //asi desactivamos todas las interrupciones
.
.
.
if (input(PIN_A0)==1)
    output_high(PIN_B0); //si RA0=1, activamos relé por la salida RB0
else
     output_low(PIN_B0); //si RA0=0, desactivamos relé por la salida RB0
 
Haber si esta vez funciona....Giño
Título: RE: por donde empezar?
Publicado por: Nocturno en 30 de Agosto de 2005, 07:55:00
Mientras tengas entradas en estado indeterminado no podrás obtener conclusiones. Cualquiera de las otras puede estar provocándote un efecto extraño.
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 31 de Agosto de 2005, 04:50:00
Sigue el parpadeo cuando quiero activar el led  a traves de RA0, aunque además le he añadido otra condición que me faltaba, de acuerdo al circuito que quiero obtener. Las entradas las tengo conectadas según las indicaciones del amigo Piriots.
Lo que si he observado cuando ocurre este fenómeno (parpadeo aleatorio), es que en la parte inferior izquierda de la ventana de Proteus donde dice (CPU load....), en condiciones normales de funcionamiento (cuando no parpadea o esta apagado), el valor está sobre 10%, pero cuando parpadea éste valor sube al 100%, y el reloj de la animación (ANIMATING), va mas lento.loco

Saludos.
Título: RE: por donde empezar?
Publicado por: vszener en 31 de Agosto de 2005, 05:00:00
Esto que voy decir puede ser una chorrada pero cambia esta instruccion #use fast_io(B) pos esta #use standard_io(B)....a veces la fast da problemas de resultados no deseados....por lo menos en algun que otro caso me ha pasado!pruebalo aver que pasa...Giño
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 31 de Agosto de 2005, 05:17:00
Erre que erre.
Estoy pensando que haré lo que dice Nocturno y probar el circuito fisicamente, y ver si Proteus tiene razón o la tiene Nocturno.Giño

Hasta pronto
Título: RE: por donde empezar?
Publicado por: vszener en 31 de Agosto de 2005, 06:02:00
Hola juan-jubilado!!!vamos haber....jeje revisando esta vez tu codigo a consiencia(vamos que me metido en MPlab y todo!!!jeje)decirte que veo cosas que no se para que las haces:
1º. Cuando cierra el switch conectado al pin A0 el led se apaga y no se ilumina como tu dices....
2º. Declaras muchos if que la verda no se para que declaras tantos ni lo que hacen, vamos haber, el if que usas para el pin A1 si este vale 1 entonces enciendes el led hasta aqui okis ya que el A1 vale 1 hasta que pulsemos el pulsador que entonces valdra 0, pero despues hay otro if el cual contempla lo que ocurre en la patita A2 que si vale 1 apaga el led...ummmm haber A2 tb vale 1 hasta que pulsemos el pulsador...y asi sucesivamente!!!estas encendiendo y apagando el led de una forma indiscriminada vamos de una forma "loka"...no se si eso es lo que tu pretendes(aunque no se bien la aplicacion que tiene.....)pero vamos revisate eso okis???
Ah!!!otra cosita al trabajar con pulsadores(botones), estos dispositivos generan los llamados "rebotes", es decir tu pulsas el boton y en milesimas de segundo por el pin donde esta conectado dicho boton aparecen multitud de 1"s y 0"s por lo tanto hace la lectura erronea en el pin correspondiente, estos rebote se pueden eliminar mediante hardware(condensador...)o mediante software(mediante un retardo de 151ms o mediante un bucle do...while) okis???Giño

PD: Te he mandado los archivos .c, .hex y .dsn por privado..haber si conseguimos que se apage el led!!!!jeje
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 01 de Septiembre de 2005, 06:37:00
ALELUYA!! Rebotado Rebotado Rebotado
Por fin ya funciona. Os adjunto el programa tal como ha quedado:

#include <16f84a.h>
#fuses XT,NOWDT,NOPUT,NOPROTECT
#use delay(clock=4000000)
#use standard_io(A)
#use standard_io(B)
#byte port_a=5
#byte port_b=6

void main(void)
{
int V1;
int V2;

set_tris_a(0b11111); //asignamos el puerto A como entrada
set_tris_b(0b00000000); //asignamos el puerto B como salida
disable_interrupts(GLOBAL); //desactivamos todas las interrupciones
port_b=0; //ponemos el puerto B a cero

while (true) //bucle infinito
   {
      if (input(PIN_A1))
      {
      V2=1; //si RA1=1, aparece 1 en RB2
      output_high(PIN_B2);
      }
      if (input(PIN_A2))
      {
      V2=0; //si RA2=1, aparece 0 en RB2
      output_low(PIN_B2);
      }
      if (input(PIN_A3))
      {
      V1=1; //si RA3=1, aparece 1 en RB1
      output_high(PIN_B1);
      }
      if (input(PIN_A4))
      {
      V1=0; //si RA4=1, aparece 0 en RB2
      output_low(PIN_B1);
      }
      if ((input(PIN_A0)==1)&&V1) output_high(pin_B0); //si RA0=1 y RA3=1, activamos relé por RB0
      {
      if (((input(PIN_A0)==0)&&V1&&!V2)||((input(PIN_A0)==0)&&!V1&&!V2)) output_low(pin_B0); //si RA0=0 y RA3=1, o si RA0=0 y RA3=0,desactivamos relé por RB0
      {
      if (V1&&V2&&((input(PIN_A0)==0))) output_high(PIN_B3); //si RA1=1 y RA3=1 y RA0=0, activamos relé por RB3
      }
      if (V1&&!V2&&((input(PIN_A0)==00))) output_low(PIN_B3); //si RA2=1 y RA3=1 y RA0=0, desactivamos relé
      }

   }

Con las variaciones que os detallo: He añadido una salida mas con otro led, de tal manera que en ciertas condiciones se enciende uno y en otras se enciende el otro
Aunuqe la finalidad tanto en un caso como en el otro, es la de activar un relé me da lo mismo activarlo por una fuente que por la otra, según el caso, pero esto ya es cuestión de añadir una puerta OR de dos entradas conectada a las salidas RB0 y RB3, y solucionado.

Ademas lo he probado con los pins de entrada como indicaba Piriots y a mi manera, y funciona perfectamente.

Os doy las gracias a todos por vuestra ayuda.  Rebotado Rebotado Rebotado  Rebotado

Saludos
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 01 de Septiembre de 2005, 06:40:00
Se me olvidaba deciros que a continuación pasaré a las pruebas fisicas, y si funciona, ya será la repanocha, por no decir algo mas gordo.
Título: RE: por donde empezar?
Publicado por: Nocturno en 01 de Septiembre de 2005, 06:46:00
Me alegro mucho que lo vayas consiguiendo Juan, pero cuando lo pruebes físicamente deberías hacer la prueba sin ese último cambio del led adicional.
En cualquier caso, ni que decir tiene que tu tesón se merece un aplauso.
Título: RE: por donde empezar?
Publicado por: vszener en 01 de Septiembre de 2005, 08:49:00
Jeje...seguro que las pruebas fisicas cumplen con el proposito deseado!!!jeje me alegro que ya este conseguido el problema que planteaste....suerte con tu proyecto!!!Giño
Título: RE: por donde empezar?
Publicado por: juan-jubilado en 29 de Noviembre de 2005, 10:21:00
Hola amigos:
Ha pasado bastante tiempo desde la última "conversación", y han ocurrido varias comas, todas inportantes. En primer lugar deciros que voy a ser ABUELO además de jubilado, y como que mi hija vive un poco lejos ( en DUSSELDORF) y los primeros meses los pasó bastante fastidiada, lo normal en éstos casos, tuvimos que ir a echarle una mano. Actualmente y por fortuna ya se ha normalizado y la naturaleza sigue su propio curso.
En segundo lugar, y para mi no menos importante, el proyecto por el cuál estuvisteis luchando unos cuantos conmigo, yá está funcionando fisicamente, y además perfectamente, aunque de momento montado sobre placas BOARD. Tengo montados para toda la maqueta cinco micros PIC16F84A, en cada uno de ellos una parte del automatismo, pero mi intención sería reducirlo como máximo a dos, y habia pensado utilizar el PIC16F874 o el PIC16F877, como lo veis?. Me imagino que antes de empezar a "marearlos" deberia estudiar su funcionamiento a fondo, puesto que las caracteristicas de éstos difieren respecto al PIC16F84A. Lo que si os agradecería es que si alguien tiene experiencia en alguno de estos pics, u otro parecido, y desea compartirla conmigo, le estaré muy agradecido.

Saludos.
Título: RE: por donde empezar?
Publicado por: maunix en 21 de Diciembre de 2005, 10:16:00
Escrito originalmente por juan-jubilado
Lo que si s agradecería es que si alguien tiene experiencia en alguno de estos pics, u otro parecido, y desea compartirla conmigo, le estaré muy agradecido.
Saludos.


Para eso está el foro Juan, para ayudar ppalmente y compartir experiencias Giño

No tengas miedo en consultar lo que desees pero como siempre digo, hace falta esfuerzo de tu parte que en este caso será leerte bien los datasheet.

En cuanto a tu aplicación real, la verdad me he perdido todos los posts, pero supongo que cuando la vuelvas a implementar con el F74 o F77 volveremos a hablar del tema.

Eso sí, inicia un nuevo post para tus dudas y antes de postearlas, consulta las preguntas que se han hecho con anterioridad para no caer en las mismas preguntas una y otra vez que terminan siendo tediosas.


Saludos y felicidades por tu abuelazgo Sonrisa Gigante