Inicio Quienes Somos Entretenimiento Contáctenos Como Comprar los Ebooks
Ingresar Registrarse
Artículos Gratuitos sobre electrónica básica y avanzada y venta de libros electrónicos.

DISEÑANDO CON PICS
MICRO3
PROGRAMANDO CON NIPLE

por RUIZ MARTIN Y PICERNO




Tamaño A+ A-

MICRO3

3.1 PRESENTACIÓN

Construir un generador de onda rectangular es algo aparentemente muy simple, pero al llevar la idea a la práctica comienzan a aparecer los problemas.
 
Todos comenzarían por un multivibrador biestable. Dos transistores con una realimentación del colector de uno a la base del otro. Seguramente se puede llegar a una solución pero se requiere la fabricación de un prototipo y un ajuste manual de los componentes utilizando un osciloscopio.

La razón es que los componentes más precisos que maneja un técnico son a un 5% de precisión y no podremos mejorar esa precisión en el periodo de actividad y en la frecuencia.

Con el osciloscopio podremos mejorar la precisión pero a lo largo del tiempo no tenemos modo de evitar que los materiales cambien levemente de valor. 

¿Podremos encontrar una solución que genere los pulsos con absoluta precisión sin necesidad de observarlos con un osciloscopio para estar seguros de nuestro circuito?

Si, se puede conseguir y seguramente con más precisión que la que nos puede dar un osciloscopio. Si el osciloscopio le da un error en los tiempos, mándelo a reparar porque está fallando. La solución es usar un micro pequeño y el PIC en este caso es el rey, el famoso "rey micro" de mi libro.

En mi libro hablábamos de micros que no podían reprogramarse (estábamos en la época de los TRC) hoy el mismo micro del ejemplo podemos reprogramarlo para que cumpla miles o millones de funciones diferentes.

3.2 SOLUCIÓN CON UN MICRO 

Vamos a usar el micro que hizo famoso a "Microchip" aunque desde ya le digo que sus prestaciones son superiores a las necesarias. Lo usamos solo como ejemplo y porque es muy económico.

En la figura 3.2.1 mostramos el circuito correspondiente a nuestro diseño realizado en el simulador Proteus que es el más adecuado para simular circuitos con micros.

 
Fig.3.2.1  Circuito del generador de señal rectangular. Nota: es comun que Las conexiones de masa y fuente no se dibujen para simplificar el mismo pero son: masa 5 y 14 fuente (5V). El triangulo invertido sobre R1 significa una conexión a la pata de fuente.

El clok y el reset ya fueron tratados en el artículo 1 de la serie.

Queremos que nuestro circuito genere una señal como la que indicamos a continuación en la figura 3.2.2 pero en el desarrollo del programa vamos a indicar como se modifican los tiempos de los pulsos a discreción para lograr otros valores de tiempo de actividad y frecuencia. 
   
 
Fig.3.2.2 Oscilograma de salida
Es decir que queremos un generador que entregue 5V durante 100 uS luego permanezca en cero durante 200 uS y vuelva a comenzar un ciclo idéntico hasta el infinito.

El oscilograma que mostramos surge en realidad de la simulación del circuito incluido el programa interno del PIC que vamos a desarrollar. Es decir que en el circuito no colocamos un 16F84C vacio sino uno cargado con el programa adecuado.
 
3.3 EL PROGRAMA EN NIPLE

Como ya sabemos el NIPLE es un programa gráfico en el que hay que elegir bloques que realizan la función deseada. Luego de colocar el bloque, este se une a los bloques anteriores, formando el programa completo como un diagrama en bloques.

En realidad cada vez que colocamos un bloque el programa genera de fondo y como algo invisible al operador, una sentencia del PIC que estamos usando. Observe el programa gráfico de la figura 3.3.1.
  
Fig.3.3.1 Programa gráfico NIPLE

Lo primero que hace el programa automáticamente es colocar el bloque "Iniciar" cuando abrimos un nuevo programa. Luego, si el lector recuerda, decíamos que los micros actuales eran enmascarables, es decir que las patas podían elegirse como de entradas o salidas. Eso lo realizan los bloques de doble flecha en donde se indica si una pata será de entrada o salida.

Hay un bloque para cada puerto. Al seleccionar "puertos" aparecen ambos con todas las patas como salidas. Esto se produce automáticamente porque por lo general las patas como salidas suelen captar menos interferencia. Si se necesita una o más entradas, solo hay que marcar el casillero correspondiente.

Hasta aquí son todas acciones comunes a todos los programas y no lleva más que segundos realizarlas para comenzar luego el programa específico que deseas.
En nuestro caso debemos:

1)  Buscar un rectángulo violeta que sirve para poner valores en las patas de salida. Aparece un formulario preguntando en que pata hay que colocar un valor y si ese valor es un 0 o un 1 y luego pulsar un botón para que el bloque se una al bloque verde del puerto B.

2) Buscar el bloque temporizador que es una elipse verde con una salida rectangular. A ubicarlo aparece un formulario con opciones de diferentes tipos, elegir "tiempo fijo" y luego 100 y luego uS. Esto mantiene en 1 la salida por la pata RA0 durante 100 uS.

3) Ahora hay que buscar otro violeta como el anterior pero en el formulario hay que poner que queremos una salida por la misma pata anterior RA0 pero ahora elegimos con el valor 0.

4) Volvemos a buscar el bloque temporizador lo ubicamos y ahora lo predisponemos en 200 uS.

5) Como el ciclo de la señal rectangular esta completo debemos cerrar el loop (rulo o nudo en español) y debemos unir la salida del temporizador con el rectángulo violeta de RA0=1. Cada vez que se selecciona un bloque de la barra de bloques el NIPLE lo une con el bloque anterior pero además genera un orlado sobre cada bloque (orlado=rectángulo de guiones con un punto grande  sobre cada vértice, otro en la mediana de cado lado y otro en el centro). Picando sobre el punto del orlado del temporizador de 200 y llevando el mouse al primer rectángulo y soltando el botón del mouse se genera una flecha sobre la línea que cierra el loop.

3.4 ¿ES IMPRESCINDIBLE EL NIPLE?

No, de ninguna manera. Un programador podría tipiar el código ASM y generar el mismo programa en forma de texto como se observa a continuación:
;------------------------------------------------------------
; Código assembler generado por Niple V6.4.1
; Proyecto: generador señal rectangular
; Autor: 
; Fecha: 26/03/2020
; PIC: 16F84A
; Velocidad de reloj: 4 Mhz
; Descripcion: genera una señal rectangular de 100uS x 200 uS
;------------------------------------------------------------
 LIST    P=PIC16F84A
_HS_OSC               equ  0x3FFE
_WDT_OFF              equ  0x3FFB
_PWRTE_ON             equ  0x3FF7
_CP_OFF               equ  0x3FFF
 __config _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
;------------------------------------------------------------
;                  Declaración de Registros
;------------------------------------------------------------
w                     equ  0x0000
status                equ  0x0003
fsr                   equ  0x0004
porta                 equ  0x0005
portb                 equ  0x0006
pclath                equ  0x000a
_np_tiempo            equ  0x000d
_np_tiempo1           equ  0x000f
_np_tiempo2           equ  0x0010
_np_tiempo3           equ  0x0011
opcion                equ  0x0081
trisa                 equ  0x0085
trisb                 equ  0x0086
;------------------------------------------------------------
;                  Declaración de Bits
;------------------------------------------------------------
c                     equ  0   ;-
psa                   equ  3   ;-
ra0                   equ  0   ;-
rp0                   equ  5   ;-
rp1                   equ  6   ;-
to                    equ  4   ;-
z                     equ  2   ;-
;------------------------------------------------------------
;               Declaración de Registros EEPROM
;------------------------------------------------------------
;------------------------------------------------------------
;                        Inicio
;------------------------------------------------------------
   org 0x00
   bsf status,rp0                   ;cambiar a banco 1
   clrf opcion
   goto paso2
;------------------------------------------------------------
;                      programa principal
;------------------------------------------------------------
paso2
   bsf status,rp0                   ;cambiar a banco 1
   bcf opcion,psa
   bcf status,rp0                   ;cambiar a banco 0
   clrf _np_tiempo
   clrf _np_tiempo1
   clrf _np_tiempo2
   clrf _np_tiempo3
   clrf porta
   movlw b`00000000`          ;configurar el puerto a como xxxsssss
   bsf status,rp0                  ;cambiar a banco 1
   movwf trisa
   bcf status,rp0                  ;cambiar a banco 0
   clrf portb
   movlw b`00000000`          ;configurar el puerto b como ssssssss
   bsf status,rp0                   ;cambiar a banco 1
   movwf trisb
paso4
   bcf status,rp0                   ;cambiar a banco 0

   bsf porta,ra0

   movlw .19
   movwf _np_tiempo
tempo_002_a
   nop
   nop
   decfsz _np_tiempo,1
   goto tempo_002_a
   bcf porta,ra0
   movlw .39
   movwf _np_tiempo
tempo_004_a
   nop
   nop
   decfsz _np_tiempo,1
   goto tempo_004_a
   goto paso4                       ;cierra el ciclo
;------------------------------------------------------------
;                  DATOS EN MEMORIA EEPROM
;------------------------------------------------------------
   org  0x2100
   data   0xff
   data   0xff
-----------------iden
 End
Yo diría: se puede pero es una locura meterse en semejante trabajo. Y que hacerlo, sin cometer errores es casi imposible. El NIPLE me permitió hacerlo en menos de 1 minuto y seguro que no tiene errores, salvo que la transcripción del código de un bloque tenga un error y puede estar seguro que no es así porque los programas beta (beta: programa en revisión) se someten a innumerables pruebas realizadas por diferentes personas.

¿El NIPLE es gratuito? La versión utilizada para generar nuestro programa es un demo gratuito por un tiempo considerable que seguramente será suficiente para que Ud. compruebe su utilidad.

3.5 CONCLUSIONES

¿Esta serie de artículos ya está terminada? No, hasta ahora tenemos un PIC16F84A virgen. Si lo ponemos en el circuito, el osciloscopio no tendrá salida alguna.
 
Las razones son dos: una es una imposibilidad física.  Es que el programa que hicimos está dentro de la PC o en un pendriver pero la PC no tiene ningún conector para ningún tipo de micro. La segunda razón es una imposibilidad que podríamos llamar "de lenguaje" La PC habla un lenguaje de programación diferente al lenguaje que habla el PIC. Es decir que aunque se puedan interconectar no se entenderían.

Justamente en la próxima entrega vamos a explicar cómo zanjar estas diferencias físicas y de lenguaje. Ud. se preguntará, ¿pero de cualquier modo no voy a poder probar el proyecto porque no tengo osciloscopio?.

No se preocupe que vamos a modificar el proyecto por programación para que Ud. pueda oír lo que no puede ver e intentaremos que pueda ver la salida en un monitor.
 
PROPAGANDA

    Ya está en venta el segundo tomo de "La Biblia del PIC con NIPLE" que es la herramienta más idónea para simplificar el tema de los desarrollos de proyectos con microprocesadores.

    El segundo Tomo, de unas 130 páginas contiene 4 proyectos completos, que con simples modificaciones del programa se multiplican a muchas más.

    Cada proyecto contiene el circuito del mismo, dibujado en el programa simulador Proteus y/o Multisim con la explicación de para qué sirve cada componente y como se calcula. La simulación del mismo, con explicaciones sobre donde conectar el instrumental y como analizar los oscilogramas y las tensiones continuas.

    También le damos el dibujo de la plaqueta de circuito impreso y los planos e indicaciones de armado y de carga del programa.

    En cada proyecto de cualquier tomo, vamos a seguir el mismo criterio con respecto a las facilidades que le entregamos para armar los proyectos completos.

    El primer proyecto del tomo 2, es para controlar el encendido y apagado de un motor, utilizando una llave con retención. En realidad el proyecto es una excusa para practicar el ingreso de datos a un PIC.

    El segundo cumple la misma función que el primero pero lo hace utilizando un solo pulsador y usando al programa para retener la condición del motor (funcionando o detenido). No hace falta indicar que ya es un proyecto utilizable en electrónica industrial, adaptándole un contactor.

    El tercer proyecto, también sirve para controlar un motor pero con marcha hacia adelante, hacia atrás y con cambio de velocidad.

    El cuarto proyecto tiene múltiples usos y ya es un viejo conocido de los reparadores del mundo de habla Hispana. Es el famoso EVARIAC, que reemplaza y con ventajas al clásico VARIAC electromecánico de los cuales la mayoría ya están rotos, por ser un instrumento de corta vida, que sufre el desgaste mecánico.

    En todos los casos le entregamos los archivos completos para el armado y los diseños de las plaquetas inclusive el archivo del PIC del EVARIAC que todos me pedian y que nunca entregamos.

    Si vive en la argentina solo ingrese en www.picerno.com.ar busque la caratula igual a la de la última página y pulse en comprar ahora. Podrá pagar por todas las opciones de Mercado Pago siguiendo las instrucciones de pantalla.

    Si vive en el exterior puede comprarlo por Paypal, pero enviando además un mensaje a www.picerno.com.ar en "contactenos" para indicarnos que desea comprar.
    Ud. recibirá los eBook por correo electrónico dentro de las 24 horas.



Más DISEÑANDO CON PICS

MICRO2

MICRO 1





El Ing. Alberto Picerno, conocido en toda latinoamerica por sus cursos de Tv y LCD, es el autor mas prolífico sobre Electrónica, con mas de 40 libros tecnicos y cientos de articulos publicados. 

Se inicio en el mundo de la electronica de niño ayudando a su padre que era hobbysta y aficionado a la radio.

Su experiencia temprana le permitio recibirse con medalla de oro al mejor promedio de "Tecnico Nacional el Telecomunicaciones" y posteriormente volvio a obtener la medalla de oro al mejor promedio como "Ingeniero en electronica en UTN"

Leer Mas Aquí



Artículos Gratis
Sobre Electrónica
por Ing. Picerno


Ir a Artículos Gratuitos      


Libros Digitales

Adquiera los mejores
Libros Digitales (Ebooks)
Sobre Electrónica

Ir a Sección Libros      

MAPA DE LINKS:

INICIO - QUIENES SOMOS - ENTRETENIMIENTO - CONTACTENOS

TV: TRC - LCD - Plasma - LED - Smart - OLED

SOLDADURAS: SMD - BGA - Maquinas de Rebaling

TALLER: Puntas de prueba Sonda de RF - Punta de prueba BEBE - Punta de prueba Filtro Pasabajo - Instrumentos Fuentes - Instrumentos Evariac - Instrumentos SuperEvariac - Instrumentos Varios

AUDIO: Amplificadores Analogicos - Amplificadores Digitales - Bafles Caseros

MANUALES: TV TRC - TV LCD - TV Plasma - TV LED - SmartTV - TV Oled - Fuentes de TV - T-COM - Driver de LED - Inverters

EBOOKS

PROGRAMAS: Simuladores de Circuitos Multisim - Simuladores de Circuitos Livewire - Simuladores de Circuitos Proteus - Programas para PICs y memorias Ram

MICROS: Diseñando con PICS 1 - Diseñando con PICS 2

OTROS ARTICULOS

ARTICULOS DE LA A A LA Z

Ingeniero Alberto Picerno - Av. 2 de Abril 140 - Burzaco - Buenos Aires - Argentina - Tel: 011-4299-2733
Articulos y Ebooks de Electronica - Todos los Derechos Reservados - 2016

Diseño y Hosting RCH
rch.com.ar - redcomser.com.ar