Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Guía de Laboratorio: Fundamentos de Programación en Arduino, Guías, Proyectos, Investigaciones de Programación Lineal

Este documento proporciona una guía de laboratorio para el curso de fundamentos de programación en arduino. Se abordan los conceptos básicos de la estructura repetitiva for, su uso para ejecutar instrucciones de manera repetitiva, y la repetición controlada por un contador. Además, se incluyen actividades y ejercicios resueltos para practicar la programación en arduino.

Tipo: Guías, Proyectos, Investigaciones

2021/2022

Subido el 13/02/2024

eduardo-pedro-aguilar
eduardo-pedro-aguilar 🇵🇪

2 documentos

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
UNIVERSIDAD NACIONAL DE SAN AGUSTIN
FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERÍA ELÉCTRICA
GUÍA DE LABORATORIO
FUNDAMENTOS DE PROGRAMACIÓN
Ing. MARISOL CRISTEL GALARZA FLORES
COMPETENCIAS
Al finalizar el curso el alumno desarrollará las competencias para:
1. Aplicar de forma flexible, técnicas, métodos, principios, normas, estándares y herramientas de ingeniería
para la construcción de software.
2. Diseñar responsablemente sistemas, componentes o procesos para satisfacer necesidades dentro de
restricciones realistas: económicas, medio ambientales, sociales, políticas, éticas, de salud, de seguridad,
manufacturación y sostenibilidad.
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Guía de Laboratorio: Fundamentos de Programación en Arduino y más Guías, Proyectos, Investigaciones en PDF de Programación Lineal solo en Docsity!

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS

ESCUELA PROFESIONAL DE INGENIERÍA ELÉCTRICA

GUÍA DE LABORATORIO

FUNDAMENTOS DE PROGRAMACIÓN

Ing. MARISOL CRISTEL GALARZA FLORES

COMPETENCIAS

Al finalizar el curso el alumno desarrollará las competencias para:

  1. Aplicar de forma flexible, técnicas, métodos, principios, normas, estándares y herramientas de ingeniería para la construcción de software.
  2. Diseñar responsablemente sistemas, componentes o procesos para satisfacer necesidades dentro de restricciones realistas: económicas, medio ambientales, sociales, políticas, éticas, de salud, de seguridad, manufacturación y sostenibilidad.

Estructuras for I OBJETIVOS  Comprender la estructura repetitiva for  UsaUtilizar la estructura de repetici on for para ejecutar instrucciones de manera repetitiva dentro de unprograma  Comprender la repetición controlada por un contador II TEMAS A TRATAR  Estructura repetitiva for  Servomotor III MARCO TEÓRICO SERVOMOTOR Servo es un tipo de motor DC con reductora que solo puede girar 180 grados. Se controla mediante el envio de impulsos electricos de Arduino. Estos pulsos le dicen al servo a que posicion se debe mover. El Servo tiene tres cables, marron es el cable a masa y debe conectarse a GND, el rojo es el cable de corriente y debe conectarse al puerto de 5v y el naranja es el cable de senal y debe conectarse a un pin PWM. Los servomotores generlmente solo pueden girar 180 grados Laboratorio

Fíjate que si lo programas de esta forma, no funciona correctamente, ¿por qué? #include <Servo.h> //libreria Servo myservo;//crecion del objeto servo void setup() { myservo.attach(3); //enlace del servo a su pin } void loop() { myservo.write(0); myservo.write(180); } Para corregir el error haremos lo siguente: #include <Servo.h> //libreria Servo myservo;//crecion del objeto servo void setup() { myservo.attach(3); //enlace del servo a su pin } void loop() { myservo.write(0); delay(2000); myservo.write(180); delay(2000); } ESTRUCTURA REPETITIVA FOR Existe también una instrucción de repetición for, la cual especifica los detalles de la repetición controlada por contador en una sola línea de código. Para ilustrar el poder del for, vamos codificar un programa para imprimir números del 1 al 10 con la estructura repetitiva for: void setup() { Serial.begin(9600); } void loop() { Serial.println("Lista de numeros"); for(int i=1; i<=10; i++){

Serial.println(i); delay(200); } delay(1000); } La estructura del for es la siguiente: El formato es el siguiente: for(inicializacion;condicionDeContinuacionDeCiclo; incremento)instruccion; Donde la expresión inicialización inicializa la variable de control del ciclo, la condicionDeContinuacionDeCiclo determina si el ciclo debe seguir ejecutándose ( por lo general, esta condición contiene el valor final de la variable de control para la cual la condición es verdadera) y el incremento incrementa el valor de la variable de control. En la mayoría de los casos, la instrucción for se puede representar mediante una instrucción while equivalente,como se muestra a continuación: Si la expresión de inicialización en el encabezado de la instrucción for declara la variable de control (es decir,si el tipo de la variable de control se especifica antes del nombre de la variable), la variable de control puede utilizarse solo en el cuerpo de esa instrucción for; no existira fuera de esta instrucción. Este uso restringido del nombre de la variable de control se conoce como el alcance de la variable. El alcance de una variable especifica dónde puede utilizarse en un programa. Las tres expresiones en un encabezado for son opcionales ( pero los dos separadores de punto y coma son obligatorios). Si se omite la condicionDeContinuacionDeCiclo, se asume que esta condición siempre será verdadera, con lo cual se crea un ciclo infinito.

IV ACTIVIDADES

  1. Escribe un programa que visualice los números del 100 al 1, con decrementos de 1 en 1.
  2. escribe un programa que muestre los n umeros del 7 al 77, con incrementos de 1 en 1.
  3. escribe un programa que muestre los n umeros: 2,5,8,11,14,17,20,23,26,28,29,32,
  4. Escribe un programa que gire el servomotor de 5 en 5 grados V EJERCICIOS RESUELTOS
  5. Gire 180 grados el servomotor cuando el pulsador se presione, regrese los grados a cero.

#include <Servo.h> //libreria const int pulsador = 2; int lecturapulsador=0; Servo myservo;//crecion del objeto servo void setup() { myservo.attach(3); pinMode(pulsador, INPUT); Serial.begin(9600); } void loop() { lecturapulsador = digitalRead(pulsador); if(lecturapulsador == HIGH){ myservo.write(180); } else{ myservo.write(0); } delay(1000); }

  1. Escriba un programa que muestre los números:99, 88, 77, 66, 55, 44, 33, 22, 11, 0 y al mismo tiempo gire el servomotor en esos ángulos. #include <Servo.h> //libreria Servo myservo;//crecion del objeto servo void setup() { myservo.attach(5); Serial.begin(9600); } void loop() { for (int i = 99; i >= 0; i-=11) { myservo.write(i); Serial.println(i); delay(1000); } }

delay(1000); }

  1. Escriba un programa que pida un número entero mayor que cero y que escriba sus divisores int numero= 0; void setup(){ Serial.begin(9600); Serial.println("escriba un numero entero mayor que cero"); } void loop(){ while(!Serial.available()){ } numero= Serial.parseInt(); if (numero>0){ Serial.println("Los divisores son:"); for(int i=1; i<=numero; i++){ if(numero%i ==0) { Serial.println(i); } } Serial.println("escriba un numero entero mayor que cero"); } else{ Serial.println("no es mayor que cero. Ingrese un numero mayor que cero"); } }
  2. Escribir un programa que nos muestre el siguiente resultado:

int numero= 0; void setup(){ Serial.begin(9600); Serial.println("escriba un numero entero mayor que cero"); } void loop(){ Serial.println("TABLA DE NUMEROS"); Serial.println("NUMERO \t POTENCIA_2\tRAIZ_2"); for(int i=4; i<=32; i+=2){ Serial.print(i); Serial.print("\t"); Serial.print(i*i); Serial.print("\t"); Serial.println(sqrt(i)); } delay(3000); Serial.println(); } VI EJERCICIOS PROPUESTOS

  1. Escriba un programa que pida dos números enteros, y luego imprima desde el número menor hasta el número mayor con incrementos de 1 en 1.
  2. Escriba un programa que pregunte cu antos n umeros se van a introducir, pida esos n umeros, y diga al finalcu antos han sido pares y cu antos impares.
  3. Mejore el siguiente programa para que el led 1 encienda y apague el número de números pares hallados y el led 2 encienda y apague el número de números impares.
  4. Escriba un programa que pida un número entero mayor que 1 y nos diga si es primo o no. Si es primo, gire el servomotor 90 grados y manténgalo en 90 hasta que se ingrese otro número, si no es primo, gire el servomotor 180 grados y manténgalo en 180 hasta que se ingrese otro número.
  5. Escriba un programa que pida al usuario ingresar la altura y el ancho de un rect angulo y lo dibujeutilizando asteriscos. Ejemplo: con altura 3 y ancho 5 deber ıa mostrarse lo siguiente:
  6. Pedir al usuario que ingrese un n umero positivo entre 1 y 10, luego realizar la tabla de multiplicar dedicho número, de forma que se visualice así: