Está en la página 1de 9

INTRODUCCIÓN A

LA PROGRAMACIÓN

LABORATORIO N°16
Entradas y salidas en Arduino
INTRODUCCIÓN A LA PROGRAMACIÓN

OBJETIVOS:

 Crear un programa en Python que escriba archivos de texto


 Implementar un programa en Arduino que encienda y apague un led, siguiendo una
secuencia.
 Implementar un programa que controle una pantalla LCD.

Equipos, materiales, programas y recursos:

● PC personal con Windows 10.

● Programa Tinkercad

● Material adicional en Canvas TECSUP.

SEGURIDAD:

• Ubicar maletines y/o mochilas en el lugar del aula de laboratorio destinado para tal fin.
• No ingresar con líquidos ni comida al laboratorio.
• Al culminar la sesión de laboratorio, apagar correctamente la computadora y el
monitor.
• Deberá dejar la mesa de trabajo y la silla que utilizó limpias y ordenadas.

PREPARACIÓN:

Para ello el alumno previamente deberá haber revisado el material publicado en TECSUP
Virtu@l, la participación activa en el transcurso de la clase previa al desarrollo del Laboratorio
y así lograr cumplir con los objetivos y metas trazados al final de cada clase.

DEPARTAMENTO DE TECNOLOGÍAS DIGITALES


INTRODUCCIÓN A LA PROGRAMACIÓN

PROCEDIMIENTOS Y RESULTADOS:

Ejercicio1

Escriba un programa en Python que utilizando funciones solicite los siguientes datos:

 Nombre del trabajador


 DNI
 Sueldo base
 Número de hijos

Calcule lo siguiente:

 La asignación familiar, esta depende del número de hijos. Si el trabajador tiene hijos se
le dará una asignación familiar de 100 soles, en caso contrario la asignación familiar
será 0.
 El Sueldo final, este será igual a la suma del sueldo base más la asignación familiar.

Los datos ingresados (Nombre del trabajador, DNI, Sueldo base y número de hijos) y los datos
calculados (asignación familiar y sueldo final) deberán de ser escritos en un nuevo archivo de
texto.

POR LO MENOS UNA DE LAS VARIABLES TENDRÁ SU APELLIDO PATERNO

Código en Python Archivo de texto generado


def solicitar_datos():
huamani = input("Ingrese el nombre del
trabajador: ")
dni = input("Ingrese el DNI del trabajador: ")
sueldo_base = float(input("Ingrese el sueldo base
del trabajador: "))
num_hijos = int(input("Ingrese el número de
hijos del trabajador: "))
return huamani, dni, sueldo_base, num_hijos

def calcular_asignacion_familiar(num_hijos):
if num_hijos > 0:
asignacion_familiar = 100
else:
asignacion_familiar = 0
return asignacion_familiar

def calcular_sueldo_final(sueldo_base,
asignacion_familiar):
sueldo_final = sueldo_base + asignacion_familiar
return sueldo_final

def escribir_archivo(huamani, dni, sueldo_base,


num_hijos, asignacion_familiar, sueldo_final):
with open("datos_trabajador.txt", "w") as
archivo:
archivo.write(f"Nombre del trabajador:

DEPARTAMENTO DE TECNOLOGÍAS DIGITALES


INTRODUCCIÓN A LA PROGRAMACIÓN

{huamani}\n")
archivo.write(f"DNI: {dni}\n")
archivo.write(f"Sueldo base: {sueldo_base}\n")
archivo.write(f"Número de hijos: {num_hijos}\
n")
archivo.write(f"Asignación familiar:
{asignacion_familiar}\n")
archivo.write(f"Sueldo final: {sueldo_final}\n")

def main():
huamani, dni, sueldo_base, num_hijos =
solicitar_datos()
asignacion_familiar =
calcular_asignacion_familiar(num_hijos)
sueldo_final = calcular_sueldo_final(sueldo_base,
asignacion_familiar)
escribir_archivo(huamani, dni, sueldo_base,
num_hijos, asignacion_familiar, sueldo_final)
print("Datos guardados en el archivo
datos_trabajador.txt")

if __name__ == "__main__":
main()
Ejecución del programa

DEPARTAMENTO DE TECNOLOGÍAS DIGITALES


INTRODUCCIÓN A LA PROGRAMACIÓN

Ejercicio 2

Cree en siguiente circuito utilizando Thinkercat y prográmelo para que emita una señal de SOS
en clave morse utilizando el led, esta señal se debe de repetir después de 2 segundos, usted
defina el espacio de tiempo entre cada pulso de luz.

DEPARTAMENTO DE TECNOLOGÍAS DIGITALES


INTRODUCCIÓN A LA PROGRAMACIÓN

Código del programa


void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
// S
digitalWrite(LED_BUILTIN, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(1500); // Wait for 1500 millisecond(s)

// O
digitalWrite(LED_BUILTIN, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);

DEPARTAMENTO DE TECNOLOGÍAS DIGITALES


INTRODUCCIÓN A LA PROGRAMACIÓN

delay(1000); // Wait for 1000 millisecond(s)


digitalWrite(LED_BUILTIN, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(LED_BUILTIN, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(1500); // Wait for 1500 millisecond(s)

// S
digitalWrite(LED_BUILTIN, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, HIGH);
delay(500); // Wait for 500 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(1500); // Wait for 1500 millisecond(s)

delay(2000); // Wait for 2000 millisecond(s)


}
Enlace del proyecto
https://www.tinkercad.com/things/99RyN6E9ctt-huamani-huamani

Ejercicio 3

La empresa Rutas de Lima debe de programar un prototipo de pantalla LCD que muestre los
mensajes siguientes:

- COBRO DE PEAJE
- 1000 METROS

Seguido de los textos:

- Reduzca
- Velocidad

Los mensajes se deben de mover de derecha a izquierda, usted defina la velocidad de avance
de la pantalla esta debe ser menor a un segundo y mayor a 100 milisegundos

Cree un circuito en Arduino para controlar la pantalla LCD y la prográmela para que muestre
los mensajes solicitados.

DEPARTAMENTO DE TECNOLOGÍAS DIGITALES


INTRODUCCIÓN A LA PROGRAMACIÓN

Captura de pantalla del circuito

Código del proyecto


#include <LiquidCrystal.h>

LiquidCrystal lcd(12,11,5,4,3,2);

void setup() {
lcd.begin(16, 2);
lcd.setCursor(1, 0);
lcd.print(" COBRO DE PEAJE REDUZCA");
lcd.setCursor(1, 1);
lcd.print(" 1000 METROS VELOCIDAD");
}

void loop() {
lcd.setCursor(16, 1);
lcd.autoscroll();
lcd.print(" ");
delay(500);
}
Enlace del proyecto
https://www.tinkercad.com/things/dlKMP92aFVf-librerias/editel?returnTo=%2Fdashboard
%3Fcollection%3Ddesigns&sharecode=VEpb4Og2ikXOYWBjlPA2uZNh20KTxU3ZbIs_vvlvwEQ

Conclusiones:

DEPARTAMENTO DE TECNOLOGÍAS DIGITALES


INTRODUCCIÓN A LA PROGRAMACIÓN

Criterios de Evaluación
Electrónica y Automatización Industrial

Rúbrica

Resultado 3 Los estudiantes identifican, analizan y resuelven problemas que se plantean en las
prácticas.
Criterio de 3.1 Realiza pruebas a sistemas de hardware y software para diagnosticar su correcta
desempeño operación.
3.2 Analiza e Interpreta resultados de mediciones y pruebas para implementar mejoras
Curso Introducción a la programación Periodo 2020-1
Crea programas en Python e implementa programas en
Actividad Semestre III
Arduino
Nombre del Alumno Semana 16

Docente Laura Meléndez Fecha 17/07/2020 Sección C5A

Requiere No Puntaje
Criterios a Evaluar Excelente Bueno
Mejora Aceptable Logrado

 Crea un programa en Python que solicita 6 6 3 1


valores y escribe en un archivo de texto.
 Implementa un circuito en Arduino para 7 5 3 2
controlar un led y lo programa
 Implementa un circuito en Arduino que 7 5 4 2
contrala un LCD y utiliza librerías
Total 20 15 10 5-0

Acciones a cumplir Menos

1
 Ortografía y redacción de las conclusiones.

Puntaje Final

Comentarios respecto del desempeño


del alumno

Descripción

Demuestra un completo entendimiento del problema o realiza la actividad


Excelente
cumpliendo todos los requerimientos especificados.
Demuestra un considerable entendimiento del problema o realiza la actividad
Bueno
cumpliendo con la mayoría de los requerimientos especificados.
Demuestra un bajo entendimiento del problema o realiza la actividad cumpliendo
Requiere mejora
con pocos de los requerimientos especificados.
No Aceptable No demuestra entendimiento del problema o de la actividad.

DEPARTAMENTO DE TECNOLOGÍAS DIGITALES

También podría gustarte