Anda di halaman 1dari 5

UNIVERSIDAD NACIONAL MAYOR DE

SAN MARCOS
(Universidad del Perú, Decana de América)
“Año del Diálogo y la Reconciliación Nacional”

Profesor: Ing. Cifuentes

Laboratorio de ingeniería
de control I
TEMA:
“IMPLEMENTACION DE UN CIRCUITO
DE MUESTREO CON ATMEGA328P
TARJETA ARDUINO Y EL
COMPILADOR BASCOM”
GRUPO:
Jueves (20.00pm-22.00pm)
ALUMNO/CÓDIGO:
Caycho Avalos Arturo 14190075
FECHA DE:
22/11/2018
CICLO:
2018-II
1. OBJETIVOS
Implementación de un circuito de muestreo con un Arduino y
el compilador Bascom

Objetivos:

 Estudio y aprendizaje del compilador Bascom.


 Estudiar los diferentes componentes del atmega328p y su
comportamiento como muestreador.
 Familiarizarse con la teoría de muestreo para posteriores
proyectos del curso.
 Conocer el lenguaje simple del compilador Bascom.

Desarrollo de la experiencia.
Implementar un circuito con el ATMEGA328p que visualice un contador hexadecimal
con un tiempo de muestreo de 1 segundo. Use el 4 pines del puerto B
NOTA Se debe considerar que la tarjeta Arduino tiene un cristal de 16 Mhz por lo
tanto el atemga328p ha sido configurado para esa frecuencia..

Diagrama de flujo
Timer1=0

PORTB<15

PORTB=0 PORTB=PORTB+1

RETURN

Programa en Bascom
'--------------------------------------------------------------------
$regfile = "m328pdef.dat" 'indica al compilador el dispositivo a usar
$crystal = 16000000 'la frecuencia del reloj (16MHz)
'$hwstack = 32
'$swtack = 10
'$framesize = 16

Dim A As Byte
Config Portb = Output 'Configura el puerto b como salida

'Configura el timer1 como contador, con preescalador de 1024,

Config Timer1 = Counter , Prescale = 1024 , Clear Timer = 1


'especifiado por Compare1A
Timer1 = 0 'inicializa el timer1 en cero.

On Compare1a Muestreo1
' Muestreo1 es el LABEL a la cual debe saltar cuando se tiene una interrupción

'Calcular el tiempo de muestro T:


' 1 segundo = 16`000000/1024 =15625
'se contara hasta el valor 15625 para un T=4s ' 15625=H3D09
Compare1a = &H3D09 * 4
Enable Compare1a 'Habilita la interrupción por comparación
de timer1
Enable Interrupts 'Habilita las interrupciones en general

Do
A=0
Loop
End 'final del programa

'Rutina de interrupción (actualizar salida)


Muestreo1:
Timer1 = 0

'Desarrollar el algoritmo de control:


If Portb < 15 Then
Portb = Portb + 1
Else
Portb = 0
End If
Return 'fin de la rutina de interrupción
Para este trabajo se utilizará el puerto B.

Conclusiones:

 El Arduino atmega328p tiene múltiples aplicaciones, aquel microcontrolador


realiza un muestreo rápido gracias al oscilador de 16Mhz. Posee un oscilador
externo de hasta 20Mhz.
 El compilador Bascom es compatible con microprocesadores AVR y posee un
lenguaje estructurado que hace fácil y sencillo la programación.

Anda mungkin juga menyukai