Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informe Inc-Dec Señal PWM
Informe Inc-Dec Señal PWM
PROFESOR
Fiestas Ugas, Antonio Esteban
CURSO
Microcontroladores
ALUMNOS:
Castillo Zavaleta, Santiago Evaristo
Fernandez Campos, Piero Frank
Rivas Huamanñahui, Misael Mateo
Villamizar Morales, Patrick Michael
Lima – Perú
2022- 02
1. Problema:
A partir de dos pulsadores, con uno incrementar en un 5% la señal PWM, y con el segundo
pulsador, disminuir en 5% la señal PWM.
2. Código desarrollado
#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
uint8_t suma;
uint8_t resta;
float crece=0;
//Configuracion PWM
void tconfig (void){
TCCR0A|= 0x83;
TCCR0B|= 0x05;
OCR0A=0;
}
int main(void)
{
DDRD=0x40;
DDRB=0X00;
tconfig();
while (1) {
suma= PINB&0b00000001;
resta= PINB&0b00000010;
}
}
3. Interpretación del código
En las primeras líneas del código, se llama a la librería delay para hacer uso
posteriormente en la pausa de secuencias. Por otro lado, dos variables, suma y resta, se
les asignó como un tipo de dato de 8 bits. Además, una variable crece de tipo flotante
va a permitir almacenar el valor porcentual al cual va estar la señal PWM.
En el cuerpo del programa, se declara al puerto D pin 6 como salida, mientras que en el
puerto B, se declara todos los pines como entradas. Así mismo, se llama a la función de
la configuración de la señal PWM, el cual tiene como nombre de función tconfig()
En la variable suma, se va a guardar el valor recibido del puerto B pin 0. Mientras que
en la variable resta, se va a guardar el valor recibido del puerto B pin 1. Si se ha
presionado el pulsador uno, ubicado en el pin 0, se incrementa en +(5*2.55)% la señal
PWM. Este proceso se detiene por medio segundo y el valor almacenado en la variable
crece se copia en el registro OCR0A para poder tener como salida la señal aumentada
en %.
4. Simulación
5. Comentario de lo aprendido
- Con este laboratorio se ha aprendido a usar los registros del timer para configurar
señales como el del PWM.
- Se ha aprendido a identificar y calcular el valor que debe ir en el registro TCCR0A
y en el registro TCCR0B y el significado de cada bit.
- El conocimiento aprendido en clase, es muy útil, pues se va a utilizar para modular
la frecuencia de giros de las ruedas de nuestro robot, para que ambas ruedas giren de
manera uniforme.
6. Conclusiones
- Hacer uso del preescalador ha resultado ser más eficiente e importante para generar
ondas cuadradas.
- Se ha aprendido más acerca de los microcontroladores Atmega328p a través de la
lectura de la data. He de ahí que conocer la data del microcontrolador es importante.