jueves, 18 de junio de 2015

PROYECTO FINAL
SENSOR DE TEMPERATURA Y HUMEDAD


EL PROYECTO TRATA SOBRE LA HUMEDAD QUE ES RELATIVA Y LA TEMPERATURA, YA QUE POR MEDIO DE UN SENSOR PODEMOS OBSERVAR COMO LA HUMEDAD Y LA TEMPERATURA VARÍAN.INDICAMOS CÓMO VISUALIZAR LOS VALORES EN EL PROPIO IDE DE DESARROLLO DE ARDUINO (USANDO LA VENTANA DE SERIAL MONITOR). MOSTRAMOS TAMBIÉN CÓMO GUARDAR LOS VALORES OBTENIDOS EN LA MEMORIA EEPROM DE ARDUINO.


MATERIALES

  • 1 ARDUINO UNO



  • CABLE USB

  • PROTOBOARD

  • JUMPERS

  • RESISTENCIAS



  • LCD1602A DISPLAY_I2C


FOTOS








CODIGO EN ARDUINO

  1. El Proyecto Trata Sobre La Humedad Que es Relativa y la Temperatura, ya Que POR Medio de Podemos Sensores ONU OBSERVAR Como La Humedad y la Temperatura Varían. Indicamos CÓMO visualizar los Valores en el propio id de Desarrollo de Arduino ( Usando la ventana de monitorear serie )Mostramos también CÓMO guardar los Valores obtenidos en la memoria EEPROM de Arduino.
  2. Autor : Carolina Hurtado Arboleda
  3.  
  4.  
  5. #include <dht11.h>
  6. // Sensor DHTll: Sensor de Temperatura y Humedad Relativa
  7. int ventilador 12 ;
  8. #include <liquidCrystal.h>
  9. Lcd LiquidCristal 3 , 4 , 5 , 6 , 7 , // inicializar los pinos digitales del Arduino
  10.  
  11. dthll DHT ;
  12. #define DHT11_PIN 2
  13.  
  14.  
  15. void setup {
  16.  Serial. Comenzar 9600 ;
  17.  . lcd Comenzar á 16 , // Configurar de los numeros de la Columnas y filas de la Pantalla LCD
  18.  pinMode ( ventilador, OUTPUT ;
  19.  
  20. }
  21.  
  22.  
  23. void loop {
  24.   // LEER DATOS
  25.   int chk ;
  26.   chk = . DHT leer ( DHT11_PIN ;
  27.  
  28. // Mostrar DATOS
  29. lcd. setCursos 0 , ;
  30. lcd. print "Humedad:" )
  31. lcd de impresión ( . DHT Humedad, l ;
  32. lcd. print "%" ;
  33. lcd. setCursor 0 , ;
  34. lcd de impresión "Temperatura" ;
  35. lcd. println ( . DHT temperatura, )
  36. lcd. print "C" )
  37. si ( DHT. Temperatura 36 {
  38.   . Serie de impresión ( . DHT , temperatura ;
  39.   Serial. print "Fuera de rango" ;
  40.  digitalWrite ( ventilador, LOW ;
  41. } Demás
  42. {
  43.   digitalWrite ( ventilador, LOW ;
  44. }
  45. retardo 1000 ;
  46. }


MONTAJES USANDO FRITZING

  • EN PROTOBOARD


  • EN ESQUEMA

  • EN PCB




VIDEO DEL FUNCIONAMIENTO








miércoles, 17 de junio de 2015

LABORATORIO #7


Controlar desde el Arduino, un Display LED de 7-Segmentos, a través de un IC 74HC595, para mostrar un número de 0 a 9, dependiendo de la posición del Potenciómetro.


MATERIALES

  • 1 ARDUINO UNO


  • 1 CABLE

  • 1 PROTOBOARD

  • CIRCUITO INTEGRADO DE REGISTRO DE DESPLAZAMIENTO 74HC595




  • 1 DISPLAY 7 SEGMENTOS


  • CABLES JUMPERS

  • RESISTENCIAS



DIAGRAMAS USANDO FRITZING

  • EN PROTOBOARD

  • ESQUEMA




LABORATORIO #8

Manipular en la pantalla del computador un objeto gráfico usando Processing, con los datos leídos en el Arduino desde un Joystick shield



MATERIALES

  • 1 JOYSTICK SHIELD

  • 1 ARDUINO UNO

  • CABLE


JUMPERS


GRAFICO PARRAFO MANIPULAR EN PANTALLA



PROCEDIMIENTO

1. TOMAMOS LOS ELEMENTOS Y LOS COLOCAMOS EN LA MESA



2. ACOPLAMIENTO DEL ESCUDO CON EL ARDUINO UNO


CODIGO EN ARDUINO






  1.  * En el Procesamiento, utilizando la ONU escudo joystic.
  2.  * Autor : Carolina Hurtado Arboleda
  3.  /
  4. Char Button0 3 , El Botón 4 , button2 5 , button3 ;
  5. void setup ( Vacío )
  6. {
  7.   pinMode ( Button0, ENTRADA      // pin de entrada al Botón 0
  8.   digitalWrite ( Button0, ALTA ;  
  9.   pinMode ( button3, ENTRADA      // pin de entrada al Botón 3
  10.   digitalWrite ( button3, ALTA ;  
  11.   Serial. Comenzar á 9600           // Activamos El Puerto de sèrie baño 9600 bps
  12. }
  13. void loop ( Vacío )
  14. {
  15.   // Envia DATOS Procesamiento un, dependiendo de la accion Realizada en el joystickShield
  16.   si ( analogRead 800 )
  17.    {
  18.       Serial. de impresión ;
  19.    }  
  20.     Otra Cosa si ( analogRead 200 )
  21.     {
  22.        Serial. de impresión ;  
  23.     }
  24.   si ( analogRead 800 )
  25.    {
  26.       Serial. de impresión ;
  27.    }  
  28.     Otra Cosa si ( analogRead 200 )
  29.     {
  30.        Serial. de impresión ;  
  31.     }
  32.    
  33.     si ( digitalRead ( Button0 == )
  34.    {
  35.       Serial. de impresión ;
  36.    }  
  37.    
  38.    si ( digitalRead ( button3 == )
  39.     {
  40.        Serial. de impresión ;  
  41.     }
  42.    
  43.   // ESPERAMOS 10 ms Seguir parrafo el bucle
  44.  de retardo 10 ;
  45. }


CODIGO EN PROCESSING



  1.  * En el Procesamiento, utilizando la ONU escudo joystic.
  2.  * Autor : Carolina Hurtado Arboleda
  3.  /
  4. Importación controlP5. ;
  5. Procesamiento de Importación. de serie. ;
  6. Img PImage ;
  7. int EW2, IH2 ;
  8. int posX, posY ;
  9. int velocity, el ángulo ;
  10. Serie de serie ;
  11. void setup {
  12.   // Tamaño de la Ventana
  13.   Tamaño 800 , 600 ;
  14.   // Carga la imagen en la variable de de
  15.   img = loadImage "spaceship02.gif" ;
  16.   EW2 = . img Anchura ;
  17.   IH2 = . img altura ;
  18.   posX ( Anchura - EW2 ;
  19.   posY ( altura - IH2 ;
  20.   Velocidad ;
  21.   ángulo ;
  22. }
  23. void draw {
  24.   // Limpia la ventana
  25.   fondo ;
  26.   posX = velocity * sen ( radianes ( ángulo ;
  27.   si ( posX - EW2 ) posX = Anchura ;
  28.   si ( posX - EW2 > ancho ) posX = EW2 ;
  29.   posY = velocity cos ( radianes ( ángulo ;
  30.   si ( posY - IH2 ) posY = altura ;
  31.   si ( posY - IH2 > altura ) posY = IH2 ;
  32.   // Dibuja la imagen
  33.   pushMatrix ;
  34.   translate ( posX - EW2, posY - IH2 ;
  35.   rotar ( radianes - ángulo ;
  36.   imagen ( img, - EW2, - IH2 ;
  37.   popMatrix ;
  38. }
  39. void keyPressed {
  40.   si ( clave == CODIFICÓ {
  41.     si ( keyCode == UP )
  42.       velocity ;    
  43.     si ( keyCode == ABAJO )
  44.       Velocidad ;
  45.     si ( keyCode == IZQUIERDA )
  46.       ángulo ;    
  47.     si ( keyCode == DERECHA )
  48.       ángulo de ;
  49.   }    
  50. }


DIAGRAMA USANDO FRITZING

  • EN PROTOBOARD

  • EN ESQUEMA

  • EN PCB





VIDEO DEL FUNCIONAMIENTO




LABORATORIO #9

Controlar desde una interfaz en Processing, el patrón de movimiento y colores en un módulo de 8 LEDs RGB controlado con un Arduino

MATERIALES


  • 1 ARDUINO UNO

  • MODULO LEDS RGB


  • INTERFAZ EN PROCESAMIENTO
  • JUMPERS

  • CABLE USB


PASO A PASO


1. DISPONEMOS LOS MATERIALES EN LA MESA


2. CONECTAMOS LOS CABLES AL ARDUINO





DIAGRAMAS USANDO FRITZIN

  • EN PROTOBOAR

  • EN ESQUEMA
  • EN PCB


VIDEO DEL FUNCIONAMIENTO








LABORATORIO #10

Mostrar un mensaje desplazándose de izquierda a derecha en una matriz LED 8x8 a través de IC MAX7219 enviado desde un Arduino, pueden usar una interfaz Processing.

MATERIALES

  • 1 ARDUINO UNO

  • 1 CABLE USB

  • 1 MATRIZ 8x8 LED

  • 1 INTEGRADO IC MAX7219

  • PROTOBOARD

  • JUMPERS




PASO A PASO

SE PONEN LOS MATERIALES EN LA MESA Y SE MONTA LA MATRIX




DIAGRAMAS EN FRITZING

  • EN PROTOBOARD

  • EN ESQUEMA

  • EN PCB


CODIGO EN ARDUINO


  • Lab 10: Mostrar un mensaje desplazándose de izquierda a derecha en una matriz LED 8x8 a través de IC MAX7219 enviado desde un Arduino, pueden usar una interfaz Processing.
    1. Autor: Carolina Hurtado Arboleda
    2.  
    3. * /
    4. // Siempre tenemos que incluir la biblioteca
    5. #include "LedControl.h"
    6. Texto Cadena = "Ingrese Texto:" ;
    7. / *
    8.  Ahora necesitamos un LedControl trabajar.
    9.  ***** Estos números de pin es probable que no funcione con el hardware *****
    10.  pin 12 está conectado a la DataIn
    11.  pin 11 está conectado a la CLK
    12.  pin 10 está conectado a CARGAR
    13.  Tenemos un solo MAX72XX.
    14.  * /
    15. LedControl lc = LedControl ( 12 , 11 , 10 , 1 ) ;
    16.  
    17. / * Siempre esperamos un poco entre las actualizaciones de la pantalla * /
    18. sin firmar larga DELAYTIME = 30
    19. ;
    20.  
    21. void setup ( ) {
    22.   Serial. comenzar ( 9600 ) ;
    23.   / *
    24.    El MAX72XX está en modo de ahorro de energía en el arranque,
    25.    tenemos que hacer una llamada de atención
    26.    * /
    27.   lc. apagado ( 0 , false ) ;
    28.   / * Establecer el brillo a un valor medio * /
    29.   lc. setIntensity ( 0 , 8 ) ;
    30.   / * Y borrar la pantalla * /
    31.   . lc clearDisplay ( 0 ) ;
    32. }
    33. char abcMAY [ 36 ] = { 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' , 'I' , 'J' , 'K' , 'L' , 'M' , 'N' , 'O' , 'P' , 'Q' , 'R' , 'S' , 'T' ,'U' , 'V' , 'W' , 'X' , 'Y' , 'Z' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' } ;
    34. char abcMIN [ 36 ] = { 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' ,'u' , 'v' , 'w' , 'x' , 'y' , 'z' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '0' } ;
    35. letras byte [ 36 ] [ 5 ] = { { B11111110 , B00010001 , B00010001 , B00010001 , B11111110 } , // A
    36.   { 0xFF , 0x89 , 0x89 , 0x89 , 0x76 } , // B
    37.   { B01111110 , B10000001 , B10000001 , B10000001 , B01000110 } , C //
    38.   { 0xff , 0x81 , 0x81 , 0x81 , 0x7e } , // D
    39.   { 0x7e , 0x89 , 0x89 , 0x89 , 0x89 } , // E
    40.   { 0xff , 0x09 , 0x09 , 0x09 , 0x01 } , // F
    41.   { 0x7e , 0x89 , 0x89 , 0x89 , 0xF2 } , // G
    42.   { 0xFF , 0x18 , 0x18 , 0x18 , 0xff } , // H
    43.   { B00000000 , B10000100 , B11111101 , B10000000 , B00000000 } , // I
    44.   { 0x71 , 0x81 , 0x7f , 0x01 , 0x01 } , // J
    45.   { 0xff , 0x10 , 0x2c , 0x42 , 0x81 } , // K
    46.   { 0x7f , 0xC0 , 0x80 , 0x80 , 0x80 } , // L
    47.   { 0xff , 0x06 , 0x0c , 0x06 , 0xff } , // M
    48.   { B11111111 , B00000100 , B00001000 , B00010000 , B11111111 } , N //
    49.   { B01111110 , B10000001 , B10000001 , B10000001 , B01111110 } , // O
    50.   { 0xff , 0x09 , 0x09 , 0x09 , 0x06 } , // P
    51.   { 0xBE , 0x41 , 0xA1 , 0x81 , 0x7e } , // Q
    52.   { B11111111 , B00010001 , B00110001 , B01010001 , B10001110 } , R //
    53.   { 0x86 , 0x89 , 0x89 , 0x89 , 0x71 } , // S
    54.   { 0x01 , 0x01 , 0xff , 0x01 , 0x01 } , // T
    55.   { B01111111 , B11000000 , B11000000 , B11000000 , B01111111 } , // U
    56.   { 0x3f , 0x40 , 0x80 , 0x40 , 0x3f } , // V
    57.   { 0x7f , 0x80 , 0x70 , 0x80 , 0x7f } , // W
    58.   { 0xE3 , 0x14 , 0x08 , 0x14 , 0xE3 } , // X
    59.   { 0x03 , 0x04 , 0xF8 , 0x04 , 0x03 } , // Y
    60.   { 0xE1 , 0x91 , 0x89 , 0x85 , 0x83 } // Z
    61.  
    62.   , { 0x00 , 0x82 , 0xff , 0x80 , 0x00 } , // 1
    63.   { 0xC2 , 0xA1 , 0x91 , 0x89 , 0x86 } , // 2
    64.   { 0x81 , 0x81 , 0x85 , 0x8B , 0x71 } , // 3
    65.   { 0x18 , 0x14 , 0x12 , 0xff , 0x00 } , // 4
    66.   { 0x8F , 0x89 , 0x89 , 0x89 , 0x71 } , // 5
    67.   { 0x7c , 0x8A , 0x89 , 0x89 , 0x70 } , // 6
    68.   { 0x01 , 0xf1 , 0x09 , 0x05 , 0x03 } , // 7
    69.   { 0x76 , 0x89 , 0x89 , 0x89 , 0x76 } , // 8
    70.   { 0x06 , 0x89 , 0x89 , 0x89 , 0x7e } , // 9
    71.   { B01111110 , B11100001 , B10011001 , B10000111 , B01111110 } , // O
    72. } ;
    73. / *
    74.  Este método mostrará los caracteres para el
    75.  palabra "Arduino" uno tras otro en la matriz.
    76.  (Se necesitan al menos leds 5x7 para ver todo el caracteres)
    77.  * /
    78. void writeArduinoOnMatrix ( Cadena mensajea ) {
    79.   / * Aquí es los datos de los caracteres * /
    80.  
    81.  
    82.  para ( int j = 0 ; j < . mensajea longitud ( ) ; j ++ ) {
    83.    para ( int k = 0 ; k < 36 ; k ++ ) {
    84.  si ( mensajea. charAt ( j ) == abcMAY [ k ] || mensajea. charAt ( j ) == abcMIN [ k ] ) {
    85.  Palabras ( letras [ k ] ) ;
    86.  }
    87.  }
    88.  }
    89.  
    90. }
    91. void Palabras ( listd byte [ ] ) {
    92.   para ( int j = 7 ; j > - 4 ; j - ) {
    93.    
    94.   para ( int i = 4 ; i > - 1 ; i - ) {
    95.   . lc setRow ( 0 , j + i , listd [ i ] ) ;
    96.   }
    97.   retardo ( DELAYTIME ) ;
    98.   para ( int o = 0 ; o < 8 ; o ++ ) {
    99.   lc. setRow ( 0 , O , 0 ) ;
    100.   }
    101.   }
    102. }
    103.  
    104. void loop ( ) {
    105.   writeArduinoOnMatrix ( texto ) ;
    106.  
    107. }
    108.  
    109. void serialEvent ( ) {
    110. mientras que ( de serie. disponible ( ) ) {
    111. texto = de serie. readString ( ) ;
    112. }
    113. }

    CODIGO EN PROCESSING



  • Lab 10 : Mostrar UN MENSAJE desplazándose de izquierda a Derecha del una matriz de 8x8 LED un Través de IC MAX7219 Enviado from ONU Arduino, pueden USAR Una Interfaz de procesamiento.
    1. Autor : Carolina Hurtado Arboleda
    2.  
    3. /
    4.  Procesamiento de Importación. de serie. ;
    5. Importación controlP5. ;
    6.  
    7. CP5 ControlP5 ;
    8. Textarea myTextArea ;
    9. Cadena textValue "" ;
    10. Serie de serie ;
    11. void setup {
    12.   Tamaño 700 , 400 ;
    13.  
    14.   Fuente PFont = CreateFont "arial" , 20 ;
    15.  
    16.   CP5 = nueva ControlP5 ( this ;
    17.  
    18.   CP5. addTextfield "entrada" )
    19.      . setPosition 20 , 100 )
    20.      . setSize 200 , 40 )
    21.      . setFont ( fuente )
    22.      . setFocus ( Verdadera )
    23.      . setColor ( de Color 255 , 0 , )
    24.      ;
    25.                  
    26.  
    27.        
    28.   CP5. addBang "clear" )
    29.      . setPosition 240 , 170 )
    30.      . setSize 80 , 40 )
    31.      . getCaptionLabel ) . alinee ( ControlP5. CENTRO ,. ControlP5 CENTRO )
    32.      ;    
    33.     myTextArea = CP5. addTextarea "txt" )
    34.                   . setPosition 20 , 70 )
    35.                   . setSize 200 , 20 )
    36.                   . setFont ( CreateFont "arial" , 12 )
    37.                   . setLineHeight 14 )
    38.                   . setColor ( de colores 128 )
    39.                   . setColorBackground ( de colores 255 , 100 )
    40.                   . setColorForeground ( de Color 255 , 100 ;
    41.                   ;
    42.                  
    43.     myTextArea. setText "Solo Letras de la AZ y Numeros Positivos"
    44.                     ;
    45.  
    46.      serie = nueva serie ( ESTO, de serie. Lista ] , 9600 ;
    47.   textFont ( fuente ;
    48. }
    49.  
    50. void draw {
    51.   fondo ;
    52.   llenar 255 ;
    53.   texto ( . CP5 CONSEGUIR ( . TextField clase , "entrada" ) . getText ) , 360 , 130 ;
    54.   texto ( textValue, 360 , 180 ;
    55. }
    56.  
    57. pública Vacío claro {
    58.   . CP5 CONSEGUIR ( . TextField clase , "entrada" ) . claro ;
    59. }
    60.  
    61. anular ControlEvent ( ControlEvent TheEvent {
    62.   si ( TheEvent. isAssignableFrom ( TextField. clase {
    63.     serie. Escribir "" + TheEvent. GetStringValue  ;
    64.     }
    65. }


    VIDEO DEL FUNCIONAMIENTO