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
- 1 CIRCUITO INTEGRADO DE REGISTRO DE DESPLAZAMIENTO 74HC595
- 1 DISPLAY 7 SEGMENTOS
- CABLES JUMPERS
- RESISTENCIAS
DIAGRAMAS USANDO FRITZING
- EN PROTOBOARD
- ESQUEMA
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
- * En el Procesamiento, utilizando la ONU escudo joystic.
- * Autor : Carolina Hurtado Arboleda
- * /
- Char Button0 = 3 , El Botón 1 = 4 , button2 = 5 , button3 = 6 ;
- void setup ( Vacío )
- {
- pinMode ( Button0, ENTRADA ) ; // pin de entrada al Botón 0
- digitalWrite ( Button0, ALTA ) ;
- pinMode ( button3, ENTRADA ) ; // pin de entrada al Botón 3
- digitalWrite ( button3, ALTA ) ;
- Serial. Comenzar á ( 9600 ) ; // Activamos El Puerto de sèrie baño 9600 bps
- }
- void loop ( Vacío )
- {
- // Envia DATOS Procesamiento un, dependiendo de la accion Realizada en el joystickShield
- si ( analogRead ( 1 ) > 800 )
- {
- Serial. de impresión ( 1 ) ;
- }
- Otra Cosa si ( analogRead ( 1 ) < 200 )
- {
- Serial. de impresión ( 2 ) ;
- }
- si ( analogRead ( 0 ) > 800 )
- {
- Serial. de impresión ( 3 ) ;
- }
- Otra Cosa si ( analogRead ( 0 ) < 200 )
- {
- Serial. de impresión ( 4 ) ;
- }
- si ( digitalRead ( Button0 ) == 0 )
- {
- Serial. de impresión ( 5 ) ;
- }
- si ( digitalRead ( button3 ) == 0 )
- {
- Serial. de impresión ( 6 ) ;
- }
- // ESPERAMOS 10 ms Seguir parrafo el bucle
- de retardo ( 10 ) ;
- }
CODIGO EN PROCESSING
- * En el Procesamiento, utilizando la ONU escudo joystic.
- * Autor : Carolina Hurtado Arboleda
- * /
- Importación controlP5. * ;
- Procesamiento de Importación. de serie. * ;
- Img PImage ;
- int EW2, IH2 ;
- int posX, posY ;
- int velocity, el ángulo ;
- Serie de serie ;
- void setup ( ) {
- // Tamaño de la Ventana
- Tamaño ( 800 , 600 ) ;
- // Carga la imagen en la variable de de
- img = loadImage ( "spaceship02.gif" ) ;
- EW2 = . img Anchura / 2 ;
- IH2 = . img altura / 2 ;
- posX = ( Anchura / 2 ) - EW2 ;
- posY = ( altura / 2 ) - IH2 ;
- Velocidad = - 5 ;
- ángulo = 0 ;
- }
- void draw ( ) {
- // Limpia la ventana
- fondo ( 0 ) ;
- posX + = velocity * sen ( radianes ( ángulo ) ) ;
- si ( posX - EW2 < 0 ) posX = Anchura ;
- si ( posX - EW2 > ancho ) posX = EW2 ;
- posY + = velocity * cos ( radianes ( ángulo ) ) ;
- si ( posY - IH2 < 0 ) posY = altura ;
- si ( posY - IH2 > altura ) posY = IH2 ;
- // Dibuja la imagen
- pushMatrix ( ) ;
- translate ( posX - EW2, posY - IH2 ) ;
- rotar ( radianes ( - ángulo ) ) ;
- imagen ( img, - EW2, - IH2 ) ;
- popMatrix ( ) ;
- }
- void keyPressed ( ) {
- si ( clave == CODIFICÓ ) {
- si ( keyCode == UP )
- velocity - = 5 ;
- si ( keyCode == ABAJO )
- Velocidad + = 5 ;
- si ( keyCode == IZQUIERDA )
- ángulo + = 5 ;
- si ( keyCode == DERECHA )
- ángulo de - = 5 ;
- }
- }
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.
- Autor: Carolina Hurtado Arboleda
- * /
- // Siempre tenemos que incluir la biblioteca
- #include "LedControl.h"
- Texto Cadena = "Ingrese Texto:" ;
- / *
- Ahora necesitamos un LedControl trabajar.
- ***** Estos números de pin es probable que no funcione con el hardware *****
- pin 12 está conectado a la DataIn
- pin 11 está conectado a la CLK
- pin 10 está conectado a CARGAR
- Tenemos un solo MAX72XX.
- * /
- LedControl lc = LedControl ( 12 , 11 , 10 , 1 ) ;
- / * Siempre esperamos un poco entre las actualizaciones de la pantalla * /
- sin firmar larga DELAYTIME = 30
- ;
- void setup ( ) {
- Serial. comenzar ( 9600 ) ;
- / *
- El MAX72XX está en modo de ahorro de energía en el arranque,
- tenemos que hacer una llamada de atención
- * /
- lc. apagado ( 0 , false ) ;
- / * Establecer el brillo a un valor medio * /
- lc. setIntensity ( 0 , 8 ) ;
- / * Y borrar la pantalla * /
- . lc clearDisplay ( 0 ) ;
- }
- 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' } ;
- 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' } ;
- letras byte [ 36 ] [ 5 ] = { { B11111110 , B00010001 , B00010001 , B00010001 , B11111110 } , // A
- { 0xFF , 0x89 , 0x89 , 0x89 , 0x76 } , // B
- { B01111110 , B10000001 , B10000001 , B10000001 , B01000110 } , C //
- { 0xff , 0x81 , 0x81 , 0x81 , 0x7e } , // D
- { 0x7e , 0x89 , 0x89 , 0x89 , 0x89 } , // E
- { 0xff , 0x09 , 0x09 , 0x09 , 0x01 } , // F
- { 0x7e , 0x89 , 0x89 , 0x89 , 0xF2 } , // G
- { 0xFF , 0x18 , 0x18 , 0x18 , 0xff } , // H
- { B00000000 , B10000100 , B11111101 , B10000000 , B00000000 } , // I
- { 0x71 , 0x81 , 0x7f , 0x01 , 0x01 } , // J
- { 0xff , 0x10 , 0x2c , 0x42 , 0x81 } , // K
- { 0x7f , 0xC0 , 0x80 , 0x80 , 0x80 } , // L
- { 0xff , 0x06 , 0x0c , 0x06 , 0xff } , // M
- { B11111111 , B00000100 , B00001000 , B00010000 , B11111111 } , N //
- { B01111110 , B10000001 , B10000001 , B10000001 , B01111110 } , // O
- { 0xff , 0x09 , 0x09 , 0x09 , 0x06 } , // P
- { 0xBE , 0x41 , 0xA1 , 0x81 , 0x7e } , // Q
- { B11111111 , B00010001 , B00110001 , B01010001 , B10001110 } , R //
- { 0x86 , 0x89 , 0x89 , 0x89 , 0x71 } , // S
- { 0x01 , 0x01 , 0xff , 0x01 , 0x01 } , // T
- { B01111111 , B11000000 , B11000000 , B11000000 , B01111111 } , // U
- { 0x3f , 0x40 , 0x80 , 0x40 , 0x3f } , // V
- { 0x7f , 0x80 , 0x70 , 0x80 , 0x7f } , // W
- { 0xE3 , 0x14 , 0x08 , 0x14 , 0xE3 } , // X
- { 0x03 , 0x04 , 0xF8 , 0x04 , 0x03 } , // Y
- { 0xE1 , 0x91 , 0x89 , 0x85 , 0x83 } // Z
- , { 0x00 , 0x82 , 0xff , 0x80 , 0x00 } , // 1
- { 0xC2 , 0xA1 , 0x91 , 0x89 , 0x86 } , // 2
- { 0x81 , 0x81 , 0x85 , 0x8B , 0x71 } , // 3
- { 0x18 , 0x14 , 0x12 , 0xff , 0x00 } , // 4
- { 0x8F , 0x89 , 0x89 , 0x89 , 0x71 } , // 5
- { 0x7c , 0x8A , 0x89 , 0x89 , 0x70 } , // 6
- { 0x01 , 0xf1 , 0x09 , 0x05 , 0x03 } , // 7
- { 0x76 , 0x89 , 0x89 , 0x89 , 0x76 } , // 8
- { 0x06 , 0x89 , 0x89 , 0x89 , 0x7e } , // 9
- { B01111110 , B11100001 , B10011001 , B10000111 , B01111110 } , // O
- } ;
- / *
- Este método mostrará los caracteres para el
- palabra "Arduino" uno tras otro en la matriz.
- (Se necesitan al menos leds 5x7 para ver todo el caracteres)
- * /
- void writeArduinoOnMatrix ( Cadena mensajea ) {
- / * Aquí es los datos de los caracteres * /
- para ( int j = 0 ; j < . mensajea longitud ( ) ; j ++ ) {
- para ( int k = 0 ; k < 36 ; k ++ ) {
- si ( mensajea. charAt ( j ) == abcMAY [ k ] || mensajea. charAt ( j ) == abcMIN [ k ] ) {
- Palabras ( letras [ k ] ) ;
- }
- }
- }
- }
- void Palabras ( listd byte [ ] ) {
- para ( int j = 7 ; j > - 4 ; j - ) {
- para ( int i = 4 ; i > - 1 ; i - ) {
- . lc setRow ( 0 , j + i , listd [ i ] ) ;
- }
- retardo ( DELAYTIME ) ;
- para ( int o = 0 ; o < 8 ; o ++ ) {
- lc. setRow ( 0 , O , 0 ) ;
- }
- }
- }
- void loop ( ) {
- writeArduinoOnMatrix ( texto ) ;
- }
- void serialEvent ( ) {
- mientras que ( de serie. disponible ( ) ) {
- texto = de serie. readString ( ) ;
- }
- }
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.
- Autor : Carolina Hurtado Arboleda
- * /
- Procesamiento de Importación. de serie. * ;
- Importación controlP5. * ;
- CP5 ControlP5 ;
- Textarea myTextArea ;
- Cadena textValue = "" ;
- Serie de serie ;
- void setup ( ) {
- Tamaño ( 700 , 400 ) ;
- Fuente PFont = CreateFont ( "arial" , 20 ) ;
- CP5 = nueva ControlP5 ( this ) ;
- CP5. addTextfield ( "entrada" )
- . setPosition ( 20 , 100 )
- . setSize ( 200 , 40 )
- . setFont ( fuente )
- . setFocus ( Verdadera )
- . setColor ( de Color ( 255 , 0 , 0 ) )
- ;
- CP5. addBang ( "clear" )
- . setPosition ( 240 , 170 )
- . setSize ( 80 , 40 )
- . getCaptionLabel ( ) . alinee ( ControlP5. CENTRO ,. ControlP5 CENTRO )
- ;
- myTextArea = CP5. addTextarea ( "txt" )
- . setPosition ( 20 , 70 )
- . setSize ( 200 , 20 )
- . setFont ( CreateFont ( "arial" , 12 ) )
- . setLineHeight ( 14 )
- . setColor ( de colores ( 128 ) )
- . setColorBackground ( de colores ( 255 , 100 ) )
- . setColorForeground ( de Color ( 255 , 100 ) ) ;
- ;
- myTextArea. setText ( "Solo Letras de la AZ y Numeros Positivos"
- ) ;
- serie = nueva serie ( ESTO, de serie. Lista ( ) [ 0 ] , 9600 ) ;
- textFont ( fuente ) ;
- }
- void draw ( ) {
- fondo ( 0 ) ;
- llenar ( 255 ) ;
- texto ( . CP5 CONSEGUIR ( . TextField clase , "entrada" ) . getText ( ) , 360 , 130 ) ;
- texto ( textValue, 360 , 180 ) ;
- }
- pública Vacío claro ( ) {
- . CP5 CONSEGUIR ( . TextField clase , "entrada" ) . claro ( ) ;
- }
- anular ControlEvent ( ControlEvent TheEvent ) {
- si ( TheEvent. isAssignableFrom ( TextField. clase ) ) {
- serie. Escribir ( "" + TheEvent. GetStringValue ( ) ) ;
- }
- }
VIDEO DEL FUNCIONAMIENTO
No hay comentarios :
Publicar un comentario