jueves, 29 de noviembre de 2012
La velocidad de un motor de corriente continua depende del valor medio de la tensión aplicada en sus extremos.
el sistema mas utilizado para controlar la velocidad de un motor DC es mediante la modulación por ancho de pulso PWM de una señal cuadrada TTL, bajo el control PWM el motor gira a una velocidad determinada por la media del nivel de la señal cuadrada.
La tensión continua media presentada al motor se controla manteniendo la frecuencia constante y variando el tiempo que la señal permanece en alto, es decir variando el ciclo de trabajo.
La regulación por PWM proporciona una eficaz método mediante la utilizacion de una simple señal digital de control.
Circuito.
MATERIAL:
1- 555.
1- Capacitor cerámico 100n.
1- Resistor 470.
1- Resistor 10k.
1- Resistor 10k.
1- Potenciometro de 1.
1- TIP 31.
1- 2N3055.
1- Motor.
1- Diodo 1N1346BR.
Sugerencias: en pruebas físicas varía mejor el pot de 1k que el de 100k pero prueben como quiere que varié su velocidad asiendo pruebas con distintos pot, se puede comprar el darlington ya en un encapsulado, y se probo circuito con un motor de 24v a 3A, se puede usar un diodo 1N4001 pero dependera de la corriente suministrada.
VIDEO DE LA SIMULACION:
Diseño PCB:
DESCARGAR SIMULACION Y PCB:
REFERENCIA:
- Microcontrolador 16f84a desarrollo de proyectos, p.p.475.
Etiquetas:
descargas,
practicas simuladas,
proyectos
|
11
comentarios
sábado, 27 de octubre de 2012
MATERIAL:
2- Resistores de 10k.1- Resistor de 1k.
2- Pushbutton.
1- Led.
1- 7400.
La compuerta NAND se construye para dos entradas A y B , la operación NAND se denota por A'*B'. en términos de la lógica, la compuerta NAND equivale a una compuerta AND seguida por una NOT.
Para construir un retenedor SR las compuertas se acoplan de manera cruzada para obtener la retroalimentación necesaria para formar una red biestable. el retenedor se activa haciendo Q=1 cuando S va de 1 a 0. la función de mantenimiento inicia cuando S regresa a 1. A la inversa, si R va de 1 a 0, el retenedor se desactiva y Q=0.
Simulacion en proteus:
DESCARGAR LA SIMULACION:
http://rapidshare.com/files/3106460427/flip-flop%20sr%20compuertas(nand)%20ROBOTRH.rar
Etiquetas:
descargas,
electronica digital,
practicas simuladas
|
0
comentarios
viernes, 24 de agosto de 2012
MATERIAL:
1-LCD 16x2.
LCD (pantalla de cristal líquido) es un módulo de visualización electrónica para una amplia gama de aplicaciones.Una pantalla LCD de 16x2 significa que puede mostrar 16 caracteres por línea y hay 2 líneas de este tipo. En esta pantalla cada carácter se muestra en la matriz de píxeles 5x7. Esta pantalla LCD tiene dos registros, a saber, el mando y datos.
El registro de comando almacena las instrucciones dadas al mando LCD. Un comando es una instrucción dada a LCD para realizar una tarea predefinida como inicializarla, despejando su pantalla, ajuste la posición del cursor, el control de la pantalla, etc El registro de datos almacena los datos que se muestran en la pantalla LCD. Los datos son el valor ASCII del carácter a visualizar en la pantalla LCD.
El registro de comando almacena las instrucciones dadas al mando LCD. Un comando es una instrucción dada a LCD para realizar una tarea predefinida como inicializarla, despejando su pantalla, ajuste la posición del cursor, el control de la pantalla, etc El registro de datos almacena los datos que se muestran en la pantalla LCD. Los datos son el valor ASCII del carácter a visualizar en la pantalla LCD.
Pin No
|
Function
|
Name
|
1
|
Ground (0V)
|
Ground
|
2
|
Supply voltage; 5V (4.7V – 5.3V)
|
Vcc
|
3
|
Contrast adjustment; through a variable resistor
|
VEE
|
4
|
Selects command register when low; and data register when high
|
Register Select
|
5
|
Low to write to the register; High to read from the register
|
Read/write
|
6
|
Sends data to data pins when a high to low pulse is given
|
Enable
|
7
|
8-bit data pins
|
DB0
|
8
|
DB1
| |
9
|
DB2
| |
10
|
DB3
| |
11
|
DB4
| |
12
|
DB5
| |
13
|
DB6
| |
14
|
DB7
| |
15
|
Backlight VCC (5V)
|
Led+
|
16
|
Backlight Ground (0V)
|
Led-
|
1-PIC 16f84A.
1-Cristal 4MHz.
2-Capacitores cerámicos 22pF.
Circuito en proteus:
Se programo el PIC en .asm con MPLAB IDE.
PROGRAMA ASM:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LIST p=16F84A
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSCINCLUDE <P16F84A.INC>
STATUS EQU 0X03
PORTA EQU 0X05
PORTB EQU 0X06
TRISA EQU 0X85
TRISB EQU 0X86
LCD_LINEA1 EQU 80
LCD_LINEA2 EQU 0C0
LCD_CLR EQU 01
LCD_CASA EQU 02
LCD_INC EQU 06
LCD_DEC EQU 04
LCD_ON EQU 0C
LCD_OFF EQU 08
CURSOR_ON EQU 0E
CURSOR_OFF EQU 0C
CURSOR_PARP EQU 0F
LCD_IZDA EQU 18
LCD_DECHA EQU 1C
CURSOR_IZDA EQU 10
CURSOR_DECHA EQU 14
LCD_FUNCIÓN EQU 38
LCD_CGRAM EQU 40
CBLOCK 0x0D
ENDC
ORG 00
INICIO
bsf STATUS,RP0
movlw b'00011000'
movwf TRISA
clrf TRISB
bcf STATUS,RP0
clrf PORTA
clrf PORTB
movlw LCD_FUNCIÓN
call LCD_COMANDO
call PAUSA_5ms
movlw LCD_FUNCIÓN
call LCD_COMANDO
call PAUSA_5ms
movlw LCD_FUNCIÓN
call LCD_COMANDO
call PAUSA_5ms
movlw LCD_CLR
call LCD_COMANDO
movlw LCD_INC
call LCD_COMANDO
movlw LCD_ON
call LCD_COMANDO
movlw 80
call LCD_COMANDO
ver
movlw 80
call LCD_COMANDO
movlw 'B'
call LCD_CARACTER
movlw 'L'
call LCD_CARACTER
movlw 'O'
call LCD_CARACTER
movlw 'G'
calL LCD_CARACTER
movlw ' '
calL LCD_CARACTER
movlw 'R'
call LCD_CARACTER
movlw 'O'
call LCD_CARACTER
movlw 'B'
call LCD_CARACTER
movlw 'O'
calL LCD_CARACTER
movlw 'T'
call LCD_CARACTER
movlw ' '
call LCD_CARACTER
movlw 'R'
call LCD_CARACTER
movlw 'H'
call LCD_CARACTER
movlw 0C0
call LCD_COMANDO
movlw 'E'
call LCD_CARACTER
movlw 'L'
call LCD_CARACTER
movlw 'E'
call LCD_CARACTER
movlw 'C'
calL LCD_CARACTER
movlw 'T'
calL LCD_CARACTER
movlw 'R'
call LCD_CARACTER
movlw 'O'
call LCD_CARACTER
movlw 'N'
calL LCD_CARACTER
movlw 'I'
calL LCD_CARACTER
movlw 'C'
call LCD_CARACTER
movlw 'A'
call LCD_CARACTER
sleep
subrutinas
CBLOCK
CONTA1
CONTA2
GUARDA_CARÁCTER
ENDC
PAUSA_5ms
movlw 7
movwf CONTA2
clrf CONTA1
RETRASO1
decfsz CONTA1,1
goto RETRASO1
decfsz CONTA2,1
goto RETRASO1
return
LCD_COMANDO
clrf PORTA
movwf PORTB
call LCD_CHEQUEA
goto LCD_HABILITA
LCD_CARACTER
clrf PORTA
call LCD_CARÁCTER_ESPECIAL
movwf PORTB
call LCD_CHEQUEA
bsf PORTA,0
goto LCD_HABILITA
LCD_CARÁCTER_ESPECIAL
movwf GUARDA_CARÁCTER
sublw 'ñ'
btfss STATUS,Z
goto LCD_EÑE_MAYÚSCULA
movlw b'11101110'
movwf GUARDA_CARÁCTER
goto LCD_FIN_CARACTER_ESP
LCD_EÑE_MAYÚSCULA
movfw GUARDA_CARÁCTER
sublw 'Ñ'
btfss STATUS,Z
goto LCD_GRADO
movlw b'11101110'
movwf GUARDA_CARÁCTER
goto LCD_FIN_CARACTER_ESP
LCD_GRADO
movfw GUARDA_CARÁCTER
sublw 'º'
btfss STATUS,Z
goto LCD_FIN_CARACTER_ESP
movlw b'11011111'
movwf GUARDA_CARÁCTER
LCD_FIN_CARACTER_ESP
movfw GUARDA_CARÁCTER
return
LCD_CHEQUEA
bsf STATUS,RP0
movlw 0FF
movwf TRISB
bcf STATUS,RP0
bcf PORTA,0
bsf PORTA,1
BUCLE
bsf PORTA,2
movf PORTB,0
bcf PORTA,2
addlw 84
btfsc STATUS,C
goto BUCLE
bsf STATUS,RP0
clrf TRISB
bcf STATUS,RP0
bcf PORTA,1
return
LCD_HABILITA
bsf PORTA,2
nop
bcf PORTA,2
return
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SIMULACION EN PROTEUS:
PCB:
Vista real del PCB.
DESCARGA SIMULACION, PCB, HEX:
Etiquetas:
lenguje asm,
practicas simuladas,
proyectos
|
11
comentarios
domingo, 15 de julio de 2012
MATERIAL:
1-L293D.
1- Motor Bipolar 24v.
1- PIC 16f84a.
1- Crystal 4Mhz.
2- Capacitores cerámicos de 22pf.
2- Resistores de 10k.
2- Push button.
Un motor paso a paso gira en función de una secuencia de pulsos aplicados a sus devanados. El eje del motor gira un determinado ángulo por cada impulso de entrada. Los incrementos de rotación o pasos se miden en grados.
Motor Bipolar
De este motor salen cuatro hilos conectados al circuito del control, que realiza la función de cuatro interruptores electrónicos dobles, se pueden obtener las secuencias para que el motor gire de un lado o del otro.
Vccs2 es el voltaje del motor, EN 1,2,3,4 poner a 1.
Circuito simulado en proteus:
Giro a la derecha
Half step
Modo medio paso, el rotor avanza medio paso por cada pulso de exitacion. presenta como principal ventaja una mayor resolucion de paso.
Al presionar los dos pushbutton se activa este modo.
Giro a la izquierda
Modo paso completo, avanza un paso por cada pulso de exitacion.
Al presionar el primer pushbutton se activa este modo.
Video de la simulación Proteus:
Programa en asm.
__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSCLIST P=16F84A
INCLUDE<P16F84A.INC>
cblock
endc
status equ 0x03
porta equ 0x05
portb equ 0x06
trisa equ 0x85
trisb equ 0x86
org 0
inicio
bsf status,5
bsf porta,0
bsf porta,1
clrf portb
bcf status,5
activar
btfss porta,0
goto giro
clrf portb
goto fin
giro
btfsc porta,1
goto izq_z
call der
goto fin
izq_z
call izq
fin
goto activar
izq
movlw b'00000101'
movwf portb
call Retardo_20ms
movlw b'00000110'
movwf portb
call Retardo_20ms
movlw b'00001010'
movwf portb
call Retardo_20ms
movlw b'00001001'
movwf portb
call Retardo_20ms
return
der
movlw b'00001001'
movwf portb
call Retardo_20ms
movlw b'00001000'
movwf portb
call Retardo_20ms
movlw b'00001010'
movwf portb
call Retardo_20ms
movlw b'00000010'
movwf portb
call Retardo_20ms
movlw b'00000110'
movwf portb
call Retardo_20ms
movlw b'00000100'
movwf portb
call Retardo_20ms
movlw b'00000101'
movwf portb
call Retardo_20ms
movlw b'00000001'
movwf portb
call Retardo_20ms
return
INCLUDE <retardos.inc>
end
Para aumentar o disminuir el tiempo del disparo utilizar los tiempos de la librería de retardos.
DESCARGAR SIMULACION, ASM Y HEX:
REFERENCIAS:
- Microcontrolador 16f84 desarrollo de proyectos, pag. 481-504
Etiquetas:
lenguje asm,
practicas simuladas
|
24
comentarios
sábado, 16 de junio de 2012
SUBRUTINA
Es un conjunto de instrucciones al que se tiene acceso desde cualquier tipo del programa principal. es decir una subrutina es un subprograma que se ejecuta cada vez que el programa principal lo necesite.
call xxxx // llamado de la subrutina xxxx.
xxxxx
.......
........
........
return // se sale de la subrutina y retorna al programa principal.
LIBRERÍAS CON SUBRUTINA DE RETARDO
En la mayoría de los proyectos es necesario controlar el tiempo es por eso que los retardos son probablemente las subrutinas mas utilizadas dentro los programas.
Para calcular el tiempo checar pag. 170 del libro microcontrolador 16f84a.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
realice la librería del mismo libro:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CBLOCK
R_ContA
R_ContB
R_ContC
ENDC
Retardo_10micros
nop
nop
nop
nop
nop
Retardo_5micros
nop
Retardo_4micros
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;RETARDOS de 20 hasta 500 microsegundos
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,;;;
Retardo_500micros
nop
movlw d'164'
goto RetardoMicros
Retardo_200micros
nop
movlw d'64'
goto RetardoMicros
Retardo_100micros
movlw d'31'
goto RetardoMicros
Retardo_50micros
nop
movlw d'14'
goto RetardoMicros
Retardo_20micros
movlw d'5'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RetardoMicros
movwf R_ContA
Rmicros_Bucle
decfsz R_ContA,F
goto Rmicros_Bucle
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;RETARDOS de 1ms hasta 200ms
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Retardo_200ms
movlw d'200'
goto Retardos_ms
Retardo_100ms
movlw d'100'
goto Retardos_ms
Retardo_50ms
movlw d'50'
goto Retardos_ms
Retardo_20ms
movlw d'20'
goto Retardos_ms
Retardo_10ms
movlw d'10'
goto Retardos_ms
Retardo_5ms
movlw d'5'
goto Retardos_ms
Retardo_2ms
movlw d'2'
goto Retardos_ms
Retardo_1ms
movlw d'1'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Retardos_ms
movwf R_ContB
R1ms_BucleExterno
movlw d'249'
movwf R_ContA
R1ms_BucleInterno
nop
decfsz R_ContA,F
goto R1ms_BucleInterno
decfsz R_ContB,F
goto R1ms_BucleExterno
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;RETARDOS de 0.5 hasta 20 segundos
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Retardo_20s
movlw d'200'
goto Retardo_1Decima
Retardo_10s
movlw d'100'
goto Retardo_1Decima
Retardo_5s
movlw d'50'
goto Retardo_1Decima
Retardo_2s
movlw d'20'
goto Retardo_1Decima
Retardo_1s
movlw d'10'
goto Retardo_1Decima
Retardo_500ms
movlw d'5'
Retardo_1Decima
movwf R_ContC
R1Decima_BucleExterno2
movlw d'100'
movwf R_ContB
R1Decima_BucleExterno
movlw d'249'
movwf R_ContA
R1Decima_BucleInterno
nop
decfsz R_ContA,F
goto R1Decima_BucleInterno
decfsz R_ContB,F
goto R1Decima_BucleExterno
decfsz R_ContC,F
goto R1Decima_BucleExterno2
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Lo guarde con la terminación .INC lo cual indica que es una librería.
TEMPORIZADOR 0-9 SEGUNDOS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;__CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC
LIST P=16F84A
INCLUDE<P16F84A.INC>
CBLOCK 0x0E
ENDC
status equ 0x03
porta equ 0x05
portb equ 0x06
trisa equ 0x85
trisb equ 0x86
org 0
inicio
bsf status,5
clrf trisb
movlw b'11111'
movwf trisa
bcf status,5
clrf portb
ini
movlw b'00111111'
movwf portb
principal
btfsc porta,0
goto principal
call Retardo_10micros
btfsc porta,0
goto principal
goto activar
deje
btfss porta,0
goto deje
goto principal
activar
call Retardo_1s ; llamado de la subrutina del retardo 1 segundo la cual se encuentra en la librería.
movlw b'0000110' ; 1
movwf portb
call Retardo_1s
movlw b'1011011' ; 2
movwf portb
call Retardo_1s
movlw b'1001111' ; 3
movwf portb
call Retardo_1s
movlw b'1100110' ; 4
movwf portb
call Retardo_1s
movlw b'1101101' ; 5
movwf portb
call Retardo_1s
movlw b'1111101' ; 6
movwf portb
call Retardo_1s
movlw b'0000111' ; 7
movwf portb
call Retardo_1s
movlw b'1111111' ; 8
movwf portb
call Retardo_1s
movlw b'1101111' ; 9
movwf portb
call Retardo_1s
goto ini
INCLUDE <retardos.inc> ; se incluye la librería de retardos en el programa principal.
END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MATERIAL:
1- Pushbutton.
1- Resistor de 10k.
1- Display 7 segmentos ánodo común.
1- Pic 16f84a.
1- Cristal de 4Mhz.
2- Capacitores cerámicos de 22pf.
7- Resistores de 220.
SIMULACIÓN:
Se necesita apretar el push para que empiece el conteo.
VIDEO DE LA SIMULACION:
En el ejemplo nadamas se utilizo la subrutina de un segundo pero de la misma forma se pueden mandar a llamar cualquier subrutina de la librería o se pueden ir anidando.
Se puede incluir la librería al realizar un
proyecto en mplab o copiar la librería en la misma carpeta en que vas a
guardar tu programa principal(.asm).
DESCARGAR LIBRERÍA Y PROGRAMA SIMULADO EN PROTEUS:
Etiquetas:
lenguje asm,
practicas simuladas
|
0
comentarios
Suscribirse a:
Entradas (Atom)