Manual de prácticas
-
Upload
itchihuahuaii -
Category
Documents
-
view
5 -
download
0
Transcript of Manual de prácticas
Manual de prácticas
De
Laboratorio
Materia
PROGRAMAR SISTEMASMECATRONICOS
Elaborado Por:
Ing. Marcos Antonio Moreno Guzmán
Agosto 2011
Presentación
Este manual está pensado como una guía para que el
alumno pueda realizar experimentos prácticos necesarios para
comprobar los conocimientos teóricos que se han visto en
clase. También le dará pautas para que pueda resolver
problemas prácticos en aplicaciones de los micros
controladores, al programar y diseñar sistemas mecatronicos
y así realizar aplicaciones reales con los conocimientos
adquiridos en clase y en semestres anteriores.
Lista de Experimentos:
Práctica No. 1: RELEVADOR o RELAY, TEMPORIZADOR (TIMER)
555.PARTE 1: FUNCIONAMIENTO DEL RELAYPARTE 2: CIRCUITO BASICO DEL RELAY CON UN MOTOR.PARTE 3: CIRCUITO BASICO DEL TEMPORIZADOR 555, LUZ INTERMITENTE PARTE 4: TEMPORIZADOR, TRANSISTOR, RELAY Y MOTORPráctica No.2 TRANSISTOR EN CORTE Y SATURACION,TRANSISTOR NPN, PNP Y AMPLIFICADOR DARLINGTONPARTE 1: TRANSISTOR EN CORTE Y SATURACION.PARTE 2: FUNCIONAMIENTO DEL TRANSISTOR NPNPARTE 3: FUNCIONAMIENTO DEL TRANSISTOR PNPPARTE 4: FUNCIONAMIENTO DEL AMPLIFICADOR DARLINGTON Y MOTOR.Práctica No.3 CAMBIO DE GIRO DE UN MOTOR DE DC.PARTE 1: FUNCIONAMIENTO DE UN PAR DE RELAYS PARA CAMBIO DE GIROPráctica No.4 CIRCUITO BASICO PIC 16F84 o 16F628PARTE 1: PRIMER PROGRAMA ENCENDER UN LED (PARPADEANDO CADA SEG)PARTE 2: AHORA CON UN INTERRUPTORPARTE 3: CONTROLAR RELAY CON TRANSISTOR NPN.PARTE 4: CONTROL DE GIRO DE UN MOTOR CON MICROCONTROLADOR.Práctica No.5 MANEJO DE SALIDASPARTE 1: PAR DE LED PARPADEANDO CADA SEGUNDO.PARTE 2: RECORRIDO DE LEDS USANDO SALIDAS DIRECTAMENTE.PARTE 3: RECORRIDO DE LEDS USANDO TABLA DE VALORES.PARTE 4: RECORRIDO Y APAGADO DE LEDS.PARTE 5: LLENANDO UNA FILA DE LEDS.PARTE 6: IDA Y VUELTA EN UNA FILA DE LEDSPráctica No.6 MANEJO DE ENTRADAS.PARTE 1: COMO USAR UN INTERRUPTOR (SWITCH).PARTE 2: FOTOTRANSISTOR, FOTORESISTENCIA.PARTE 3: SENSOR TACTIL.PARTE 4: SENSOR DE HUMEDAD.PARTE 5: ALARMA CONTRA INTRUSOS CON SCR.Practica No.7 MANEJO DE DISPLAY DE 7 SEGMENTOS.PARTE 1: DESPLEGAR LOS NUMEROS 0-9 ASCENDENTE
PARTE 2: DESPLEGAR LOS NUMEROS 0-9 DESCENDENTEPARTE 3: DESPLEGAR LETRAS.Practica No.8 MANEJO DE MATRIX 5x7.PARTE 1: DESPLAZAMIENTO POR COLUMNAS EN MATRIX 5x7 DE LEDSPARTE 2: DESPLAZAMIENTO POR FILAS EN MATRIX 5x7 DE LEDSPARTE 3: DESPLAZAMIENTO POR FILAS Y COLUMNAS EN MATRIX 5x7 DE LEDSPractica No.9 MANEJO DE DISPLAY.PARTE 1: EL DISPLAY DE CRISTAL LIQUIDO (LCD)PARTE 2: RECORRER TEXTOSPractica No.10 MANEJO DE TECLADO.PARTE 1: EL TECLADOPractica No.11 PROYECTO FINALPARTE 1: APLICACIONES DEL MICROCONTROLADOR.”MANUAL DE PRACTICAS”PARTE 2: PROYECTO FINAL.
Practica No.1 RELEVADOR o RELAY, TEMPORIZADOR (TIMER) 555.
Objetivo: Que el alumno compruebe el funcionamiento de un RELEVEDORo RELAY, además del funcionamiento básico de un temporizador 555(timer)
PARTE 1:FUNCIONAMIENTO DEL RELAY
Arme el siguientecircuito en elprotoboard:
Que sucede?
Anote sus conclusiones:
Nota: un relevador o relay es un dispositivo electrónico que trabajacomo un interruptor y consta de una bobina y unos contactosindependientes. Dentro de estos tenemos 2:
El “NC” o normalmente cerrado, donde tenemos un flujo de
corriente antes de energizar la bobina. Terminando siempre enpolo negativo.
El “NA” o normalmente abierto, donde tendremos un flujo decorriente una vez energizada la bobina del relay. Terminandosiempre en polo negativo
El “C” o común, que casi siempre conectamos el polo positivo, dela fuente que vamos a manejar para los dispositivo conectados enlos otros dos contactos.
PARTE 2:
CIRCUITO BASICO DEL RELAY CON UN MOTOR.
Arme el siguientecircuito en elprotoboard:
Que sucede?
Anote susconclusiones:
Nota: un motor es un dispositivo electrónico que en su interior constade una bobina por lo que debemos proteger nuestro circuito de voltajesgenerados por esa bobina, por lo que también debemos agregar un diodo para evitar el regreso de voltaje a nuestro circuito.
PARTE 3:CIRCUITO BASICO DEL TEMPORIZADOR 555, LUZ INTERMITENTE
Arme el siguientecircuito en elprotoboard:
Que sucede?
Qué pasa cuando movemosel potenciómetro?
Apague el circuito ycambie el capacitor poruno de 100 microfaradios y encienda el circuito y observe lo que sucede. Anote sus conclusiones:
Nota: el circuito integrado 555 (timer) es un circuito que en su salida (pin 3) vamos a tener una oscilación entre positivo y negativo,la frecuencia con que cambia esta oscilación (intermitencia) depende de los valores de las resistencias y el capacitor .entre más grande elcapacitor la frecuencia es más lenta.
PARTE 4: TEMPORIZADOR, TRANSISTOR, RELAY Y MOTOR
Arme el siguiente circuito en el protoboard: agrega el transistor y relay al circuito anterior de la parte 3
Que sucede?
Qué pasa cuando movemos el potenciómetro?
Agregamos ahora un motor:
Anote sus conclusiones:
Practica No.2 TRANSISTOR EN CORTE Y SATURACION, TRANSISTOR NPN, PNP Y
AMPLIFICADOR DARLINGTON.
Objetivo: Que el alumno compruebe el funcionamiento de un transistoren corte y saturación, transistor NPN, transistor PNP, y observe elfuncionamiento de amplificar una señal de corriente con 2 transistores(par Darlington)
PARTE 1:TRANSISTOR EN CORTE Y SATURACION
Los transistores pueden ser NPN y PNP, esto depende de cómo estén construidos internamente.
Arme el siguiente circuito:Transistor NO conduce (CORTE)
Que observa del circuito?
Enciende el led?
Porque?
Ahora agregamos otra resistencia alcircuito en la base del transistor y loconectamos al positivo de la batería:
Transistor en conducción (SATURACION)
Que puede concluir del circuito quearmo, al introducir voltaje a la basedel transistor?
Arme el siguiente circuito:
Transistor en configuración de Normalmente abierto.
Que es lo que nota al accionar elswitch?
Porque no prende el led?
Haga sus conclusiones.
Arme el siguiente circuito:Transistor en configuración de Normalmente cerrado
Que es lo que nota al accionar elswitch.?
Qué pasa con el Led?
Haga sus conclusiones:
PARTE 2:FUNCIONAMIENTO DEL TRANSISTOR NPN.
Nota: Cuando el colector y la base de un transistor NPN se conectan hacia el polo Positivo de la fuente de alimentación y el emisor hacia el polo Negativo, se dice que el transistor esta polarizado correctamente.
Arme el siguiente circuito en elprotoboard:
Active el interruptor, que es lo quesucede?
PORQUE?
ANOTE SUS CONCLUSIONES:
PARTE 3:FUNCIONAMIENTO DEL TRANSISTOR PNP.
Nota: Cuando el colector y la base de un transistor PNP se conectan hacia el polo Negativo dela fuente de alimentación y el emisor hacia el polo Positivo, se dice que el transistor esta
polarizado correctamente. (Se conecta contrario que el transistor NPN)
Arme el siguiente circuito en elprotoboard:
Active el interruptor, que es lo quesucede?
PORQUE?
ANOTE SUS CONCLUSIONES:
PARTE 4:AMPLIFICADOR DE SENAL, CON TRANSISTORES (PAR DARLINGTON)
Arme el siguiente circuito enel protoboard:
Que sucede?
Anote sus conclusiones:
Nota: Si colocamos el dedo entre los puntos A y B (donde está colocado el switch) se encenderá el LED. Lo que ocurre es que la corriente que atraviesa el cuerpo humano es muy pequeña y utilizamos dos transistores (par Darlington) para amplificarla y poder encender un LED. Hay interruptores Sensitivos en los televisores que permiten economizar un interruptor mecánico y ofrece una utilización más confortable.
Igualmente si colocamos esas dos puntas en un recipiente con
agua o algún líquido que sea conductor de electricidad, pasara lo mismo que al tocarlo, el LED encenderá por la propiedad de conducción de electricidad en el líquido.
Practica No.3 CAMBIO DE GIRO DE UN MOTOR DE CORRIENTE DIRECTA.
Objetivo: Que el alumno identifique y compruebe el funcionamiento delos relevadores, como interruptores mecánicos capaces de cambiar lapolaridad en un circuito para el control de un motor de DC.
PARTE 1:FUNCIONAMIENTO DE UN PAR DE RELAYS PARA CAMBIO DE GIRO
Arme el siguiente circuito en el protoboard:
NOTA: Para realizar esta práctica , es necesario que tengas mucho cuidado con los voltajes a utilizar , los relevadores pueden tener un voltaje y los motores pueden ser de uno diferente, por lo que si se desea controlar motores con diferentes voltajes se deben hacer los cambio a la alimentación , la adecuada para cada componente electrónico. (GUARDAR ESTA PRACTICA PARA USARSE EN PRÁCTICA POSTERIOR)
Encienda el interruptor del MOTOR 1. Presione uno a uno de los interruptores (IZQUIERDA o DERECHA), que es lo que sucede?
Anote sus conclusiones:
Practica No.4 CIRCUITO BASICO PIC 16F84 o 16F628
Objetivo: Que el alumno identifique y compruebe el funcionamiento delos diferentes circuitos (RESET, OSCILADOR, ALIMENTACION, ENTRADAS YSALIDAS, que forman el circuito básico de operación para un microcontrolador. (pic16f84 o pic16f628)
PARTE 1:PRIMER PROGRAMA ENCENDER UN LED (PARPADEANDO CADA SEG)
Arme con mucho cuidado el siguiente circuito:
NOTA: para las entradas, no agregue todos los interruptores, solo uno,el de RA0 y a los demás puertos de RA solo la resistencia de 10KΩ a TIERRA. ESTE CIRCUITO LO USAREMOS EN TODAS LAS PRACTICAS SIGUIENTES Y PROYECTO !NO LO DESARMES!
SIMULANDO EL PROGRAMA:
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente programa en PICBASIC tal y como se muestra, para ello abra el programa PIC SIMULATOR IDE, selecciona el microcontrolador, el cristal o reloj a usar y en TOOLS saca el compilador de Basic y en losprimeros renglones del programa anota como comentario: NOMBRE, GRUPO YNUMERO DEL EQUIPO.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
'Programa que enciende y apaga el pin 0 del puerto B'cada 1 segundos
AllDigital 'todos los puertos digitales TRISB = 0 'configurar puerto B como salidasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero
INICIO: 'etiqueta de inicio de programa
High PORTB.0 'enciende pin 0 del puerto bWaitUs 10 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bWaitUs 10 'espera 1 seg Goto INICIO 'regresa a la etiqueta inicio End 'fin del programa
De la pestaña de TOOLS, saca el microcontrolador, la barra de leds y simula el programa.
Que es lo que sucede en la barra de leds del simulador?
Una vez ya simulado y comprobado que funciona, vamos a cambiar los tiempos a MILISEGUNDOS, para poderlo llevar al microcontrolador.
Cambia las TODAS instrucciones de esperar WaitUs por WaitMs y elvalor agrégale 2 ceros, si tienes 10, ahora escribe 1000.
Con los cambios hechos, ahora compílalo y recuerda donde se guardó para poder tener acceso al archivo .HEX que es el que vamos a meter en el micro controlador.
DE LA SIMULACION A LA REALIDAD:
1. Primero vamos a abrir el programa para programar el microcontrolador, que es el ICPROG o el que esté disponible en el laboratorio, ya que depende del aparato programador quese tenga, será el software a usar.
2. En la pestaña de configuración del programa elige el número correcto del microcontrolador que vas a usar para tu práctica.
3. carga el programa .HEX que editaste en el simulador y que compilaste.
4. Inserta tu microcontrolador en el aparato programador.
5. Haz click en el icono de borrar microcontrolador.
6. Haz click en el icono de mandar archivo al microcontrolador.
7. Quita el microcontrolador de la base del programador e insértalo donde va en el protoboard.
Ahora ya estamos listos para ver si funciona en la practica el programa.
Que es lo que sucede en el protoboard, que es lo que observas?
NOTA: si ves que el tiempo que diste para el microcontrolador no es elcorrecto, vuelve a editar el programa y a compilarlo y repite los pasos anteriores para corregir el tiempo.
Ahora te toca a ti encender un LED de alguna otra salida que no sea la que encendiste anteriormente.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
PARTE 2:AHORA CON UN INTERRUPTOR
Ahora, siguiendo los pasos anteriormente mencionados vamos a hacer que el microcontrolador controle el encendido de un LED colocadoen una de las 8 salidas, por medio de un interruptor colocado en una de sus entradas:
Edita el siguiente programa:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
'Programa que enciende y apaga un LED en el pin 0 del puerto B por medio de un ‘interruptor colocado en el pin 0 del puerto A.
AllDigital 'todos los puertos digitales TRISB = 0 'configurar puerto B como salidasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero
INICIO: 'etiqueta de inicio de programa
PORTB.0 = PORTA.0 'enciende el LED del pin B.0 al accionar
‘el interruptor del pin A.0 Goto INICIO 'regresa a la etiqueta inicio
End 'fin del programa
Que sucede en la barra de leds del simulador?
Que ocurre en la figura del microcontrolador del simulador?
Ahora te toca a ti controlar un LED de alguna otra salida que no sea la queencendiste anteriormente, con un interruptor colocado en otro puerto de entrada.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
PARTE 3:CONTROLAR RELAY CON TRANSISTOR
Arme el siguiente circuito en el protoboard:
Accione el interruptor. Que es lo que sucede?
Porque?
Ahora quita el switch y conecta la resistencia con el microcontrolador, al puerto de salida que tú configuraste en el programa anterior, para que acciones el relay cada vez que acciones elinterruptor programado como entrada del programa anterior.
Anota tus conclusiones:
PARTE 4:CONTROL DE GIRO DE UN MOTOR CON MICROCONTROLADOR (PRÁCTICA#3)
Arme el siguiente circuito en el protoboard, haciendo los cambios paratú práctica 3 quitando los interruptores y mandándolos a voltaje (el que use tu relay) y agrégale en la parte de tierra, los transistores como se ilustra:
Ahora, siguiendo los pasos anteriormente mencionados vamos a hacer queel microcontrolador controle el giro del motor con los interruptores en las entradas del microcontrolador, que se colocaran para IZQUIERDA o DERECHA.
Edita, simula, compila y carga , el siguiente programa:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
'Programa que controla el giro de un motor, por medio de interruptores‘para IZQUIERDA, DERECHA Y PARO del motor.
AllDigital ‘todos los puertos digitalesTRISB = 0 ‘puerto b como salidasTRISA = 255 ‘puerto a como entradas
PORTA = 0 ‘puerto A apagadosPORTB = 0 ‘puerto B apagados
Inicio:If PORTA.0 = 1 Then Goto izquierdaIf PORTA.1 = 1 Then Goto derechaGoto inicio
Izquierda:PORTB.0 = 1 'ENCIENDE MOTOR 1
PORTB.1 = 1 ‘activa transistor IzquierdaPORTB.2 = 0 ‘desactiva transistor derecha
If PORTA.2 = 1 Then Goto apagarGoto izquierda
Derecha:PORTB.0 = 1 'ENCIENDE MOTOR PORTB.1 = 0 ‘desactiva transistor izquierdaPORTB.2 = 1 ‘activa transistor derecha
If PORTA.2 = 1 Then Goto ApagarGoto derecha
Apagar: PORTB = 0 'apagar PUERTO BGoto inicio
End ‘Fin del programa
Presiona el interruptor de Izquierda, y después el de paro. Que sucedeen la barra de leds del simulador?
Haz lo mismo para el interruptor de Derecha, que sucede en la barra deleds del simulador?
Ahora te toca a ti controlar un MOTOR, ahora usando un tiempo de encendido y que se apague cuando pase ese tiempo o cuando presionen el interruptor de paro.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
Practica No.5 MANEJO DE SALIDAS
Objetivo: Que el alumno identifique y compruebe el funcionamiento delas diferentes formas de activar y desactivar las salidas del puertoRB del microcontrolador.
PARTE 1:PAR DE LEDS PARPADEANDO CADA SEGUNDO
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente programa en PICBASIC:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
'Programa que recorre del pin 0 - 7'del puerto B prendiendo y apagando 2 puertos'cada 1 segundos
AllDigital 'todos los puertos digitales
TRISB = 0 'configurar puerto B como salidas
PORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero
Inicio: ‘etiqueta de inicio de programa
High PORTB.0 'enciende pin 0 del puerto bHigh PORTB.1 'enciende pin 1 del puerto bWaitUs 20 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bLow PORTB.1 'apaga el pin 1 del puerto bWaitUs 20 'espera 1 seg
High PORTB.2 'enciende pin 2 del puerto bHigh PORTB.3 'enciende pin 3 del puerto bWaitUs 20 'espera 1 segLow PORTB.2 'apaga el pin 2 del puerto bLow PORTB.3 'apaga el pin 3 del puerto bWaitUs 20 'espera 1 seg
High PORTB.4 'enciende pin 4 del puerto bHigh PORTB.5 'enciende pin 5 del puerto bWaitUs 20 'espera 1 segLow PORTB.4 'apaga el pin 4 del puerto bLow PORTB.5 'apaga el pin 5 del puerto b
WaitUs 20 'espera 1 seg
High PORTB.6 'enciende pin 6 del puerto bHigh PORTB.7 'enciende pin 7 del puerto bWaitUs 20 'espera 1 segLow PORTB.6 'apaga el pin 6 del puerto bLow PORTB.7 'apaga el pin 7 del puerto bWaitUs 20 'espera 1 segGoto inicio 'regresa a la etiqueta inicioEnd 'fin
Una vez que funcione en el simulador cambie los tiempos a Milisegundos y páselo al microcontrolador.
Ahora te toca a ti controlar, enciende los LEDS que se enciendan y apaguen del bit 7 al bit 0.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
PARTE 2:RECORRIDO DE LEDS USANDO SALIDAS DIRECTAMENTE
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente programa en PICBASIC:
'Programa que recorre del pin 0 - 7'del puerto B prendiendo y apagando cada puerto'cada segundo.
AllDigital 'todos los puertos digitalesTRISB = 0 'configurar puerto B como salidas PORTB = %00000000 'aseguramos todo el puerto B en cero
PORTA = %00000000 'aseguramos todo el puerto A en cero
Inicio: 'etiqueta de inicio de programaHigh PORTB.0 'enciende pin 0 del puerto bWaitUs 10 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bWaitUs 10 'espera 1 seg High PORTB.1 'enciende pin 1 del puerto bWaitUs 10 'espera 1 segLow PORTB.1 'apaga el pin 1 del puerto bWaitUs 10 'espera 1 seg
High PORTB.2 'enciende pin 2 del puerto bWaitUs 10 'espera 1 segLow PORTB.2 'apaga el pin 2 del puerto bWaitUs 10 'espera 1 segHigh PORTB.3 'enciende pin 3 del puerto bWaitUs 10 'espera 1 segLow PORTB.3 'apaga el pin 3 del puerto bWaitUs 10 'espera 1 seg
High PORTB.4 'enciende pin 4 del puerto bWaitUs 10 'espera 1 segLow PORTB.4 'apaga el pin 4 del puerto bWaitUs 10 'espera 1 seg
High PORTB.5 'enciende pin 5 del puerto bWaitUs 10 'espera 1 segLow PORTB.5 'apaga el pin 5 del puerto bWaitUs 10 'espera 1 seg
High PORTB.6 'enciende pin 6 del puerto bWaitUs 10 'espera 1 segLow PORTB.6 'apaga el pin 6 del puerto bWaitUs 10 'espera 1 seg
High PORTB.7 'enciende pin 7 del puerto bWaitUs 10 'espera 1 segLow PORTB.7 'apaga el pin 7 del puerto bWaitUs 10 'espera 1 seg
Goto Inicio 'regresa a la etiqueta inicio
End ‘FIN DEL PROGRAMA
Ahora te toca a ti controlar, enciende los LEDS que se enciendan y apaguen del bit 7 al bit 0 con un puerto de entrada y con otro puerto que se deje de recorrer.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
PARTE 3:RECORRIDO DE LEDS USANDO TABLA DE VALORES
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente programa en PICBASIC:
'Programa que recorre del pin 0 - 8'del puerto B prendiendo y apagando cada puerto'Por medio de una variable y el método de mirar tabla‘cada 1 segundos
AllDigital 'todos los puertos digitales
TRISB = 0 'configurar puerto B como salidas
PORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en ceroDim pin As Byte ‘definimos PIN como un ByteDim led As Byte ‘definimos led como byte
inicio: 'etiqueta de inicio de programa
For pin = 0 To 7 Step 1 ‘para pin de 0-7 de uno en unoled = LookUp (01, 02, 04, 08, 16, 32, 64, 128), pin ‘led toma el
valor de pinPORTB = led ‘sacamos el valor de pin al Puerto B
WaitUs 1 ‘esperamos un SegundoNext pin ‘siguiente valor para pinGoto inicio ‘regresa a inicio
End 'fin del programa
Ahora te toca a ti controlar, haz que los leds comiencen a encender del bit 7 al 0, que se enciendan y apaguen.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
PARTE 4:
RECORRIDO Y APAGADO DE LEDSEn el simulador PIC SIMULATOR IDE edite, compile y simule el
siguiente programa en PICBASIC y agregue los comentarios a las instrucciones:
'Programa que recorre del pin 0 - 8'del puerto B prendiendo y apagando cada puerto'de en medio hacia afuera por medio de una variable'cada 1 segundos
AllDigital
TRISB = 0
PORTB = %00000000 PORTA = %00000000 Dim pin As ByteDim led As Byte
inicio: 'etiqueta de inicio de programa
For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128led = LookUp (24, 60, 126, 255), pinPORTB = ledWaitUs 1Next pinPORTB = 0WaitUs 10Goto inicio
End
Ahora te toca a ti controlar, haz que los leds comiencen encendidos y que se apague uno por uno.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
PARTE 5:LLENANDO UNA FILA DE LEDS.
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente programa en PICBASIC y agregue los comentarios a las instrucciones:
'Programa que llena una fila de leds'al presionar un switch y se borra con otro switch.
AllDigital 'todos los puertos digitalesTRISB = 0 'configurar puerto B como salidasTRISA = %11111111 'configura puerto A como entradasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero
inicio: 'etiqueta de inicio de programa
Goto boton
'PARA EL PUERTO A0puertoa0:PORTB = %00000001
llenando:WaitUs 1 'esta demora debe ser mayor si no es una
simulación!PORTB = ShiftLeft (PORTB, 1)
If PORTB = %10000000 Then Goto dosGoto llenando
dos: PORTB = %10000001WaitUs 30 'esta demora debe ser mayor si no es una
simulación!PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11000000 Then Goto trestres:
PORTB = %11000001WaitUs 30 'esta demora debe ser mayor si no es una
simulación!PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11100000 Then Goto cuatrocuatro:
PORTB = %11100001
WaitUs 30 'esta demora debe ser mayor si no es una simulación!
PORTB = ShiftLeft (PORTB, 1)If PORTB = %11110000 Then Goto cinco
cinco:PORTB = %11110001WaitUs 30 'esta demora debe ser mayor si no es una
simulación!PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11111000 Then Goto seisseis:
PORTB = %11111001WaitUs 30 'esta demora debe ser mayor si no es una
simulación!PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11111100 Then Goto siete
siete: PORTB = %11111101WaitUs 30 'esta demora debe ser mayor si no es una
simulación!PORTB = ShiftLeft (PORTB, 1)
If PORTB = %11111110 Then Goto llenolleno:
PORTB = 255Goto inicio
'PARA EL PUERTO A1puertoa1:
PORTB = 0Goto inicio
'CUAL BOTON SE SELECCIONOboton:
If PORTA.0 = 1 Then Goto puertoa0If PORTA.1 = 1 Then Goto puertoa1Goto boton
End
Ahora te toca a ti controlar, haz que cada led se encienda cada que presiones el puerto A0 y se borre con A1
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
PARTE 6:IDA Y VUELTA EN UNA FILA DE LEDS.
En el simulador PIC SIMULATOR IDE edite, compile y simule el siguiente programa en PICBASIC y agregue los comentarios a las instrucciones:
'Programa que enciende y apaga'los pin del puerto B de derecha a izquierda'cada 1 segundos
AllDigital 'todos los puertos digitales
TRISB = 0 'configurar puerto B como salidasTRISA = 1 'configura puerto A como entradasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero
inicio: 'etiqueta de inicio de programa
PORTB = %00000001 ‘Inicio con puerto RB0 encendido
Izquierda:
WaitUs 1 ‘demora de un segundoPORTB = ShiftLeft (PORTB, 1) ‘recorre en uno lo del Puerto BIf PORTB = %10000000 Then Goto derecha ‘si llego al valor RBGoto izquierda ‘ir a etiqueta izquierda
derecha:
WaitUs 1 ‘retardo de un segundoPORTB = ShiftRight (PORTB, 1) ‘recorre en uno lo del Puerto B
If PORTB = %00000001 Then Goto izquierdaGoto derecha ‘ir a etiqueta derecha
End ‘fin del programa
Este es otro PROGRAMA de como recorrer 2 led al mismo tiempo:
'Programa que enciende y apaga'los pines del puerto B de derecha a izquierda de 2 en 2'cada 1 segundos
AllDigital 'todos los puertos digitalesTRISB = 0 'configurar puerto B como salidasTRISA = 1 'configura puerto A como entradasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero
inicio: 'etiqueta de inicio de programa
PORTB = %00000011
izquierda:
WaitUs 1 'esta demora debe ser mayor si no es una simulación
PORTB = ShiftLeft (PORTB, 1)If PORTB = %11000000 Then Goto derecha
Goto izquierda
derecha:
WaitUs 1 'esta demora debe ser mayor si no es una simulación
PORTB = ShiftRight (PORTB, 1)If PORTB = %00000011 Then Goto izquierda
Goto derecha
End
Ahora te toca a ti controlar, haz que los leds comiencen encendidos y que se apague uno por uno.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
Practica No.6 MANEJO DE ENTRADAS.
Objetivo: Que el alumno identifique y compruebe el funcionamiento dediferentes dispositivos electrónicos en algunas aplicaciones realesque podemos realizar, con transistores, relevadores, SCR, dispositivosque funcionan como interruptores electrónicos. Ademas de lasdiferentes formas de activar y desactivar las ENTRADAS del puerto RAdel microcontrolador.
PARTE 1:COMO USAR UN INTERRUPTOR (SWITCH).
Ahora, vamos a hacer que el microcontrolador controle el encendido de varios LEDS colocados en las 8 salidas, por medio de interruptores colocado en una de sus entradas:
Edita el siguiente programa:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
'Programa que por medio de switch se cambia de'la MODOS de desplegar las salidas, usando el reset (5 diferentes)
'AllDigital 'todos los puertos digitales
TRISB = 0 'configurar puerto B como salidasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero
inicio: 'etiqueta de inicio de programa
cual:If PORTA.0 = 1 Then Gosub MODO1If PORTA.1 = 1 Then Gosub MODO2If PORTA.2 = 1 Then Gosub MODO3If PORTA.3 = 1 Then Gosub MODO4If PORTA.4 = 1 Then Gosub MODO5HIGH PORTB.7Goto cual
MODO1: ‘INICIO DE MODO 1PORTB = %00000000High PORTB.0 'enciende pin 0 del puerto bWaitMs 300 'espera 3 segLow PORTB.0 'apaga el pin 0 del puerto b
WaitMs 300 'espera 3 segGosub botonGoto MODO1
MODO2: ‘INICIO DE MODO 2
PORTB = %00000000PORTB = %00000001
izquierda:
WaitMs 25 'esta demora debe ser mayor si no es una simulación!PORTB = ShiftLeft(PORTB, 1)
If PORTB = %10000000 Then Goto derechaGosub boton
Goto izquierda
derecha:
WaitMs 25 'esta demora debe ser mayor si no es una simulación!PORTB = ShiftRight(PORTB, 1)
If PORTB = %00000001 Then Goto izquierdaGosub boton
Goto derecha
MODO3: 'INICIO DE MODO 3PORTB = 0WaitMs 200 'espera 1 seg
High PORTB.0 'enciende pin 0 del puerto bWaitMs 200 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.1 'enciende pin 1 del puerto bWaitMs 200 'espera 1 segLow PORTB.1 'apaga el pin 1 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.2 'enciende pin 2 del puerto bWaitMs 200 'espera 1 segLow PORTB.2 'apaga el pin 2 del puerto bWaitMs 200 'espera 1 seg
Gosub boton
High PORTB.3 'enciende pin 3 del puerto bWaitMs 200 'espera 1 segLow PORTB.3 'apaga el pin 3 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.4 'enciende pin 4 del puerto bWaitMs 200 'espera 1 segLow PORTB.4 'apaga el pin 4 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.5 'enciende pin 5 del puerto bWaitMs 200 'espera 1 segLow PORTB.5 'apaga el pin 5 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.6 'enciende pin 6 del puerto bWaitMs 200 'espera 1 segLow PORTB.6 'apaga el pin 6 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.7 'enciende pin 7 del puerto bWaitMs 200 'espera 1 segLow PORTB.7 'apaga el pin 7 del puerto bWaitMs 200 'espera 1 segGosub boton
Goto MODO3 'regresa a la etiqueta MODO3
MODO4: 'INICIO DE MODO 4
Dim pin As ByteDim led As BytePORTB = 0WaitMs 200 'espera 1 seg
For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128led = LookUp(24, 60, 126, 255), pinPORTB = ledWaitMs 200 'espera 1 seg
Gosub botonNext pin
For pin = 0 To 7 Step 1led = LookUp(254, 252, 248, 240, 224, 192, 128, 0), pinPORTB = ledWaitMs 200 'espera 1 segGosub botonNext pin
PORTB = 0WaitMs 200 'espera 1 segGoto MODO4
MODO5: 'INICIO DESPLEGAR NUMEROS EN DISPLAY DE 7 SEGMENTOS
PORTB = %11111111
Dim cero As Bytecero = %11000000
Dim uno As Byteuno = %11111100
Dim dos As Bytedos = %10010010
Dim tres As Bytetres = %10011000
Dim cuatro As Bytecuatro = %10101100
Dim cinco As Bytecinco = %10001001
Dim seis As Byteseis = %10100001
Dim siete As Bytesiete = %11011100
Dim ocho As Byteocho = %10000000
Dim nueve As Bytenueve = %10001100
numeros:PORTB = ceroWaitMs 1000PORTB = unoWaitMs 1000
Gosub boton
PORTB = dosWaitMs 1000
Gosub botonPORTB = tresWaitMs 1000
Gosub botonPORTB = cuatroWaitMs 1000
Gosub botonPORTB = cincoWaitMs 1000
Gosub botonPORTB = seisWaitMs 1000
Gosub botonPORTB = sieteWaitMs 1000
Gosub botonPORTB = ochoWaitMs 1000
Gosub boton
PORTB = nueveWaitMs 1000
Gosub botonGoto numerosEnd
__________________________________________________ boton:
WaitMs 100If PORTA.0 = 1 Then Goto MODO1If PORTA.1 = 1 Then Goto MODO2If PORTA.2 = 1 Then Gosub MODO3If PORTA.3 = 1 Then Gosub MODO4If PORTA.4 = 1 Then Gosub MODO5Return
NOTA: ADEMAS DE CONECTAR LOS LEDS A LOS 8 PUERTOS, TENEMOS QUE CONECTAR UN DISPLAY DE 7 SEGMENTOS PARA FORMAR LOS NUMEROS DEL MODO 5,DE LA SIGUIENTE MANERA:
NOTA: SI EL DISPLAY DE 7 SEGMENTOS ES ANODO COMUN, COLOCALOS UNA RESISTENCIA DE
330 Ω A POSITIVO.
NOTA: RECUERDA QUE PARA ACCIONAR LOS INTERRUPTORES, HAY QUE OBTENER ELMICROCONTROLLER VIEW EN HERRAMIENTAS DEL SIMULADOR.
Que sucede en la barra de leds del simulador con cada modo de desplegar los leds?
MODO 1:
MODO 2:
MODO 3:
MODO 4:
MODO 5:
Que ocurre en la figura del microcontrolador del simulador?
Ahora te toca a ti controlar, haz que los leds enciendan en 2 modos diferentes alos anteriores, pero ahora al presionar 2 interruptores diferentes al mismo
tiempo.Realiza los cambios necesarios para que eso suceda, escribe aquí
el cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
¡NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
ANOTE SUS CONCLUSIONES:
PARTE 2:FOTOTRANSISTOR, FOTORESISTENCIA.
FOTOTRANSISTOR
Arme el siguiente circuito en el protoboard:
RECUERDA EL VOLTAJE DE TU RELAY PARA HACER EL CAMBIO DE VOLTAJE DE ENTRADA Y NO SE QUEME.
Acerca alguna haz de luz al fototransistor, que es lo que sucede?
Ahora te toca a ti controlar, acerca el LED del puerto B0 al fototransistor yacciona el interruptor de A0(del programa anterior), si no alcanza a encender el
circuito aumenta el tiempo en que este enciende, para logar activarlo alencender un led cerca del fototransistor usa un popote para alinear el haz de luz .
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
¡NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
Anote sus conclusiones:
FOTO RESISTENCIA
Arme el siguiente circuito en el protoboard:
RECUERDA EL VOLTAJE DE TU RELAY PARA HACER EL CAMBIO DE VOLTAJE DE ENTRADA Y NO SE QUEME.
Acerca alguna haz de luz a La fotorresistencia, que es lo que sucede?
Donde puede aplicar este circuito?
Ahora te toca a ti controlar, acerca el LED del puerto B7 al fotorresistencia yacciona el interruptor de A4(del programa anterior), si no alcanza a encender el
circuito aumenta el tiempo en que este enciende, para logar activarlo alencender un led cerca de la fotorresistencia cubre la fotorresistencia para que se
alinea el haz de luz .
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
¡NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
Anote sus conclusiones:
PARTE 3:SENSOR TACTIL.
Arma el siguiente circuito:
Que es lo que sucede alaccionar el switch?
Quita el switch y toca esoscables con tus dedos.Que sucede?
Donde puede aplicar estecircuito?
Anote sus conclusiones:
Ahora te toca a ti controlar, manda el punto donde está el emisor de salida delpuente Darlington a algún puerto de entrada del microcontrolador, para usarlocomo interruptor táctil y el zumbador o Buzer a alguna salida para que cuando
se active zumbe.
Realiza los cambios necesarios para que eso suceda, escribe aquí
5
el cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
¡NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
Anote sus conclusiones:
PARTE 4:SENSOR DE HUMEDAD.
Arme el siguiente circuito:
Este Circuito nos muestra como un transistor actúa como amplificador.
Por el agua circula una corriente muy pequeña, el transistor la amplifica (la hace más grande) y permite que podamos encender un LED.
Una vez realizado el montaje anterior, debe de introducir los dos hilos “A” y “B” en agua uno más abajo que otro.
¿Se Ilumina el LED?
¿Por qué?
Agrega un zumbador como se muestra.Introduce las puntas “A” y “B” en elagua.
Que sucede?
Donde puede aplicar este circuito?
Anote sus conclusiones:
Ahora te toca a ti controlar, manda el punto donde está el emisor de salida deltransistor a algún puerto de entrada del microcontrolador, para usarlo como
sensor de humedad y el zumbador o Buzer a alguna salida para que cuando sedetecte humedad zumbe.
¡NO LO DESARMES LO NESESITARAS EN LAS SIGUIENTES PARTES!
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
Anote sus conclusiones:
PARTE 5:ALARMA CONTRA INTRUSOS CON SCR
Arme el siguiente circuito:
Accione el interruptor de Activar alarma.
Que sucede?
En donde puede aplicar este circuito?
Anote sus conclusiones:
Ahora te toca a ti controlar, manda el punto donde está el interruptor de activaralarma, el de armar alarma a puertos de salida del microcontrolador y en las
entradas del microcontrolador coloca lo que quieres alarmar cuando se detecteesa entrada.
(Sensor táctil, de agua, de luz, etc.) Recuerda colocar también un interruptor paradesactivar la alarma por medio del microcontrolador.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard
Anote sus conclusiones:
Practica No.7
MANEJO DE DISPLAY DE 7 SEGMENTOS.Objetivo: Que el alumno compruebe el funcionamiento de los displayde 7 segmentos como visualizadores de aplicaciones.
PARTE 1:DESPLEGAR LOS NUMEROS 0-9 ASCENDENTE
Comenzaremos por definir nuestros display de 7 segmentos, En la siguiente figura se muestran los puertos de salida del microcontrolador a los que estarán relacionados:
Basándonos en la configuración anterior armaremos el siguiente circuito:
Edita, compila, simula y carga al microcontrolador, el siguiente programa:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.Recuerda cambiar los tiempos a microsegundos para verlo en el simulador.
'DESPLEGAR NUMEROS EN DISPLAY DE 7 SEGMENTOS‘EN FORMA ASCENDENTE DE 0-9.
AllDigital 'todos los puertos digitalesTRISB = 0 'configurar puerto B como salidasTRSA = 255 ‘configurar puerto A como entradasPORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en cero
Inicio: ‘etiqueta de inicio de programa
PORTB = %11111111 ‘hacemos que se apague el display de 7 segmentos
‘ con unos ya que es anodo comunDim cero As Byte
cero = %11000000Dim uno As Byte
uno = %11111100Dim dos As Byte
dos = %10010010Dim tres As Byte
tres = %10011000Dim cuatro As Byte
cuatro = %10101100Dim cinco As Byte
cinco = %10001001Dim seis As Byte
seis = %10100001Dim siete As Byte
siete = %11011100Dim ocho As Byte
ocho = %10000000Dim nueve As Byte
nueve = %10001100
numeros:PORTB = ceroWaitMs 1000PORTB = unoWaitMs 1000
Gosub boton
PORTB = dosWaitMs 1000
Gosub botonPORTB = tresWaitMs 1000
Gosub botonPORTB = cuatroWaitMs 1000
Gosub boton
PORTB = cincoWaitMs 1000
Gosub boton
PORTB = seisWaitMs 1000
Gosub botonPORTB = sieteWaitMs 1000
Gosub botonPORTB = ochoWaitMs 1000
Gosub botonPORTB = nueveWaitMs 1000
Gosub botonGoto numerosEnd
Que sucede en el display de 7 segmentos del simulador?
Ahora haz los cambios necesarios para pasar el programa al microcontrolador y poder verlo.
Donde puedes usar esta aplicación:
Anota tus conclusiones:
PARTE 2:DESPLEGAR LOS NUMEROS 0-9 DESCENDENTE
Ahora te toca a ti controlar, un display de 7 segmentos, haz que comience a contar de 9 a 0 y cuando llegue a cero, se vea algún efecto en los leds y se repita el proceso.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
PARTE 3:
DESPLEGAR LETRAS
Ahora te toca a ti controlar, un display de 7 segmentos, haz que se desplieguen LETRAS que se puedan formar en el display.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
Anota tus conclusiones, describe lo que hiciste y cómo funciona:
Practica No.8 MANEJO DE MATRIX DE LEDS 5x7.
Objetivo: Que el alumno compruebe el funcionamiento de una matrix deleds 5x7, observe su funcionamiento y practique configurando lassalidas del microcontrolador.
PARTE 1:DESPLAZAMIENTO POR COLUMNAS EN MATRIX 5x7 DE LEDS
En el siguiente diagrama se ve la configuración de la matrix 5x7 y a donde debe ir conectada:
Edita, compila, simula y carga al microcontrolador, el siguiente programa:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.Recuerda cambiar los tiempos a microsegundos para verlo en el simulador.
‘programa recorre la matrix por las 5 columnas AllDigitalTRISA = %00000000TRISB = %00000000PORTB = %00000000'__________________________________________
inicio:PORTA = 254 'columna 1PORTB = %00000001
vivorita:
WaitMs 100PORTB = ShiftLeft(PORTB, 1)If PORTB = %10000000 Then Goto botonaGoto vivorita
botona:PORTA = 253 'columna 2
derechaa:WaitMs 100PORTB = ShiftRight(PORTB, 1)If PORTB = %00000001 Then Goto botonbGoto derechaa
'________________________________________botonb:
PORTA = 251 'columna 3izquierdab:
WaitMs 100PORTB = ShiftLeft(PORTB, 1)If PORTB = %10000000 Then Goto botoncGoto izquierdab
'________________________________________botonc:
PORTA = 247 'columna 4derechac:
WaitMs 100PORTB = ShiftRight(PORTB, 1)If PORTB = %00000001 Then Goto botondGoto derechac
'__________________________________________botond:
PORTA = 239 'columna 5izquierdad:
WaitMs 100PORTB = ShiftLeft(PORTB, 1)If PORTB = %10000000 Then Goto llenoGoto izquierdad
'______________________________________________lleno:
PORTA = 0PORTB = 255WaitMs 100Goto inicio
End
PARTE 2:
DESPLAZAMIENTO POR FILAS EN MATRIX 5x7 DE LEDS.
Ahora nos moveremos por las filas de nuestra matrix 5x7.
Edita, compila, simula y carga al microcontrolador, el siguiente programa:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.Recuerda cambiar los tiempos a microsegundos para verlo en el simulador.
‘PROGRAMA QUE RECORRE LA MATRIX POR LAS 7 FILASAllDigitalTRISA = %00000000TRISB = %00000000PORTB = %00000000Dim numero As ByteDim col As Byte
Inicio:
fila1:PORTB = 1Gosub fwd
fila2:PORTB = 2Gosub rev
fila3:PORTB = 4Gosub fwd
fila4:PORTB = 8Gosub rev
fila5:PORTB = 16Gosub fwd
fila6:PORTB = 32Gosub rev
fila7:PORTB = 64Gosub fwd
Gosub llenoGoto inicioEnd
'________________________________________
lleno:PORTA = 0PORTB = 255WaitMs 500
Return'________________________________________
fwd:PORTA = 255WaitMs 100 'espera 1 segFor numero = 0 To 4 Step 1 'numero de columnascol = LookUp(254, 253, 251, 247, 239), numeroPORTA = colWaitMs 100 'espera 1 segNext numeroReturn
'________________________________________rev:
For numero = 0 To 4 Step 1 'numero de columnascol = LookUp(239, 247, 251, 253, 254), numeroPORTA = colWaitMs 100 'espera 1 segNext numeroReturn
Que sucede en la matrix de leds?
Donde podrías aplicar esta práctica?
Anota tus conclusiones:
PARTE 3:DESPLAZAMIENTO POR FILAS Y COLUMNAS
Ahora te toca a ti controlar, una matrix 5x7, haz que se recorran los leds por las filas y las columnas y terminas con algún efecto realizado en practica 5 y luego se repita el proceso.
Realiza los cambios necesarios para que eso suceda, escribe aquíel cambio que tuviste que hacer, escribiendo el nuevo programa. EDITALO, SIMULALO Y CARGALO AL PIC.
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.
Anota tus conclusiones:
Practica No.9 MANEJO DE DISPLAY.
Objetivo: Que el alumno compruebe el funcionamiento y aprenda aconectar un display de cristal líquido, al microcontrolador.
PARTE 1:EL DISPLAY DE CRISTAL LÍQUIDO (LCD)
En el siguiente diagrama se ve la configuración de pines de un displayde cristal líquido (LCD) y a donde ira conectada al microcontrolador:
Una vez conectado nuestro LCD, desplegaremos textos.
Edita, compila, simula y carga al microcontrolador, el siguiente programa:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.Recuerda cambiar los tiempos a microsegundos donde sea necesario para verlo en el
simulador.
'Programa que por medio de switches se cambia de'practica 1 a la 5 con display'DEFINICIÓN DE REGISTROS PARA EL LCDDefine LCD_DREG = PORTB 'Utilizar 4 bits del puerto B para tx dedatosDefine LCD_DBIT = 4 'Desde el Bit B.4 al Bit B.7Define LCD_RSREG = PORTB 'Selección del puerto del registroDefine LCD_RSBIT = 1 'En el bit B.1Define LCD_EREG = PORTB 'Utilizar el enable en el puerto BDefine LCD_EBIT = 2 'En el bit B.2Define LCD_INITMS = 1000 '2 'tiempo para iniciar en display
AllDigital 'todos los puertos digitalesTRISB = %00000000 'configurar puerto B como salidasTRISA = %11111111PORTB = %00000000 'aseguramos todo el puerto B en ceroPORTA = %00000000 'aseguramos todo el puerto A en ceroLcdinit 3 'INICIALIZA DISPLAY
inicio: 'etiqueta de inicio de programaGosub intro 'despliega introducccion en display
cual:If PORTA.0 = 1 Then Gosub practica1If PORTA.1 = 1 Then Gosub practica2If PORTA.2 = 1 Then Gosub practica3If PORTA.3 = 1 Then Gosub practica4If PORTA.4 = 1 Then Gosub practica5FreqOut PORTB.7, 2000, 10
Goto cual
practica1: 'INICIO DE PRACTICA 1'Pausa de inicio del LCD
WaitMs 500'--------------------------------------------------------
Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 1000Gosub segundaLcdout "PRACTICA 1" 'Escribir en la segunda línea
WaitMs 1000practica_uno:
PORTB = %00000000High PORTB.0 'enciende pin 0 del puerto b
WaitMs 300 'espera 3 segLow PORTB.0 'apaga el pin 0 del puerto bWaitMs 300 'espera 3 segGosub boton
Goto practica_uno
practica2: 'INICIO DE PRACTICA 2
'Pausa de inicio del LCDWaitMs 500'--------------------------------------------------------
Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 1000Gosub segundaLcdout "PRACTICA 2" 'Escribir en la segunda línea
WaitMs 500
practica_dos:PORTB = %00000000PORTB = %00000001
izquierda:WaitMs 25 'esta demora debe ser mayor si no es una simulación!PORTB = ShiftLeft(PORTB, 1)
If PORTB = %10000000 Then Goto derechaGosub boton
Goto izquierdaderecha:
WaitMs 25 'esta demora debe ser mayor si no es una simulación!PORTB = ShiftRight(PORTB, 1)
If PORTB = %00000001 Then Goto izquierdaGosub boton
Goto derecha
practica3: 'INICIO DE PRACTICA 3
Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 1000Gosub segundaLcdout "PRACTICA 3" 'Escribir en la segunda líneaWaitMs 500
practica_tres:
PORTB = 0WaitMs 200 'espera 1 seg
High PORTB.0 'enciende pin 0 del puerto bWaitMs 200 'espera 1 segLow PORTB.0 'apaga el pin 0 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.1 'enciende pin 1 del puerto bWaitMs 200 'espera 1 segLow PORTB.1 'apaga el pin 1 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.2 'enciende pin 2 del puerto bWaitMs 200 'espera 1 segLow PORTB.2 'apaga el pin 2 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.3 'enciende pin 3 del puerto bWaitMs 200 'espera 1 segLow PORTB.3 'apaga el pin 3 del puerto bWaitMs 200 'espera 1 segGosub boton
High PORTB.4 'enciende pin 4 del puerto bWaitMs 200 'espera 1 segLow PORTB.4 'apaga el pin 4 del puerto bWaitMs 200 'espera 1 segGosub boton
Goto practica_tres 'regresa a la etiqueta practica3
practica4: 'INICIO DE PRACTICA 4Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 500Gosub segundaLcdout "PRACTICA 4" 'Escribir en la segunda líneaWaitMs 500
practica_cuatro:Dim pin As ByteDim led As Byte
PORTB = 0WaitMs 200 'espera 1 seg
For pin = 0 To 3 Step 1 '1 2 4 8 16 32 64 128led = LookUp(24, 60, 126, 255), pinPORTB = ledWaitMs 200 'espera 1 segGosub botonNext pin
For pin = 0 To 7 Step 1led = LookUp(254, 252, 248, 240, 224, 192, 128, 0), pinPORTB = ledWaitMs 200 'espera 1 segGosub botonNext pin
PORTB = 0WaitMs 200 'espera 1 segGoto practica_cuatro
practica5: 'INICIO DE PRACTICA 5
Gosub borrar_displayGosub primeraLcdout "MECATRONICA" 'Escribir en la primera líneaWaitMs 500Gosub segundaLcdout "PRACTICA 5" 'Escribir en la segunda línea
WaitMs 500
practica_cinco:PORTB = %11111111
Dim cero As Bytecero = %11000000
Dim uno As Byteuno = %11111100
Dim dos As Bytedos = %10010010
Dim tres As Bytetres = %10011000
Dim cuatro As Bytecuatro = %10101100
Dim cinco As Bytecinco = %10001001
Dim seis As Byteseis = %10100001
Dim siete As Bytesiete = %11011100
Dim ocho As Byteocho = %10000000
Dim nueve As Bytenueve = %10001100
numeros:PORTB = ceroWaitMs 1000PORTB = unoWaitMs 1000
Gosub botonPORTB = dosWaitMs 1000
Gosub botonPORTB = tresWaitMs 1000
Gosub botonPORTB = cuatroWaitMs 1000
Gosub botonPORTB = cincoWaitMs 1000
Gosub botonPORTB = seisWaitMs 1000
Gosub boton
PORTB = sieteWaitMs 1000
Gosub botonPORTB = ochoWaitMs 1000
Gosub botonPORTB = nueveWaitMs 1000
Gosub botonGoto numeros
End
‘_________________________________________borrar_display: ‘BORRAR DISPLAY
Lcdcmdout LcdClear 'Limpiar LCDWaitMs 500Return
‘_________________________________________primera:
Lcdcmdout LcdHome 'CURSOR EN LA PRIMER LINEA
WaitMs 500Return
‘______________________________________________segunda:
Lcdcmdout LcdLine2Home 'CURSOR SEGUNDA LINEAWaitMs 500Return
‘_______________________________________________intro: ‘DESPLEGAR TEXTOS 'Pausa de inicio del LCDWaitMs 500
Gosub borrar_displayGosub primera
Lcdout "CECYTE ZONA RIO" 'Escribir en la primera líneaWaitMs 500Gosub segunda
Lcdout "MECATRONICA" 'Escribir en la segunda líneaWaitMs 1000Gosub borrar_displayGosub primeraLcdout "PRACTICA?" 'Escribir en la primera líneaWaitMs 500Return
boton: ‘subrutina que detecta botones presionadosIf PORTA.0 = 1 Then Goto practica1If PORTA.1 = 1 Then Goto practica2If PORTA.2 = 1 Then Gosub practica3If PORTA.3 = 1 Then Gosub practica4If PORTA.4 = 1 Then Gosub practica5Return
PARTE 2:RECORRER TEXTOS
Edita, compila, simula y carga al microcontrolador, el siguiente programa:
Nota: cada programa debe ser trabajado en el simulador y en el protoboard.Recuerda cambiar los tiempos a microsegundos para verlo en el simulador.
TABLA DE CONVERSION DE NUMEROS ENTRE SISTEMAS NUMERICOS
DECIMAL BINARIO OCTAL HEXADECIMAL0123456789101112131415
00000000000000010000001000000011000001000000010100000110000001110000100000001001000010100000101100001100000011010000111000001111
000001002003004005006007010011012013014015016017
0123456789ABCDEF
CODIGO DE COLORES PARA RESISTENCIAS