Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MICROCONTROLADORES
PIC
LENGUAJE C
QUITO: 2614586 0999942422
MICROCONTROLADOR
ES UN CIRCUITO INTEGRADO EN
CUYO INTERIOR POSEE TODA LA
ESTRUCTURA DE UN
COMPUTADOR.
PROCESADOR
MEMORIAS
PUERTOS DE ENTRADA Y SALIDA
MICROCONTROLADOR
PIC MICROCHIP
SOPORTAN 100.000 CICLOS DE
ESCRITURA Y BORRADO EN SU
MEMORIA FLASH.
1000.000 EN SU MEMORIA
EEPROM
TIEMPO DE RETENCION DE 100
AOS
PIC 16F628A
MEMORIA FLASH 2K
18 PINES
DOS PUERTOS A,B
COMPARADORES ANALOGOS
VELOCIDAD DE OPERACIN 20
MHZ
OSC INTERNO 4 MHZ
COMUNICACIN SERIAL
CANALES PWM
PIC 16F628A
PIC 16F870
MEMORIA FLASH 2K
28 PINES
TRES PUERTOS A,B,C
5 CONVERSORES A/D
VELOCIDAD DE OPERACIN 20 MHZ
CANALES PWM
COMUNICACIN SERIAL
PIC16F870
PIC16F877A
40 PINES
MEMORIA FLASH DE 8K
EEPROM 256 BYTES
33 PINES I/O
PUERTOS A,B,C,D,E
CONVERSOR ANALOGO DIGITAL
MULTICANAL DE 10 BIT
USART COMUNICACIN SERIAL
VELOCIDAD DE OPERACIN HASTA
20MHZ CON OSCILADOR EXTERNO
PIC 16F877A
PIC12F675
8 PINES
MEMORIA FLASH 1K
MEMORIA EEPROM 128 BYTES
1 PUERTO GPIO
6 PINES I/O
4 CONVERSORES A/D 10 BITS
OSCILADOR INTERNO DE 4 MHZ
VELOCIDAD DE OPERACIN
HASTA 20 MHZ
12F675
CONSIDERACIONES
BASICAS
COMPILADOR C
ESTRUCTURA DE UN
PROGRAMA EN C
DIRECTIVAS DE PREPROCESADO:
Controlan la conversin del
programa a cdigo mquina por
parte del compilador.
PROGRAMAS O FUNCIONES:
Conjunto de instrucciones. Puede
haber uno o varios; en cualquier
caso siempre debe haber uno
definido como principal mediante
la inclusin de la llamada main().
ESTRUCTURA DE UN
PROGRAMA EN C
TIPOS DE DATOS
TIPO
TAMAO
RANGO
DESCRIPCION
Int1
Short
1 bit
01
Entero de 1 bit
Int
Int8
8 bits
0 a 255
Entero
Int16
Long
16 bits
0 a 65535
Entero de 16 bits
Int32
32 bits
0 a 4294967295
Entero de 32 bits
Float
32 bits
+-1175x1038 a 3402x10-38
Punto Flotante
Char
8 bit
0 a 255
Caracter
Void
Sin valor
Signed
Int8
8 bits
-128 a +128
Signed
Int16
16 bits
-32768 a +32768
Signed
Int32
32 bits
-231 a +(231-1)
VARIABLES
VARIABLES
TIPO NOMBRE_VARIABLE[=VALOR
INICIAL]
EJEMPLO:
Float tdato=200.2;
Int8 val=120;
Las variables en un programa pueden ser
de tipo LOCAL o GLOBAL. Las variables
locales slo se utilizan en la funcin donde
se encuentran declaradas; las variables
globales se pueden utilizar en todas las
funciones del programa.
FUNCIONES
FUNCIONES
Declaraciones de control
If - else
While
Do-While
For
Switch-Case
Return
Break, Continue y goto
PROYECTO1
PARPADEO DE UN LED
PROYECTO1
PARPADEO DE UN LED
CODIGO PIC C
#include <16f877a.h>
#fuses HS,NOWDT
#use delay (clock=8000000)
#use fast_io(B)// inicializa el puerto B
void main(){
set_tris_B(0);//declaro puerto B como salida
Output_B(0);//encero el puerto
while(1){ //ciclo de repeticion infita
output_high(pin_b0);
delay_ms(1000);
output_low(pin_b0);
delay_ms(1000);
}
}
PROYECTO 2
SEMAFORO
PROYECTO 2
SEMAFORO
CODIGO PIC C
#include <16f877a.h>
#fuses HS,NOWDT
#use delay (clock=8000000)
#use fast_io(B)// inicializa el puerto B
void main(){
set_tris_B(0);//declaro puerto B como salida
Output_B(0);//encero el puerto
while(1){ //ciclo de repeticion infita
output_high(pin_b2);
delay_ms(10000);
output_low(pin_b2);
output_high(pin_b1);
delay_ms(4000);
output_low(pin_b1);
output_high(pin_b0);
delay_ms(10000);
output_low(pin_b0);
delay_ms(10000);
}
}
PROYECTO 3
SEMAFORO PEATONAL
PROYECTO 3
SEMAFORO PEATONAL
CODIGO PIC C
#include <16f877a.h>
#fuses HS,NOWDT
#use delay (clock=8000000)
#use fast_io(B)// inicializa el puerto B
#use fast_io(C)
void main(){
set_tris_B(0);//declaro puerto B como salida
Output_B(0);//encero el puerto
set_tris_C(0);//declaro puerto B como salida
Output_C(0);//encero el puerto
while(1){ //ciclo de repeticion infita
output_B(0b00000100);
output_C(0b00000001);
delay_ms(10000);
output_B(0b00000010);
delay_ms(5000);
output_B(0b00000001);
output_C(0b00000010);
delay_ms(10000);
}
}
PULSADORES
PROYECTO 4
LECTURA DE UN PULSADOR
PROYECTO 4
LECTURA DE UN PULSADOR
CODIGO PIC C
#include <16f877a.h>
#fuses HS,NOWDT
#use delay (clock=8000000)
#use fast_io(B)
#use fast_io(D) void main(){
set_tris_D(255);
set_tris_B(0);
Output_B(0);
while(1){
if (input(PIN_D0)==0){
output_high(Pin_B0);
}
else{
output_low(Pin_B0);
}}}
PROYECTO 5
PROYECTO 5
El display de 7 segmentos o
visualizador de 7 segmentos es un
componente que se utiliza para la
representacin de nmeros en
muchos dispositivos electrnicos
debido en gran medida a su
simplicidad
PROYECTO 6
DECODIFICADOR 74LS47
EL C.I. 74LS47 ES UN DECODIFICADOR DE BINARIO A
7SEGMENTOS ANODO COMUN.
SE INGRESA UN NUMERO BINARIO DE 4 BITS POR LAS
ENTRADAS A,B,C,D Y ESTE ENCIENDE LOS LEDS NECESARIOS
PARA VISUALIZAR CORRECTAMENTE EL NUMERO EN EL
DISPLAY.
PROYECTO 7
PROYECTO 7
TRANSISTORES
LOS TRANSISTORES PUEDEN FUNCIONAR COMO
AMPLIFICADORES O EN CORTE Y SATURACION SEGN LA
CONFIGURACION QUE SE DISEE EL CIRCUITO.
PNP
NPN
PROYECTO 8
MOTOR DC
EL MOTOR DE CORRIENTE CONTINUA CONVIERTE LA ENERGIA
ELECTRICA EN MECANICA, PRODUCIENDO UN MOVIENTO.
SE PUEDE CONTROLAR TANTO LA VELOCIDAD COMO EL
SENTIDO DEL GIRO.
PWM
LA MODULACION DE ANCHO DE PULSO PWM, ES UNA TECNICA
EN LA QUE SE MODIFICA EL CICLO DE TRABAJO DE UNA SEAL
PERIODICA PARA CONTROLAR LA CANTIDAD DE ENERGIA QUE
SE ENVIA A UNA CARGA.
PROYECTO 9
PUENTE H
EL CIRCUITO PUENTE H PERMITE LA POLARIZACION DE UN
MOTOR DE TALMANERA QUE PUEDA GIRAR TANTO EN SENTIDO
HORARIO Y COMO EN SENTIDO ANTIHORARIO
PROYECTO 10
MOTOR PASO A
PASO
El motor paso a paso est concebido de tal manera que gira un
determinado ngulo proporcional a la "codificacin" de tensiones
aplicadas a sus entradas . La posibilidad de controlar en todo momento
esta codificacin permite realizar desplazamientos angulares lo
suficientemente precisos, dependiendo el ngulo de paso (o resolucin
angular) del tipo de motor (puede ser tan pequeo como 1,80 hasta
unos 15).
PROYECTO 11
SERVOMOTOR
1500
us
2500
us
500
us
HITEC
500us
20msus
PROYECTO 12
LCD 2X16
UN DISPLAY DE CRISTAL LIQUIDO, ES UN DISPOSITIVO QUE NOS
PERMITE MOSTRAR INFORMACION ALFANUMERICA O CARACTERS
DISEADOS.
PROYECTO 13
PROYECTO 13
KEYPAD
EL TECLADO 4X4 O 4X3 ES UNA MATRIZ DE PULSADORES EL CUAL
NOS PERMITE CONTROLAR VARIOS PULSADORES CON POCOS
PINES.
PROYECTO 14
PROYECTO 14
CONVERSOR AD
EL CONVERSOR ANALOGO DIGITAL PERMITE EL MUESTREO DE
SEALES ANALOGICAS Y EL PROCESAMIENTO DIGITAL EN EL
MICROCONTROLADOR. LOS MICROCONTROLADORES PIC TIENEN
CONVERSORES AD MULTICANALES DE 10 BITS.
SENSORES
ANALOGOS
PIC
EL REGISTRO
ADCON1 CONFIGURA EL
PUERTO A COMO A/D
SEALES
ANALOGAS
0V A 5V
0 A 1024
PROYECTO 15
PROYECTO 15
void main(){
int16 dato=0;
setup_adc_ports(AN0);
setup_adc(adc_clock_internal);
lcd_init();
while(1){
dato=read_adc();
printf(lcd_putc,"\f ADC= %4lu",dato);
4espacios,lu entero largo sin signo
delay_ms(300);
}
}
//\flimpia pantalla,%4
LM35
ES UN SENSOR DE TEMPERATURA ANALOGICO, VARIA 10mV POR
CADA GRADO CENTIGRADO ES DECIR SI SE ENCUENTRA A
TEMPERATURA AMBIENTE 20 GRADOS EN SU PIN DE SALIDA SE
OBTIENE 200mV
PROYECTO 16
PROYECTO 16
SENSOR DE DISTANCIA
El sensor GP2Y0A21 es un sensor infrarrojo anlogo capaz de medir
la distancia dentro de un rango de 10cm a 80cm, se utiliza
comnmente en robots para la deteccin de objetos y obstculos.
SENSOR DE DISTANCIA
PROYECTO 17
PROYECTO 17
COMUNICACIN SERIAL
PERMITE EL ENVIO RECEPCION DE DATOS ENTRE DISPOSITIVOS
QUE SOPORTAN ESTE TIPO DE COMUNICACIN.
PROYECTO 18
PROYECTO 18
PROYECTO 19
PROYECTO 19
#include <16F877A.h>
#fuses hs,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=8000000)
#use rs232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8)
#include <lcd.c>
void main(){
char tecla;
lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"RXD:");
while(1){
tecla=getchar();
printf(lcd_putc,"%c",tecla);
Delay_ms(100);
}
COMUNICACIN INALAMBRICA
POR BLUETOOTH
Bluetooth es una especificacin industrial para Redes
Inalmbricas de rea Personal (WPAN) que posibilita la
transmisin de voz y datos entre diferentes dispositivos mediante
un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Los
principales objetivos que se pretenden conseguir con esta norma
son:
Facilitar las comunicaciones entre equipos mviles y fijos.
Eliminar los cables y conectores entre stos.
Ofrecer la posibilidad de crear pequeas redes inalmbricas y
facilitar la sincronizacin de datos entre equipos personales.
COMUNICACIN INALAMBRICA
POR BLUETOOTH
1. REALIZAR COMUNICACIN SERIAL PARA ENVIO DE DATOS
CONFIGURACION 8,N,1,9600
2. EMPAREJAR DISPOSITIVOS CLAVE 1234
3. HABILITAR SERVICIO DE PUERTO SERIE, IDENTIFICAR EN CUAL
PUERTO COM SE HA CONECTADO EL MODULO BLUETOOTH
PROYECTO 20
PROYECTO 20
CODIGO PICC
#include <16F877A.h>
#fuses hs,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=8000000)
#use rs232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8)
#include <lcd.c>
#use fast_io(B)
void main(){
char dato;
set_tris_B(0);
output_b(0);
lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"RXD:");
while(1){
dato=getchar();
printf(lcd_putc,"%c",dato);
printf("\fDATO RECIBIDO:%c",dato);
IF(dato==65)output_high(pin_b6);
IF(dato==66)output_low(pin_b6);
IF(dato==67)output_high(pin_b7);
IF(dato==68)output_low(pin_b7);
}}
MODULO GSM
GLOBAL SYSTEM FOR MOBILE COMMUNICATION, SE DISEO PARA
CUBRIR UNA GRAN VARIEDAD DE SERVICIOS QUE INCLUYEN
TRANSMICION DE VOZ, DATOS, SERVICIOS DE MANEJO DE MENSAJES
ENTRE EQUIPOS MOBILES SMS.
MEDIANTE SMS SE PUEDE TRANSMITIR TEXTOS O DATOS ENTRE DOS
MOVILES.
ES IMPORTANTE
REALIZAR EL
CONECIONADO DEL
CONVERSOR TTL RS232 Y CONFIGURAR
LA VELOCIDAD DE
TRANSMICION A
115200 BAUD
DEPENDIENDO DEL
MODELO DEL MODEM
CELULAR QUE SE
UTILICE
MODULO GSM
PARA LA COMUNICACIN ENTRE EL MODEM Y EL MICROCONTROLADOR SE
UTILIZA LA COMUNICACIN SERIAL MEDIANTE EL ENVIO DE COMANDOS AT.
COMANDOS AT PRINCIPALES
AT+CMGF=1
CONFIGURO AL MODEM EN MODO TEXTO
AT+CMGS=0999942422
NUMERO AL CUAL SE VA ENVIAR SMS
ATD0999942422;
REALIZA UNA LLAMADA AL NUM INDICADO
ATH;
CUELGA LA LLAMADA
AT+CSQ
DEVUELVE LA CALIDAD O NIVEL DE LA SEAL
AT+CMGL=REC UNREAD OBTIENE LISTADO DE MSJ RECIBIDOS
AT+CMGL=REC READ
OBTIENE LISTADO DE MSJ LEIDOS
AT+CMGL=ALL
DESPLIEGA TODOS LOS MENSAJES
PROYECTO 21
XBEE
XBEE
Zigbee permite que dispositivos electrnicos de bajo consumo puedan realizar sus
comunicaciones inalmbricas. Es especialmente til para redes de sensores en
entornos
industriales, mdicos y, sobre todo, domticos.
Las comunicaciones Zigbee se realizan en la banda libre de 2.4GHz.
El uso del protocolo Zigbee va desde reemplazar un cable por una comunicacin
serial
inalmbrica, hasta el desarrollo de configuraciones punto a punto, multipunto,
peer-to-peer (todos los nodos conectados entre s) o redes complejas de sensores.
Una conexin tpica se muestra abajo, donde se observa que cada mdulo Xbee
posee algn tipo de sensor, el cual entrega los datos para ser enviados a travs de
la red a un Centro que administre la informacin.
XBEE
CONECCIONES BASICAS Y PUERTOS
RECUERDE QUE LOS MODULOS XBEE TRABAJAN SOLO CON 3V,
DE IGUAL MANERA SUS PINER DE ENTRADA Y SALIDA SOLO
SOPORTAN 3V
XBEE
CABLE VIRTUAL
Por ejemplo, una entrada digital DI5, sale por una salida
digital DO5 y una entrada analgica ADC 0, sale por una salida analgica
XBEE
CABLE VIRTUAL
XBEE
CABLE VIRTUAL
XBEE
CABLE VIRTUAL
PARAMETROS A SER CONFIGURADOS, UNA VEZ QUE LEEMOS NUESTRO XBEE,
NECESITAMOS CONFIGURAR LOS PARAMETROS DE NUESTRA RED O CABLE
VIRTUAL.
XBEE TRANSMISOR
PRIMERO SE CONFIGURA PARAMETROS DE RED Y SEGURIDAD EN NETWORK Y
SECURITY
PAN ID :3332
ESTE PARAMETRO CONFIGURA EL NUMERO DE
IDENTIFICACION DE
NUESTRA RED.
DL:CCCC
DIRECCION DE DESTINO
MY:DDDD
DIRECCION DE ENVIO
LUEGO SE CONFIGURA LOS PINES COMO ENTRADA O SALIDA EN
SETTINGS
DO:3
CONFIGURAMOS PIN DI0 COMO ENTRADA
IR:3E8
CONFIGURAMOS TIEMPO DE MUESTREO EN
HEXADECIMAL ms
I/O
XBEE
CABLE VIRTUAL
PARAMETROS A SER CONFIGURADOS, UNA VEZ QUE LEEMOS NUESTRO XBEE,
NECESITAMOS CONFIGURAR LOS PARAMETROS DE NUESTRA RED O CABLE
VIRTUAL.
XBEE TRANSMISOR
XBEE
CABLE VIRTUAL
PARAMETROS A SER CONFIGURADOS, UNA VEZ QUE LEEMOS NUESTRO XBEE,
NECESITAMOS CONFIGURAR LOS PARAMETROS DE NUESTRA RED O CABLE
VIRTUAL.
XBEE RECEPTOR
PRIMERO SE CONFIGURA PARAMETROS DE RED Y SEGURIDAD EN NETWORK Y
SECURITY
PAN ID :3332
ESTE PARAMETRO CONFIGURA EL NUMERO DE
IDENTIFICACION DE
NUESTRA RED.
DL:DDDD
DIRECCION DE DESTINO
MY:CCCC
DIRECCION DE ENVIO
LUEGO SE CONFIGURA LOS PINES COMO ENTRADA O SALIDA EN
SETTINGS
DO:4
CONFIGURAMOS PIN DI0 COMO SALIDA LOW
I/O
XBEE
CABLE VIRTUAL
PARAMETROS A SER CONFIGURADOS, UNA VEZ QUE LEEMOS NUESTRO XBEE,
NECESITAMOS CONFIGURAR LOS PARAMETROS DE NUESTRA RED O CABLE
VIRTUAL.
XBEE RECEPTOR
XBEE
CABLE VIRTUAL
XBEE TRANSMISOR
PAN ID :3332
DL:CCCC
MY:DDDD
DO:3
IR:3E8
IA:CCCC
XBEE RECEPTOR
PAN ID :3332
DL:DDDD
MY:CCCC
DO:4
IA:DDDD
XBEE
ENVIO Y RECEPCION DE DATOS INALAMBRICOS POR XBEE
XBEE TRANSMISOR
PAN ID :3332
DL:CCCC
MY:DDDD
XBEE RECEPTOR
PAN ID :3332
DL:DDDD
MY:CCCC