sábado, 12 de noviembre de 2016

LABORATORIO #8

DESCRIPCIÓN

Mostrar En Una Interfaz de Procesamiento La Temperatura y Humedad ( DTH11 ), y El Nivel de Iluminación capturado con Una  fotoresistencia  (LDR, CdS): Medidas de las Naciones Unidas Través de la Unidad ONU Arduino.

MATERIALES DEL LABORATORIO 

-  Computador con placa el IDE de Arduino y el Controlador de Nuestra
- Arduino Uno
- Placa protoboard
- Fotoresistencia (LDR)
- Resistencia 10K Ω
- Cables Macho - Macho
- Sensor DHT11


DIAGRAMAS


FOTOS MATERIALES Y MONTAJE














CÓDIGO

ARDUINO
  1. /*
  2. ********** Arduino **********
  3. */
  4. #include <dht.h>
  5. #define dht_apin A0
  6. dht DHT;
  7. int pinLDR = A1;
  8. int valorLDR = 0;  
  9. void setup(){
  10.   Serial.begin(9600);
  11. }
  12. void loop(){
  13.   valorLDR= analogRead(A1);
  14.   DHT.read11(dht_apin);
  15.   Serial.print(DHT.temperature);
  16.   Serial.print(".");
  17.   Serial.print(DHT.humidity);
  18.   Serial.print(".");
  19.   Serial.println(valorLDR);
  20.   delay(1000);
  21. }


PROCESSING


  1. /*
  2. ********** Processing **********
  3.  * Laboratorio 08
  4.  * 
  5. */
  6. import processing.serial.*;
  7. Serial myPort;
  8. String sensorReading="0.0.0.0.0";
  9. PImage fondo;
  10. void setup() {
  11.   size(600, 600);
  12.   fondo = loadImage("fondo.jpg");
  13.   String portName = Serial.list()[0];
  14.   myPort = new Serial(this, portName, 9200);
  15.   myPort.bufferUntil('\n');
  16. }
  17. void draw() {
  18.   background(255);
  19.   image(fondo, 0, 0);
  20.   int sensors[] = int(split(sensorReading, '.'));
  21.   drawTemp(sensors[0]);
  22.   drawHumedad(sensors[2]);
  23.   drawIluminacion(sensors[4]);
  24.   fill(0);
  25.   textSize(14);
  26.   text("Sistema de medición", 10, 500);
  27.   println("Temperatura: "+sensors[0]+" - Humedad: "+sensors[2]+" - Iluminación: "+sensors[4]);
  28. }
  29. void drawTemp(int temp){
  30.   // la temperatura va de -40º a 50º centigrados
  31.   int altura = (int) map(temp, -40, 50, 0, -295);
  32.   stroke(255, 0, 0);
  33.   fill(255, 0, 0);
  34.   rect(83, 400, 8, altura);
  35. }
  36. void drawHumedad(int hum){
  37.   int cx = 323, cy = 146, radio = 100;
  38.   // la humedad va de 0% a 100%
  39.   float angulo = map(hum, 0, 100, -240, 60) * (PI/180);
  40.   stroke(250,48,48);
  41.   strokeWeight(4);
  42.   line(cx, cy, cx + cos(angulo) * radio, cy + sin(angulo) * radio);
  43. }
  44. void drawIluminacion(int ilum){
  45.   int cx = 323, cy = 475, radio = 130;
  46.   // la potencia de la luz va de 0 a 100 en una escala de 10x
  47.   float angulo = map(ilum/10, 0, 200, -140, 60) * (PI/180);
  48.   stroke(250,48,48);
  49.   strokeWeight(4);
  50.   line(cx, cy, cx + cos(angulo) * radio, cy + sin(angulo) * radio);
  51. }
  52. void serialEvent (Serial myPort){
  53.   sensorReading = myPort.readStringUntil('\n');
  54.   if(sensorReading != null){
  55.     sensorReading=trim(sensorReading);
  56.   }
  57. }

jueves, 13 de octubre de 2016

LABORATORIO # 7

DESCRIPCIÓN

En este laboratorio desde el arduino en donde se controlara un LED RGB, lo cual se debe manejar la intensidad de luz de cada uno de los colores ("Rojo";"Verde";"Azul"), del led para obtener diferentes combinaciones de colores, para poder combinarlos utilizaremos el software Processing, es decir, manipularemos la cantidad de luz para cada color para el rojo,verde y azul; esta variable de entrada debemos acomodarla dentro de un rango de (0 a 255), debido a que el led funciona con valores PWM y este es el rango total de esta modulación, por esta razón los pines RGB del led deben ir conectados a salidas PWM del arduino.

MATERIALES DEL LABORATORIO 

Arduino
Protoboard.
Resistencias de 220 Ohmios.
Led RGB.
Kit de cables para arduino.


MATERIALES DEL LABORATORIO 


    DIAGRAMAS

    PROTOBOARD




    FOTOS MATERIALES Y MONTAJE

































    CÓDIGO

    ARDUINO
    1. #define MAXLED 3 //creamos la variable maxled 3 elementos
    2.      
    3.     int led[MAXLED] = {3,5,6}; //creamos un vector para los pines a utilizar
    4.     int valor = 0; //creamos la variable valor 1 de tipo entero
    5.     int i = 0; //creamos la variable valor 1 de tipo entero
    6.      
    7.      
    8.     void setup()
    9.     {
    10.       Serial.begin(9600); // la comunicacion serial sera a 9600 baudios
    11.       for(int i = 0; i < MAXLED ; i++)
    12.       {
    13.         pinMode(led[i], OUTPUT); // los pines del 3,5,6 seran de salida
    14.       }
    15.     }
    16.      
    17.     void loop()
    18.     {
    19.       if(Serial.available() > 0) // si hay datos en el puerto serial entra a la condicion
    20.       {
    21.         valor = Serial.read(); // lee lo que hay en el puerto serial
    22.         if(valor == 'R')
    23.           i = 0;
    24.         if(valor == 'G')
    25.           i = 1;
    26.         if(valor == 'B')
    27.           i = 2;
    28.         valor = Serial.parseInt(); // lee y toma el siguiente valor convirtiandolo en entero
    29.         analogWrite(led[i], valor); // escribe el valor por el pin xx
    30.       }
    31.      
    32.     }

    PROCESSING

    1. import controlP5.*;         // utilizar la libreria controlp5
    2. import processing.serial.*;  // utilizar la liberia processing.serial
    3. ControlP5 cp5;                 // definir la variable cp5 del tipo ControlP5
    4. Knob rojo, verde, azul;        // definir la variable rojo,verde y azul del tipo Knob
    5. Textlabel texto1, texto2, texto3, texto4; // definir las variables texto del tipo Textlabel
    6. Serial serial;                // definir la variable serial del tipo Serial
    7.  
    8. // configuración inicial
    9. void setup()
    10. {
    11. serial = new Serial(this, Serial.list()[0],9600);  // inicializamos el puerto serial a 9600 baudios
    12. String puerto = Serial.list()[0];                  //definimos la variable puerto de tipo cadena
    13. size(600,380);                       // tamaño de la ventana
    14. cp5 = new ControlP5(this);          // crear el objeto ControlP5
    15.  
    16. // crear el knob para la intensidad de color rojo
    17. rojo = cp5.addKnob("R",0,255,0,70,120,100);
    18. rojo.setColor(new CColor(0xFFAA0000, 0xFF550000, 0xFFFF0000,0xFFFFFFFF, 0xFFFFFFFF));
    19.  
    20. // crear el knob para la intensidad de color verde
    21. verde = cp5.addKnob("G",0,255,0,260,120,100);
    22. verde.setColor(new CColor(0xFF00AA00, 0xFF005500,0xFF00FF00, 0xFFFFFFFF, 0xFFFFFFFF));
    23.  
    24. // crear el knob para la intensidad de color azul
    25. azul = cp5.addKnob("B",0,255,0,450,120,100);
    26. azul.setColor(new CColor(0xFF0000AA, 0xFF000055, 0xFF0000FF,0xFFFFFFFF, 0xFFFFFFFF));
    27.  
    28. // crear texto
    29. texto1 = cp5.addTextlabel("label")
    30.                     .setText("CONTROLES DEL LED RGB")
    31.                     .setPosition(20,30)
    32.                     .setColorValue(0xffffffFF)
    33.                     .setFont(createFont("Comic Sans MS",40))
    34.                     ;
    35.                    
    36. texto2 = cp5.addTextlabel("label1")
    37.                     .setText("Rojo")
    38.                     .setPosition(95,235)
    39.                     .setColorValue(0xffffffFF)
    40.                     .setFont(createFont("Comic Sans MS",15))
    41.                     ;              
    42.    
    43. texto3 = cp5.addTextlabel("label2")
    44.                     .setText("Verde")
    45.                     .setPosition(280,235)
    46.                     .setColorValue(0xffffffFF)
    47.                     .setFont(createFont("Comic Sans MS",15))
    48.                     ;
    49.                    
    50. texto4 = cp5.addTextlabel("label3")
    51.                     .setText("Azul")
    52.                     .setPosition(475,235)
    53.                     .setColorValue(0xffffffFF)
    54.                     .setFont(createFont("Comic Sans MS",15))
    55.                     ;              
    56.  
    57. // otra forma de crear texto
    58. texto4 = new Textlabel(cp5,"",40,280,600,200);  
    59. texto4.setFont(createFont("MV Boli",15));
    60.  
    61. }
    62.  
    63. void draw()
    64. {
    65. background(10,10,10);  // color de fondo de la ventana
    66.  texto4.draw(this);    // introduce el texto en la ventana
    67.  
    68. }
    69.  
    70. void controlEvent (ControlEvent evento)  // se activa cuando ocurra un evento con los botones
    71. {
    72. String nombre = evento.getController().getName();   // recoje el nombre del slider y lo convierte en cadena
    73. int valor = int(evento.getController().getValue());   // recoje el valor del slider y lo convierte en entero
    74. serial.write(nombre + ":" + valor);   // envia por el puerto serial el nombre y el valor
    75. println(nombre + ":" + valor);    // imprime por pantalla el nombre y el valor
    76. }