Entradas

Mostrando entradas de marzo, 2020

Aumentar luminosidad de led con pulsador (fading). (Programa 5 de 5)

Imagen
Se trata de aumentar la luminosidad de un diodo led conectado al pin 11 a través de la activación de un pulsador. El pulsador debe estar conectado al pin 2. Mientras el pulsador está conectado aumenta la luminosidad del led hasta llegar a su valor máximo (255), si el pulsador se desactiva se mantendrá su luminosidad hasta que el valor de luminosidad llegue a su máximo (255) pulsando nuevas veces, si esto ocurre la luminosidad pasará a valor nulo (0). Objetivos: • Repaso de conexionado de entradas digitales. • Repaso de órden digitalRead. • Repaso de conexionado de salidas analógicas. • Repaso de órden analogWrite. Solución: int led = 11; // elegimos el pin del led int pulsador = 2; // elegimos el pin del pulsador int x=0; // configuramos la variable para incrementar el valor de luminosidad void setup() {    pinMode(led, OUTPUT); // declaramos led como salida    pinMode(pulsador, INPUT); // declaramos pulsador como entrada } void loop() {   w...

Termostato con velocidad de motor variable. (Programa 4 de 5)

Imagen
Se trata de diseñar un dispositivo que haga lucir un led y funcionar el motor de un ventilador cuando la temperatura llegue a cierto valor umbral (entre 0 y 1024). Para ello conectaremos una ntc a la entrada analógica 0, el led al pin 13 y el motor al pin 9. El motor debe funcionar a cierto nivel de potencia a elegir entre 0 y 255. Además se deberá visionar el valor de voltaje en la entrada analógica (valor entre 0 y 1024) en una consola en el PC. Objetivos: • Repaso conexión de entrada analógica a arduino (ntc). • Repaso conexionado de salidas analógicas. • Repaso órdenes como: analogWrite. • Repaso de visualizar datos en consola de puerto serie, con órdenes como: Serial.begin, Serial.print. • Repaso de órdenes de control de programa como: If else. Solución: int motor=9; int led=13; int ntc=0; int temperatura=0; void setup(){ pinMode(led,OUTPUT); pinMode(motor,OUTPUT); Serial.begin(9600); } void monitoriza(){ Serial.print("El valor de temperatura es ......

Luz de led en función de la luz. (Programa 3 de 5)

Imagen
Se trata de un dispositivo que haga lucir un led más o menos en función de la luz externa. Para ello conectaremos una ldr a la entrada analógica 0 y un led al pin 9. Cuando la luz se encuentre entre 0 y 512 el led debe colocarse en el nivel de potencia máxima (255), si la luz se encuentra entre valores 512 y 1024 el debe lucir al nivel de potencia 64. Además se deberá visionar el valor de voltaje en la entrada analógica (valor entre 0 y 1024) en una consola en el PC. Objetivos: • Repaso conexión de entrada analógica a arduino (ldr). • Conexionado de salidas analógicas. • Órdenes como: analogWrite. • Repaso de visualizar datos en consola de puerto serie, con órdenes como: Serial.begin, Serial.print. • Repaso de órdenes de control de programa como: If else. Solución: // Detector de luz con LDR #define pinLED 12 void setup() {   pinMode(pinLED, OUTPUT);   Serial.begin(9600); } void loop() {   int v = analogRead(A0);   // El valor 600 (siguiente l...

Aumentar y disminuir intensidad luminosa de led (fading). (Programa 2 de 5)

Imagen
Se trata aumentar y disminuir la luminosidad de un led usando la capacidad de ofrecer una tensión variable que da una salida analógica. Para ello se conecta un led al pin 11 y se provoca que su luminosidad pase de mínima a máxima, para luego ir de máxima a mínima. Los valores de salidas analógicas van del mínimo 0 al máximo 255. Objetivos: • Conexionado de salidas analógicas (power with module pwm). • Conocer órdenes como analogWrite. Solución: int luminosidad = 0; // variable para asignar la luminosidad al led int led = 11; // pin del led void setup() {  // en el setup no hay que configurar nada } void loop() {  for (luminosidad = 0 ; luminosidad <= 255; luminosidad=luminosidad+3) // fade in (from min to max)  {  analogWrite(led, luminosidad); // ilumina el led con el valor asignado a luminosidad (entre 0 y 255)  delay(30); // espera 30 ms para que se vea el efecto  }  for (luminosidad = 255; luminosidad >=0; luminosidad=lumi...

Termostato. (Programa 1 de 5)

Imagen
Se trata de un dispositivo que haga funcionar un motor y un led cuando la temperatura supera cierto umbral. Para ello conectaremos una ntc a la entrada analógica 0, un led al pin 5 y un motor de corriente continua al pin 10. Cuando la temperatura llegue a cierto umbral de voltaje (entre 0 y 1024) que nosotros decidamos, se conectarán a la vez el diodo led y el motor que puede tener unas aspas de ventilador en su eje para enfriar la ntc. Además se deberá visionar el valor de voltaje en la entrada analógica (valor entre 0 y 1024) en una consola en el PC. Objetivos:  • Conexión de entrada analógica a arduino (ntc).  • Órdenes como: analogRead.  • Visualizar datos en consola de puerto serie, con órdenes como: Serial.begin, Serial.print.  • Repaso de órdenes de control de programa como: If else. Solución: int led=5; int ntc=0; int motor=10; int medida=0; int nivel=700; //variable que guarda el límite de temperatura al que se activa el ventil...

Carrito seguidor de linea - Arduino

Imagen
Objetivo: Crear un seguidor de linea con la programación en arduino para controlar los puentes H, y controlar los motorreductores, en función con los sensores infrarrojos para detectar la linea negra o blanca. Materiales: - 2 sensores CNY70 - 2 Motorreductor - 2 LLantas - Protoboard - Silicón - Palos de madera - Cables - Pila de 9v - Puente H L298N - PowerBank - Arduino Uno Vídeo realizado por el equipo sobre el proyecto del carrito seguidor de linea:  https://www.youtube.com/watch?v=d-PIamGGue0&feature=youtu.be Código utilizado: Realizado por:THEFENIX-THE FENIX-EMIC TRON.*/ int infraPin1 = 10;    // pin del infrarrojos utilizado como entrada digital en el lado derecho(#1). int infraPin2 = 11;    // pin del infrarrojos utilizado como entrada digital en el lado izquierdo(#2). int valorInfra1 = 0;  // Valor inicial de la lectura digital del infrarrojo #1. int valorInfra2 = 0;  // Valor inicial de la lectura digital d...

13. Encender y apagar led y mover servomotor con interfaz en python.

Imagen
Para realizar esta practica tuvimos que hacer uso de Arduino y Pyhton. Solución en pyhon: # interface para mover servomotor #importar librerias import Tkinter from Tkinter import * from time import sleep from pyfirmata import Arduino, util, SERVO #configuracion de placa arduino board = Arduino('COM6') sleep(5) board.digital[3].mode = SERVO #funcion para mover el servomotor def servo(pocisiones):     #escritura de angulo en servomotor     board.digital[3].write(pocisiones) #encender LED def led_on():     board.digital[13].write(1) #apagar LED def led_off():     board.digital[13].write(0) root = Tk() root.title("Control de Servomotor") root.minsize(300,150) #Barra de angulo angulo = Scale(root, command=servo, from_=0, to=179, orient=HORIZONTAL, length=300, troughcolor='gray', width=30, cursor='dot', label='Angulo Servo') angulo.grid(column=2,row=1) #boton encendido Bon = Button(root, text="Encender LED...

12. Encender y apagar led con 1 o 0 conectado a python.

Imagen
Aqui hacemos utilizacion de Python y Arduino para hacer funcionar la practica. Solución en python: import serial ser = serial.Serial('COM6', 9600) while 1:    val=input("Introduzca 1 para encender y 0 para apagar LED: ")    ser.write(val) Solución en arduino: void setup() {   // put your setup code here, to run once:  Serial.begin(9600);  pinMode(13,OUTPUT); } void loop() {   // put your main code here, to run repeatedly:    if (Serial.available()){     switch(Serial.read()){       case '0': digitalWrite(13,LOW);               break;       case '1': digitalWrite(13,HIGH);               break;        default: break;                    }      } }

11. Practica 3 SERVOMOTOR.

Imagen
Realizamos la tercer practica con servomotor, aquí esta el código que utilizamos: Solución: /*   Creado: Luis del Valle (ldelvalleh@programarfacil.com)   https://programarfacil.com */ // Incluímos la librería para poder controlar el servo #include <Servo.h> // Declaramos la variable para controlar el servo Servo servoMotor; void setup() {   // Iniciamos el monitor serie para mostrar el resultado   Serial.begin(9600);   // Iniciamos el servo para que empiece a trabajar con el pin 9   servoMotor.attach(9); } void loop() {   // Desplazamos a la posición 0º   servoMotor.write(0);   // Esperamos 1 segundo   delay(5000);   // Desplazamos a la posición 90º   servoMotor.write(90);   // Esperamos 1 segundo   delay(5000);   // Desplazamos a la posición 180º   servoMotor.write(180);   // Esperamos 1 segundo   delay(5000);     // Desplazamos a la posición...

10. Practica 2 Servomotor varia posición.

Imagen
Hicimos la segunda practica con servomotor, aquí esta el código que utilizamos: Solución: #include <Servo.h> Servo myservo; int pos; void setup() {    myservo.attach(9);  // vincula el servo al pin digital 9 } void loop() {    //varia la posición de 0 a 180, con esperas de 15ms    for (pos = 0; pos <= 180; pos += 1)    {       myservo.write(pos);                  delay(15);                         }    //varia la posición de 0 a 180, con esperas de 15ms    for (pos = 180; pos >= 0; pos -= 1)    {       myservo.write(pos);                  delay(15);                         } }

9. Practica 1 con SERVOMOTOR.

Imagen
Realizamos la primer practica con servo del programa de Luis del Valle. Solución: // Incluímos la librería para poder controlar el servo #include <Servo.h> // Declaramos la variable para controlar el servo Servo servoMotor; void setup() {   // Iniciamos el monitor serie para mostrar el resultado   Serial.begin(9600);   // Iniciamos el servo para que empiece a trabajar con el pin 9   servoMotor.attach(9); } void loop() {   // Desplazamos a la posición 0º   servoMotor.write(0);   // Esperamos 1 segundo   delay(1000);   // Desplazamos a la posición 90º   servoMotor.write(90);   // Esperamos 1 segundo   delay(1000);   // Desplazamos a la posición 180º   servoMotor.write(180);   // Esperamos 1 segundo   delay(1000); }

8. Examen unidad 1 "El dado".

Imagen
Programa realizado para evaluación del parcial de la primera unidad de la materia de lenguajes de interfaz, donde se hace el uso de la funcion random para poder simular que es un dado que lanzas y saca un numero al azar. Solución: int LEDS[]={2,3,4,5,6,7}; int PULSADOR = 0; int i; int n=0; void setup(){   for(i=0; i<6;i++){     pinMode(LEDS[i], OUTPUT);     digitalWrite(LEDS[i], LOW);   }   pinMode(PULSADOR, INPUT);   randomSeed(analogRead(0)); } void loop(){    if(digitalRead(PULSADOR)==0);    n = random(1,7);    for(i=0;i<n;i++){     digitalWrite(LEDS[i],HIGH);    }   delay(500);   for(i=0; i<n; i++){     digitalWrite(LEDS[i], LOW);   } }

7. Ruleta de la fortuna.

Imagen
Se trata de cinco leds que se van encendiendo y apagando formando una secuencia, el jugador debe dar al pulsador cuando el led intermedio se enciende, si acierta funciona un zumbador y la velocidad de la secuencia aumenta. Los leds deben estar conectados de los pines 5 a 9 (inclusives), el zumbador al pin 10, el pulsador al pin 11. El tiempo inicial entre encendido y encendido de leds debe ser 200 ms, si se acierta se decrementa el tiempo en 20 ms, si el tiempo entre encendidos llegase a 10 ms, se devuelve el tiempo a 200 ms. Objetivos: • Repaso de conexión de entrada digital a arduino (pulsador). • Repaso de variables tipo lista de valores. • Repaso de declarar una función y llamarla cuando sea necesario. • Repaso de órdenes como: digitalRead. • Repaso de órdenes de control de programa como: For, If. Solución: int leds[]={5,6,7,8,9}; int n=0; int tiempo=200; int zumbador=10; int pulsador=11; void setup (){ for(n=0;n<5;n++) { pinMode(leds[n],OUTPUT); } pinMode(zu...

6. Secuencia de leds con pulsador. (Solución 1 y 2)

Imagen
Se trata de encender y apagar 4 leds secuencialmente al accionar un pulsador. El pulsador debe estar conectado al pin 4, y los leds a los pines 5,6,7 y 8. Se deben encender y posteriormente apagar los leds desde el pin 5 al 8, con un tiempo de duración de encendido y apagado de 200 milisegundos. Nota: la secuencia principal del programa debe estar reproducida en una función a la que llamará el programa principal. Objetivos: • Familiarizarse con el entorno de programación. • Aprender a conectar una entrada digital a arduino (pulsador). • Aprender a declarar variables tipo lista de valores. • Aprender a declarar una función y llamarla cuando sea necesario. • Conocer órdenes como: digitalRead. • Conocer órdenes de control de programa como: If. Solución 1: int cadenaleds[]={5,6,7,8}; int pulsador=4; int tiempo=200; int n=0; void setup() { for(n=0;n<4;n++) { pinMode (cadenaleds[n],OUTPUT); } pinMode (pulsador,INPUT); } void flash() { for (n=0;n<4;n++) { digita...

5. Coche Fantástico. (Solución 1,2 y 3)

Imagen
Se trata de encender y apagar 7 leds secuencialmente. Los leds deben estar conectados a los pines 5,6,7,8,9,10 y 11. Se deben encender y apagar los leds desde el pin 5 al 11, con un tiempo de encendido y apagado de 50 ms, más tarde se deben encender y apagar los leds desde el pin 11 al 5, con un tiempo de encendido y apagado de 50 ms. La secuencia se debe repetir indefinidamente. El efecto del programa es el de las luces delanteras de nuestro querido "Coche fantástico". Objetivos: • Familiarizarse con el entorno de programación. • Repasar declaración de variables tipo lista de valores. • Repasar órdenes de control de programa como: for. Solución 1: int leds[]={5,6,7,8,9,10,11}; int n=0; int tiempo=50; void setup() { //comienza la configuración  for (n=0;n<7;n++) {  pinMode(leds[n],OUTPUT); } } void loop() {  for (n=0;n<7;n++) {  digitalWrite (leds[n],HIGH);  delay(tiempo);  digitalWrite (leds[n],LOW);  delay(tiempo); } fo...

4. SOS con zumbador. (Solución 1 y 2)

Imagen
Se trata de un zumbador que en código morse (pitidos largos/cortos) especifica una palabra, en nuestro caso SOS. Para el que no lo sepa, la S son tres señales acústicas de corta duración y la O tres señales acústica de larga duración. El zumbador debe estar conectado al pin 13, los pitidos cortos tendrán una duración de 100 ms y los largos 300 ms. Entre letra y letra debe pasar un tiempo de 300 ms y entre SOSs debe haber un tiempo de 1000 ms. Nota: Debes usar variables para guardar los tiempos que vas a usar. Objetivos: • Reconocer partes de la placa. • Aprender a conexionar un zumbador a la placa. • Familiarizarse con el entorno de programación. • Reconocer las partes de un programa de arduino. • Aprender a como declarar variables. • Conocer órdenes de control de programa como: for. Solución 1: int corto=100; //Declara la variable de argumento entero "corto" y la inicializa con el valor 100 (letra S) int pausa=300;//tiempo entre letra y letra int largo=300; //v...

3. Cruce de semáforos.

Imagen
Se trata de un cruce de semáforos controlado por arduino, para ello utilizaremos en el primer semáforo los pines 3 (led rojo), 4 (led ambar), 5 (led verde), en el segundo semáforo utilizaremos los pines 6 (led rojo), 7 (led ambar) y 8 (led verde). La secuencia de funcionamiento debe ser : rojo 1 – verde 2 durante 3 segundos, rojo 1 – ambar 2 durante 500 ms, verde 1 – rojo 2 durante 3 segundos, ambar 1 - , rojo 2 durante 500 ms. Objetivos: • Familiarizarse con el entorno de programación. • Aprender a declarar variables tipo lista de valores. Solución: int leds[]={3,4,5,6,7,8); int tiempo1=3000; int tiempo2=500; int n; void setup() { for (n=0;n<6;n++) { pinMode (leds[n],OUTPUT); } } void loop () { digitalWrite (leds[0],HIGH); digitalWrite (leds[5],HIGH); delay (tiempo1); digitalWrite (leds[5],LOW); digitalWrite (leds[4],HIGH); delay (tiempo2); digitalWrite[leds[0],LOW); digitalWrite (leds[2],HIGH); digitalWrite (leds[4],LOW); digitalWrite (leds[3],HIGH); del...

2. Secuencia de leds. (Solución 1,2 y 3)

Imagen
Se trata de encender y apagar 4 leds secuencialmente. Los leds deben estar conectados a los pines 5,6,7 y 8. Se deben encender y posteriormente apagar los leds desde el pin 5 al 8, con un tiempo de duración de encendido y apagado de 200 milisegundos. Nota: en una segunda solución la secuencia principal del programa debe estar reproducida en una función a la que llamará el programa principal. Objetivos: • Familiarizarse con el entorno de programación. • Aprender a declarar variables y variables tipo lista de valores. • Aprender a declarar una función y llamarla cuando sea necesario. Solución 1: int tiempo=200; //declara una variable como entero y de valor 200 void setup() { //comienza la configuracion pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); } void loop() { //comienza el bucle principal del programa digitalWrite(5,HIGH); delay(tiempo); digitalWrite(5,LOW); delay(tiempo); digitalWrite(6,HIGH); delay(tiempo); digitalWrite(6,LOW); d...

1. Led parpadeante.

Imagen
Se trata de conectar un led al pin13, haciendo que luzca durante 500 ms y que se apague durante 100 ms, este proceso se repetirá cíclicamente. Objetivos: • Reconocer partes de la placa. • Aprender a conexionar leds a la placa. • Familiarizarse con el entorno de programación. • Reconocer las partes de un programa de arduino. • Conocer órdenes como: pinMode, digitalWrite y delay Solución: void setup() { //comienza la configuracion pinMode(13, OUTPUT); //configura el pin 13 como de salida } //termina la configuracion void loop() { //comienza el bucle principal del programa digitalWrite(13, HIGH); //envia 5V al pin (salida) 13 delay (500); //espera 500 ms pin 13 con 5V digitalWrite(13, LOW); //envia 0V al pin (salida) 13 delay (100); //espera 100 ms pin 13 con 0V }