Writing /var/lib/dokuwiki/data/meta/teaching/ie0624/actividad_pwm_servo_relay.meta failed
teaching:ie0624:actividad_pwm_servo_relay
This is an old revision of the document!
Table of Contents
Actividad 3. PWM, servo y relay
Temas
- Hardware PWM
- Servo signal
- Relays (acople, cuidados)
Precauciones
- Antes de conectar el arduino y sus pines a un circuito externo (especialmente señales que entran al arduino) el Arduino debe haber sido programado al menos una vez inicialmente antes de ser conectado a este circuito.
Instrucciones generales
- Lea completamente todos los pasos de la guía de esta actividad
- Anote, responda y agregue al reporte todas las preguntas e instrucciones que se realicen en la guía. Dichas preguntas e instrucciones se pueden denotar al estar enumeradas con el siguiente formato: “1) Anote el puerto asignado a su dispositivo Arduino”
- Debe realizar una descripción de lo logrado a lo largo de la actividad, incluyendo las dificultades que se presentaron. Una bitácora de lo sucedido es lo mejor. (Anote no solo lo que usted ejecutó sino también el resultado de lo que ejecuta)
- El reporte debe ser entregado mediante correo electrónico al asistente con copia al profesor del curso mediante correo electrónico. Debe utilizar formato PDF.
- El correo electrónico del reporte debe llevar el siguiente formato en el “subject”: “IE0624 - Reporte N”, donde N es el número de la actividad realizada.
Evaluación
El reporte debe incluir las siguientes secciones (se incluye el porcentaje de nota de cada sección)
- Portada (curso, semestre, año, fecha, número y nombre de práctica, integrantes). 2%
- Bitácora de trabajo describiendo el resultado de todos los pasos seguidos de la guía incluyendo dificultades y/o situaciones inesperadas. 30%
- Capturas o fotografías de puntos importantes realizadas durante la actividad (el circuito ensamblado, resultados observables en el osciloscopio, etc) 20%
- Respuestas al cuestionario de la guía. 20% (deben estar claramente identificadas con el número de pregunta, sin confundirse con otra númeración en el reporte)
- Todo el código fuente de todos los programas utilizados a lo largo de la actividad. Debe agregar al inicio del código una descripción sobre dicho código (a qué parte de la práctica corresponde, la función que cumple dicho código). 20%
- Referencias utilizadas en caso de acceder a alguna fuente de información de Internet o bibliográfica durante la realización de la actividad. 8%
Guía de laboratorio
Parte 1. PWM
- Conecte un LED con una resistencia de 1k en el pin D9 del arduino
- Ejecute el siguiente código
#define ledPin 13 #define pwmout 9 void setup() { pinMode(ledPin, OUTPUT); pinMode(pwmout, OUTPUT); // initialize timer1 noInterrupts(); // disable all interrupts TCCR1A = 0; TCCR1B = 0; TCCR1A = (1 << COM1A0) | (1 << COM1A1) | (1 << WGM10) | (1 << WGM11); TCCR1B = (1 << WGM12); TCNT1 = 0; OCR1A = 511; // compare match register TCCR1B |= (1 << CS12) | (1<< CS10); TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt interrupts(); // enable all interrupts } ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine { digitalWrite(ledPin, digitalRead(ledPin) ^ 1); // toggle LED pin } ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt { TCNT1 = 0; // preload timer digitalWrite(ledPin, digitalRead(ledPin) ^ 1); } void loop() { }
- 1) Qué modo de operación está utilizando el timer 1?
- 2) Cuál es el ciclo de trabajo del LED en el programa arriba?
- Cambie el programa de arriba para configurar el PWM a 10%. Observe, corrobore y anote la salida con un osciloscopio.
- Cambie el programa de arriba para configurar el PWM a 90%. Observe, corrobore y anote la salida con un osciloscopio.
- Cambie el programa para que utilice PWM phase and frequency correct
- Cambie el programa para que utilice el comando analogWrite() de arduino
Parte 2. Servo
- Configure el programa anterior para garantizar un funcionamiento correcto del servo (Cumplir con los requerimientos de temporización de la señal de un servo) (No puede utilizar analogWrite)
- Cambie el valor del PWM de 0% a 100% cada 2 segundos (desde la función loop). Observe el servo moverse del máximo al mínimo de posición. Capture ambos casos con el osciloscopio.
Parte 3. Serial
- Realice un programa que reciba datos del puerto serial y los vuelva a enviar de vuelta a la PC. En la PC utilice el comando minicom
Parte 4. Relay
- Reciba un comando de ON y otro de OFF del puerto serial desde minicom y con estos encienda y apague un relay conectado al pin D6. El LED integrado del Arduino debe seguir el estado del relay
Referencias
teaching/ie0624/actividad_pwm_servo_relay.1495050366.txt.gz · Last modified: 2022/09/20 00:08 (external edit)