Autor Tema: DESTELLADOR DIFERENCIADO CON PIC  (Leído 3720 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado pucara

  • PIC10
  • *
  • Mensajes: 8
DESTELLADOR DIFERENCIADO CON PIC
« en: 18 de Diciembre de 2014, 21:39:12 »
Hola, soy nuevo en este tema de programar pic´s y estoy necesitando hacer un destellador diferenciado, o sea, que dé dos destellos en un led o tira led, espere un par de pulsos y dé dos destellos en otro led o tira led, volver a esperar un par de pulsos y volver al anterior....  asi indefinidamente.    Sé que se puede hacer con un pic programado, y estoy tratando de empezar a meterme en este tema fascinante de la programacion con pic´s...    como nuevo que soy, no conozco nada de programacion, son muy novato...  entiendo algo de electrónica y me animo a meterme en el tema....  solicito ayuda de quien sepa y se anime a explicarme como hacerlo, circuito...  luego , la placa de impreso la hago, sin problemas.   Gracias de antemano, y FELICES FIESTAS... !!!!!!
[/b]

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #1 en: 18 de Diciembre de 2014, 23:24:08 »
Como viste en el post que pusiste lo mismo
http://www.todopic.com.ar/foros/index.php?topic=22077.msg363581#msg363581

Se suelen aportar ideas/soluciones ante problemas pero nadie se va a poner a hacer el programa.

Para el PIC vas a necesitar un programador, mas algunos componentes externos. Si ya tenes todo y tenes un PIC deberias de empezar a leerte su datasheet (en ingles). Su arquitectura, como funciona, direccionamientos etc, al menos para tener una nocion minima del microcontrolador. Tambien te tenes que decidir por un software, Microchip ofrece MPLAB X con XC8 para programarlo en C, algunos usan una extension para el MPLAB que se llama CSS ( tambien en C ) pero cambian algunas cosas.

De todas formas vas a necesitar saber un minimo de programación, si programas en C tenes que aprender C tambien, cada lenguaje es distinto ( assembler ASM seria lo mas complejo por que requiere que entiendas el micro y cada registro del mismo), aunque sea lo mas basico.

Tutoriales hay muchisimos por internet, de lo que busques, timers, interrupciones, uart, etc, etc. Sobre drivers para manejar mas corriente. Tambien sobre lenguajes de programacion.

Con esto quiero decir que te va a costar o puede que lo hagas rapidamente a lo que prentendes hacer, pero todo va a ir que tanto queres que haga tu micro.
Por ejemplo tu programa asi como lo pedis podria hacerse asi:

Prendo LED1
Demora
Apago LED1
Demora
Prendo LED1
Demora
Apago LED1
Demora
// Repito para LED2

Eso te llevaria unas 10 lineas de codigo sin la parte de la configuracion de las salidas/entradas en C, podes probarlo con un led y si queres agregarle mas leds tendrias que ver como lo conmutas, si usas un transistor o un integrado. Que la fuente logre darle la corriente a esos leds, etc.

En resumen lo mas importante:
No lo veas como que nadie quiera ayudarte, es que ya hay tanta informacion en internet y en español (incluso en el foro) que no tiene sentido volver a repetir todo aca, si a medida que vas leyendo algun tutorial y vas teniendo dudas o tenes una pregunta concreta podes preguntarla, que te va a ser respondida siempre y cuando alguno tenga la respuesta.

O si ahora ya tenes una pregunta que sea de una respuesta simple y no lleve paginas y paginas de texto como seria explicar programacion y cada uno de los modulos ( o el funcionamiento del PIC ) podes hacerlo sin ningun problema.
« Última modificación: 18 de Diciembre de 2014, 23:32:00 por KILLERJC »

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #2 en: 19 de Diciembre de 2014, 11:47:52 »
Lo primero sería hhacer el circuito eléctrico y escoger componentes.Entre ellos el microcontrolador.
Qué micro quieres utilizar?
 Saludos.

Desconectado pucara

  • PIC10
  • *
  • Mensajes: 8
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #3 en: 25 de Diciembre de 2014, 12:55:45 »
Como viste en el post que pusiste lo mismo
http://www.todopic.com.ar/foros/index.php?topic=22077.msg363581#msg363581

Se suelen aportar ideas/soluciones ante problemas pero nadie se va a poner a hacer el programa.

Para el PIC vas a necesitar un programador, mas algunos componentes externos. Si ya tenes todo y tenes un PIC deberias de empezar a leerte su datasheet (en ingles). Su arquitectura, como funciona, direccionamientos etc, al menos para tener una nocion minima del microcontrolador. Tambien te tenes que decidir por un software, Microchip ofrece MPLAB X con XC8 para programarlo en C, algunos usan una extension para el MPLAB que se llama CSS ( tambien en C ) pero cambian algunas cosas.

De todas formas vas a necesitar saber un minimo de programación, si programas en C tenes que aprender C tambien, cada lenguaje es distinto ( assembler ASM seria lo mas complejo por que requiere que entiendas el micro y cada registro del mismo), aunque sea lo mas basico.

Tutoriales hay muchisimos por internet, de lo que busques, timers, interrupciones, uart, etc, etc. Sobre drivers para manejar mas corriente. Tambien sobre lenguajes de programacion.

Con esto quiero decir que te va a costar o puede que lo hagas rapidamente a lo que prentendes hacer, pero todo va a ir que tanto queres que haga tu micro.
Por ejemplo tu programa asi como lo pedis podria hacerse asi:

Prendo LED1
Demora
Apago LED1
Demora
Prendo LED1
Demora
Apago LED1
Demora
// Repito para LED2

Eso te llevaria unas 10 lineas de codigo sin la parte de la configuracion de las salidas/entradas en C, podes probarlo con un led y si queres agregarle mas leds tendrias que ver como lo conmutas, si usas un transistor o un integrado. Que la fuente logre darle la corriente a esos leds, etc.

En resumen lo mas importante:
No lo veas como que nadie quiera ayudarte, es que ya hay tanta informacion en internet y en español (incluso en el foro) que no tiene sentido volver a repetir todo aca, si a medida que vas leyendo algun tutorial y vas teniendo dudas o tenes una pregunta concreta podes preguntarla, que te va a ser respondida siempre y cuando alguno tenga la respuesta.

O si ahora ya tenes una pregunta que sea de una respuesta simple y no lleve paginas y paginas de texto como seria explicar programacion y cada uno de los modulos ( o el funcionamiento del PIC ) podes hacerlo sin ningun problema.



 Te comprendo, y con un amigo que es programador tecnico, estamos viendo eso mismo. estoy buscando el hard para programar, un PICKIT 3 ...   y estoy viendo el uso del MPLAB.   no es dificil, no soy programador, soy mas hobbysta que otra cosa...  pero entiendo los pasos.   los parametros los estoy entendiendo...  el PIC  a usar, ya que es solamente esto, pienso usar un 12f629  de 8 patas...  para lo que deseo hacer es suficiente.   Gracias por los consejos, voy a seguir metiendome en el proyecto de luces....      les cuento, estoy metido en el proyecto de la construccion de un ULTRALIVIANO, un avion monoplaza, construccion casera, ala de madera y fuselaje en tubo de acero inoxidable...    motor VW 1800 cc   y este circuito es para las luces de navegacion, porque en cada punta de ala, lleva una luz ( tira de led de 3 leds) de color verde de un lado y rojo del otro...  estas van fijas, y en el mismo artefacto, lleva un destellador blanco... con los destellos...  eso es lo que quiero hacer...   y en lo posible aprender  programarlo, para cambiar los parametros...  algo simple y que sea facil de arreglar.   estamos conformando acrilico para hacer el artefacto...   asi que ya saben de que se trata.....

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #4 en: 25 de Diciembre de 2014, 13:52:43 »
Hola Pucara, ya que esta interesado y dice que no es dificil, porque no comiensa a programar un LED? y luego o programa con un Delay, eso es lo primero que aprendemos todos programador.
o quiere que te hagamos los paso del programa?  ;-)
los primero ante de iniciarte a programar micro, es saber que lenguaje quiere programar y paralelo saber arquitetura del micro que tenga a mano para asi experimentar con el.

Asi que da lo primero paso como hemos comenzado nosotros.
Saludos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #5 en: 25 de Diciembre de 2014, 14:08:30 »
Como dice stk500 primero aprender a prender un led, que parece simple. Pero detras de eso hay muchas configuraciones del PIC a hacer tales como:

-Fuses
-Configuracion de los Perifericos ( Puertos, interrupciones, etc, etc, etc )

Creo que como todo primero es un led, y la demaroa com dijo stk500, ahora si pensas usar tu micro para algo mas ya tenes que pensar que las demoras el micro esta haciendo nada ( ejecutando una instruccion que no hace nada - NOP ), y si quiseras agregarle algo ya tendrias que comenzar con interrupciones. Lo que complica mas las cosas si quisieras meterte de lleno en hacer led+interrupciones+aprender lo basico.

Con respecto a las tiras de leds dependen como se manejan las mismas, si tenes que enviar un dato en forma serial para el mismo o si funcionan como con un led comun, esta mas que claro que primero deberias comenzar con un led simple,

Como dije, cuando tengas algun problema, seguro que alguien va a responder.

EDIT:

Vi que respondiste aca:
http://www.todopic.com.ar/foros/index.php?topic=22077.msg363752;topicseen#msg363752

Ese programa es igual al que te pase yo en pseudocodigo, nomas que esta en ASM, y te va a ser mucho mas complejo aprenderlo pero vas a entender mucho mas el micro.

En C el mismo programa te quedaria algo asi:
Código: [Seleccionar]
while(1) {
PORTB = 0x01;
__delay_ms(20); //Suponiendo que son 20 mS
PORTB = 0x02;
__delay_ms(20);
PORTB = 0x04;
__delay_ms(20);
PORTB = 0x08;
__delay_ms(20);
PORTB = 0x10;
__delay_ms(20);
PORTB = 0x20;
__delay_ms(20);
PORTB = 0x40;
__delay_ms(20);
PORTB = 0x80;
__delay_ms(20);
}

El codigo del delay ya esta hecho, mientras que en ASM lo vas a tener que hacer, y hacerlo seria algo como esto:

Código: [Seleccionar]
; Declaracion de los registros de 8 bits para contar las vueltas


cblock
d1
d2
d1_2
endc

; A hacer matematicas para contar los ciclos, esto es para un cristal de 4Mhz

Delay
;499994 cycles
movlw 0x03
movwf d1
movlw 0x18
movwf d2
movlw 0x02
movwf d1_2
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d1_2, f
goto Delay_0

;2 cycles
goto $+1

;4 cycles (including call)
return

Y cambiarle el tiempo no es nada facil al menos no como se hace en C xD
« Última modificación: 25 de Diciembre de 2014, 14:18:09 por KILLERJC »

Desconectado pucara

  • PIC10
  • *
  • Mensajes: 8
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #6 en: 25 de Diciembre de 2014, 18:21:06 »
Hola Pucara, ya que esta interesado y dice que no es dificil, porque no comiensa a programar un LED? y luego o programa con un Delay, eso es lo primero que aprendemos todos programador.
o quiere que te hagamos los paso del programa?  ;-)
los primero ante de iniciarte a programar micro, es saber que lenguaje quiere programar y paralelo saber arquitetura del micro que tenga a mano para asi experimentar con el.

Asi que da lo primero paso como hemos comenzado nosotros.
Saludos




Hola STK500, gracias por responder.   el hardware que puedo conseguir, es el PICKIT 3 para poder programar el pic...   por lo que estuve viendo, usar un pic de 8 patas, uno chico, porque no necesito tanto desarrollo como para usar un pic de mas patas...    por la info que pude obtener, el lenguaje es como Basic, donde primero establece cuales patas se van a usar, en que estado estarán en el inicio, para luego establecer los tiempos de prendido y apagado y los tiempos de espera entre ambos estados.     No recuerdo cual es el lenguaje usado en el programador PICKIT, ya tengo instalado el PIC BASIC PRO y el programa para manejar el PICKIT 2 y subirlo al chip.    el hecho de programar un led, ya alcanza, porque la salida será luego de ese impulso entrado en un transistor driver para poder manejar las tiras led, que vienen con una alimentacion de 12 v y apenas unos pocos miliamperes de consumo.   Cada 3 led instalados en la tira, ya trae su resistencia limitadora, por lo que es solo alimentar con 12 volts de impulso y encienden sin problema.    por lo tanto, solo necesito poder manejar 2 leds, que serán los dos canales, cada uno maneja una tira led alimentada por el impulso y el transistor driver.   posterior a esto, es solo cambiar la configuracion del pic podremos lograr cambiar los destellos, sus tiempos de espera y nada mas...  no necesitamos otra cosa...

Desconectado pucara

  • PIC10
  • *
  • Mensajes: 8
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #7 en: 25 de Diciembre de 2014, 18:34:25 »
Como dice stk500 primero aprender a prender un led, que parece simple. Pero detras de eso hay muchas configuraciones del PIC a hacer tales como:

-Fuses
-Configuracion de los Perifericos ( Puertos, interrupciones, etc, etc, etc )

Creo que como todo primero es un led, y la demaroa com dijo stk500, ahora si pensas usar tu micro para algo mas ya tenes que pensar que las demoras el micro esta haciendo nada ( ejecutando una instruccion que no hace nada - NOP ), y si quiseras agregarle algo ya tendrias que comenzar con interrupciones. Lo que complica mas las cosas si quisieras meterte de lleno en hacer led+interrupciones+aprender lo basico.

Con respecto a las tiras de leds dependen como se manejan las mismas, si tenes que enviar un dato en forma serial para el mismo o si funcionan como con un led comun, esta mas que claro que primero deberias comenzar con un led simple,

Como dije, cuando tengas algun problema, seguro que alguien va a responder.

EDIT:

Vi que respondiste aca:
http://www.todopic.com.ar/foros/index.php?topic=22077.msg363752;topicseen#msg363752

Ese programa es igual al que te pase yo en pseudocodigo, nomas que esta en ASM, y te va a ser mucho mas complejo aprenderlo pero vas a entender mucho mas el micro.

En C el mismo programa te quedaria algo asi:
Código: [Seleccionar]
while(1) {
PORTB = 0x01;
__delay_ms(20); //Suponiendo que son 20 mS
PORTB = 0x02;
__delay_ms(20);
PORTB = 0x04;
__delay_ms(20);
PORTB = 0x08;
__delay_ms(20);
PORTB = 0x10;
__delay_ms(20);
PORTB = 0x20;
__delay_ms(20);
PORTB = 0x40;
__delay_ms(20);
PORTB = 0x80;
__delay_ms(20);
}

El codigo del delay ya esta hecho, mientras que en ASM lo vas a tener que hacer, y hacerlo seria algo como esto:

Código: [Seleccionar]
; Declaracion de los registros de 8 bits para contar las vueltas


cblock
d1
d2
d1_2
endc

; A hacer matematicas para contar los ciclos, esto es para un cristal de 4Mhz

Delay
;499994 cycles
movlw 0x03
movwf d1
movlw 0x18
movwf d2
movlw 0x02
movwf d1_2
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d1_2, f
goto Delay_0

;2 cycles
goto $+1

;4 cycles (including call)
return

Y cambiarle el tiempo no es nada facil al menos no como se hace en C xD



Hola KILLLERJC, si, postíé alli primero y luego pensé en hacerlo de forma independiente... para poder separar los comentarios, a pesar de que intento seguir el tema...   asi sigo viendo el tema programacion.    como dije antes, con un amigo que es programador, estuvimos viendo esto del programa... pero como sé que esta complicado con el trabajo, es que ingrese a este foro, y con lo poco que vi junto a él, y lo que pueda adelantar por propio medio, lograr hacer las luces que necesito. 
te comprendo que los lenguajes no son tan simples para enseñarlos asi nomas...  te comprendo, enseño dibujo y es asi en todos los rubros...  con el proyecto del ultraliviano sucede lo mismo, construir en tubos de acero inoxidable no es facil, pero se puede aprender, aunque me lleve unos meses....  aprender a soldar, luego comprar una soldadora TIG y luego hacer practica para poder soldar sin llamar a nadie que nos haga las soldaduras...  el hecho de programar las luces, me soluciona muchas cosas, a pesar de que puedo hacer esto mismo de forma analogica, con un 4017, diodos, un 555 de timer...  y con una plaqueta mas grande logro lo mismo..  pero no puedo cambiar los detellos como desearia...  y esa flexibilidad es la que tienen los PIC´S y su programacion.     

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #8 en: 25 de Diciembre de 2014, 18:37:18 »
Hola Pucara, si programa en Basic, te aconsejo que exponga tus dudas en el Subforo de Lenguaje Basic.
Si tiene el micro porque no empieza a practicar con el.
en el Subforo de Basic alli hay un monton de Ejemplo de como usar Led y ponerle Retardo, como tu quiere, es solo leer, explicar todos lo que tu quiere hacer sin exponer aqui tus codigo de avance no va a ningun sitio, cuando entro a un foro a pedir ayuda ya entro con mi codigo marcando mis problemas, al ver tu codigo tiene mas opcion que otros te ayudes.

Saludos

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #9 en: 25 de Diciembre de 2014, 18:40:21 »
Uff me pasaste!!
con un NE555 claro que lo puede hacer y regular los detellos, un NE555 y un Transistor te resuelve el problema sin tener que programa un micro .
Saludos

Desconectado pucara

  • PIC10
  • *
  • Mensajes: 8
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #10 en: 25 de Diciembre de 2014, 18:43:54 »
Hola Pucara, ya que esta interesado y dice que no es dificil, porque no comiensa a programar un LED? y luego o programa con un Delay, eso es lo primero que aprendemos todos programador.
o quiere que te hagamos los paso del programa?  ;-)
los primero ante de iniciarte a programar micro, es saber que lenguaje quiere programar y paralelo saber arquitetura del micro que tenga a mano para asi experimentar con el.

Asi que da lo primero paso como hemos comenzado nosotros.
Saludos






deseaba comentarte que estoy buscando un programador     PICKIT 3, aunque sea usado.. si saben de alguien que tenga uno y no lo use...  asi voy completando el equipamiento para grabar !!!!   como veras, no tengo siquiera el equipamiento para poder grabar, usaría el que tiene mi amigo, es el mismo....   por eso, la idea de programar con ese programa y equipo, para usar el mismo lenguaje...  

Desconectado pucara

  • PIC10
  • *
  • Mensajes: 8
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #11 en: 25 de Diciembre de 2014, 18:54:56 »
Uff me pasaste!!
con un NE555 claro que lo puede hacer y regular los detellos, un NE555 y un Transistor te resuelve el problema sin tener que programa un micro .
Saludos




jajajjjjjaaaa...  no es el caso... si fueran solo destellos parejos, un basico flip flop, logico que uso un 555 y listo... pero deseo hacer destellos diferenciados, y en un momento todos juntos, es como las luces de las ambulancias y carros de polcia... donde hacen un par de destellos de un canal, hace un par de destellos en el otro canal, esto dos veces y a la tercera destellan todos juntos un par de veces, para luego volver al principio...  eso solamente con un pic programado y luego solo cambar tiempos y destellos alcanza...   por eso el uso del pic.   aparte que es algo que siempre quise ponerlo en practica, aprender y usarlo...   no olvides que soy un veterano que tuvo o tiene la electronica como hobby...  soy RADIOAFICIONADO desde hace años, y fabricaba plaquetas impresas, algunos circuitos y antenas para aficionados...   asi que esto de la programacion es un debe que tengo de hace años... y ahora, con el proyecto del ultraliviano, tengo la necesidad de hacer estas luces, por lo que varios constructores amigos, estan esperando que fabrique la primer plaqueta y probarla...   asi luego les enseño lo aprendido....

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: DESTELLADOR DIFERENCIADO CON PIC
« Respuesta #12 en: 26 de Diciembre de 2014, 01:54:58 »
Hola pucara, está prohibido repetir los temas por varios subforos, pues no hay ninguna necesidad de hacerlo.

El otro post que colocaste lo e eliminado, gracias por comprender.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.