MENÚ DE CONTROL MEDIANTE UN PULSADOR
Práctica No. 1
INSTITUTO TECNOLÓGICO SUPERIOR DE IRAPUATO
INGENIERÍA EN MECATRÓNICA
INTERFACES
1. Objetivo
Realizar un menú de control mediante un pulsador, deberá mostrar un menú de 3 funciones, mediante el pulsador se
deberá seleccionar uno de los 3 elementos y con otro ejecutar una función (encender un led).
2. Desarrollo
Material:
· PIC16F876
· LM016L
· BUTTON
Para realizar el menú, se utilizara un LCD, el cual mostrara las 3 funciones que se tendrán dentro de este y a su vez se
visualizara el cambio con ayuda de un led para cada opción (utilizar led de diferente color). Mediante el botón de menú
se posicionara en la opción a entrar, una vez que ya se tiene a donde se va a ingresar, se seleccionara mediante el otro
botón haciendo que el led empiece a parpadear. Para entrar en otra opción, se deshabilitara el botón de selección y
se volverá a manipular para la nueva función mediante el botón de menú. El código a emplear en el microcontroladores
se describe a continuación:
#include <16F876.h> break;
#fuses XT,NOWDT case cal: case 0:
#use delay(clock=4M) calibrar(); lcd_gotoxy(1,1);
#include <lcd.c> break; printf(lcd_putc, "MEDIR");
#use standard_io(C) case ini: lcd_gotoxy(1,1);
#use standard_io(A) inicializar(); break;
enum funciones {med,cal,ini}; break;
} case 1:
void medir(void){ } printf(lcd_putc, "CALIBRAR");
output_toggle(pin_C0); lcd_gotoxy(1,1);
} void main() { break;
char item;
void calibrar(void){ char n_menus = 3; case 2:
output_toggle(pin_C1); lcd_init(); printf(lcd_putc,
} "INICIALIZAR");
while (1){ lcd_gotoxy(1,1);
void inicializar(void){ if (input(PIN_A0) == 1){ break;
output_toggle(pin_C2); item++; }
} delay_ms(300);
lcd_putc('\f');} if (input(PIN_A1) == 1)
void run_func(int numfunc){ if (item > (n_menus-1)){ {delay_ms(200);
switch(numfunc) { item = 0;} run_func(item);}
case med: }
medir(); switch (item){ }
M. I. JULIO CESAR MEDINA FLORES 1
Para realizar la simulación se empleara el programa Proteus realizando la conexión como se muestra en la siguiente
imagen:
Figura 1. Esquema del sistema
Una vez concluido el esquema y cargado el programa, se iniciara la simulación y se podrá visualizar su funcionamiento
en base de la pantalla LCD.
3. Resultados
4. Conclusiones
5. Bibliografías
M. I. JULIO CESAR MEDINA FLORES 2
ENVÍO DE DATOS MEDIANTE TECLADO MATRICIAL
Práctica No. 2
INSTITUTO TECNOLÓGICO SUPERIOR DE IRAPUATO
INGENIERÍA EN MECATRÓNICA
INTERFACES
1. Objetivo
Introducir datos mediante un teclado matricial y visualizarlo en una pantalla LCD, mediante la tecla “*” se borraran los
datos.
2. Desarrollo
Material:
· PIC16F876
· LM016L
· KEYPAD-PHONE
Para realizar la operación se deberá poder enviar elementos a través del teclado matricial (teniendo en cuenta que al
archivo KBD.C está pensado para trabajar con el PORTB o el PORTD) hacia el LCD, el botón “*” se utilizara para borrar
lo que se introduzca en la pantalla. El código a emplear en el microcontroladores se describe a continuación:
Código PIC:
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4M)
#define use_portb_kbd TRUE
#define use_portd_lcd TRUE
#include <lcd.c>
#include <kbd.c>
void main(){
char k;
int x;
lcd_init();
kbd_init();
port_b_pullups(TRUE);
lcd_putc("\fListo...\n");
while (TRUE){
k=kbd_getc();
x=k-48;
if(k!=0){
if(k=='*')
lcd_putc('\f');
else
lcd_putc(k);
delay_ms(500);
}
}
}
M. I. JULIO CESAR MEDINA FLORES 1
Para realizar la simulación se empleara el programa Proteus realizando la conexión como se muestra en la siguiente
imagen:
Figura 1. Esquema del sistema
Una vez concluido el esquema y cargado el programa, se iniciara la simulación y se podrá visualizar su funcionamiento
en base de la pantalla LCD.
3. Resultados
4. Conclusiones
5. Bibliografías
M. I. JULIO CESAR MEDINA FLORES 2
SISTEMA BÁSICO DE CONTROL DE ACCESO
Práctica No. 3
INSTITUTO TECNOLÓGICO SUPERIOR DE IRAPUATO
INGENIERÍA EN MECATRÓNICA
INTERFACES
1. Objetivo
Diseñar un sistema para controlar el acceso a través de un teclado matricial.
2. Desarrollo
Material:
· PIC16F876
· LM016L
· KEYPAD-PHONE
· CELL
· RELAY (12v)
· RES (1K)
· BD135 (TRANSISTOR)
Para realizar el sistema de control, se necesitara introducir una clave de 3 dígitos mediante el teclado, cuando sea
correcta, abra una puerta (arreglo del relevador) y esto se indique en la LCD (Puerta Abierta), de lo contrario, si la clave
de acceso fuera errónea, también indique en la LCD esto (Puerta Cerrada). La simulación de la puerta se llevara a cabo
mediante el arreglo de un transistor (NPN) y un relevador. El código a emplear en el microcontrolador se describe a
continuación:
#include <16F876.h> k=kbd_getc();
#fuses XT,NOWDT,NOPROTECT,NOLVP if(k!=0){
#use delay(clock=4M) data[i]=k;
#define use_portb_kbd TRUE i++;
#use standard_io(a) printf(lcd_putc,"\fpulsar tecla %u\n",i+1);
}
#include <lcd.c> }
#include <kbd.c> for(i=0;i<=2;i++){
#include <stdlib.h> clave[i]=read_eeprom(i);
#rom 0x2100={'7','2','3'} }
if
void main(){ ((data[0]==clave[0])&&(data[1]==clave[1])&&(data[2]==
char k; clave[2])){
int i; printf(lcd_putc,"\fPuerta Abierta");
char data[3], clave[3]; output_high(PIN_A0);
lcd_init(); delay_ms(500);
kbd_init(); output_low(PIN_A0);
port_b_pullups(TRUE); }
while(TRUE){ else printf(lcd_putc,"\fPuerta Cerrada");
i=0; delay_ms(1000);
printf(lcd_putc,"\fpulsar tecla 1\n"); }
while(i<=2){ }
M. I. JULIO CESAR MEDINA FLORES 1
Para realizar la simulación se empleara el programa Proteus realizando la conexión como se muestra en la siguiente
imagen:
Figura 1. Esquema del sistema
Una vez concluido el esquema y cargado el programa, se iniciara la simulación y se podrá visualizar su funcionamiento
en base de la pantalla LCD.
3. Resultados
4. Conclusiones
5. Bibliografías
M. I. JULIO CESAR MEDINA FLORES 2
CONTROL DE MOTOR MEDIANTE TECLADO
Proyecto 1
INSTITUTO TECNOLÓGICO SUPERIOR DE IRAPUATO
INGENIERÍA EN MECATRÓNICA
INTERFACES
1. Objetivo
Diseñar un sistema de control para acelerar un motor a través de datos enviados mediante un teclado matricial.
2. Desarrollo
Material:
· PIC16F876
· LM016L
· KEYPAD-PHONE
· CELL
· MOTOR
· RES 10K
· 2SK1058 (MOSFET)
Para realizar el control, se introducirán datos a través del teclado, los cuales pondrán en movimiento al motor (0 =
STOP, 9 = MÁXIMO), además generara una señal modulada en ancho de pulso que proporcionará los datos de la
velocidad a la que girara dicho motor, cabe mencionar que el arreglo del PWM se realizara de manera manual, sin
utilizar el modulo del Microcontrolador. Para el funcionamiento adecuado del motor se utilizara un transistor (MOSFET)
para poder manejar el voltaje de salida del microcontrolador y el voltaje que necesitara el motor para su buen
funcionamiento. El código a emplear en el microcontrolador se describe a continuación:
#include <16f876.h> k=kbd_getc();
#fuses XT,NOWDT,NOPROTECT,NOLVP if (k=='\0') k=kant;
#define use_portb_kbd TRUE
#USE DELAY (CLOCK=4M) if ((k=='*') || (k=='#')) k='0';
#INCLUDE <kbd.c> kant=k;
#USE STANDARD_IO (a) k=k-48;
PWMH=k*28;
VOID MAIN() PWML=255-PWMH;
{ for (PWMH;PWMH>0;PWMH--)
char k, kant='0'; {OUTPUT_HIGH(PIN_A0);}
char PWMH=0,PWML=0; for (PWML;PWML>0;PWML--)
kbd_init(); {OUTPUT_LOW(PIN_A0);}
PORT_B_PULLUPS(TRUE); }
}
while (1){
M. I. JULIO CESAR MEDINA FLORES 1
Para realizar la simulación se empleara el programa Proteus realizando la conexión como se muestra en la siguiente
imagen:
Figura 1. Esquema del sistema
Una vez concluido el esquema y cargado el programa, se iniciara la simulación y se podrá visualizar su funcionamiento
en base de la pantalla LCD.
3. Resultados
4. Conclusiones
5. Bibliografías
M. I. JULIO CESAR MEDINA FLORES 2