martes, 24 de octubre de 2017

Motor reductor

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
INDIVIDUAL - Motor reductor
Nombre: Christopher Acosta                               Fecha: 24/10/17

Contestar en el blog las preguntas 3 y 4 del moodle.

3. En base a lo observado, infiera acerca de la función del código.

La línea const int control = 9 ; indica en que pin está conectado el transitor (como la constante "control") a la placa Arduino. Este transitor amplificará el voltaje que recibirán el led y el motor reductor.

El siguiente void setup indica que el Arduino enviará señal a la constante "control" a través de uno de sus pines, por eso es OUTPUT:

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

El void loop demuestra el rango del voltaje (o velocidad para el motor) que emitirá el transitor que será desde 0 hasta menos de 255 y luego vuelva a ser 0. Además, el analogWrite será la orden para enviar señal a "control" y éste se demorará 15 milisegundos en leerla.

void loop()
   {
        for ( int n = 0 ; n < 255 ; n++)
          {
              analogWrite (control,  n) ;
              delay(15) ;
          }

   }

4. ¿Para qué sirve el transistor NPN? 
El transistor NPN sirve como amplificador de voltaje.

5. Conecte el teclado para que al presionar A, B o C se pueda controlar diferentes velocidades.
Esta imagen indica la conexión física de los elementos electrónicos incluyendo un transistor. El cable de señal será conectado en el pin 13 del Arduino:

Luego, conectamos el Teclado Arduino en los pines 2 al 9 del Arduino.

Ahora en la programación, se debe incluir la librería Keypad, indicar el pin en que está conectado el transistor. Después, se le dará la variable "n" y luego se escribe el programa del Teclado, indicando en qué pines está conectado. En void setup se pondrá Serial.begin(9600); y  pinMode(control,OUTPUT);


Por otro lado en void loop, se pondrá el if para indicar las condiciones.cuando "pulsación" sea A, el motor vaya a una velocidad. Si es B, irá a otra y lo mismo con C. Se ejecuta la acción con analogWrite(control, n); (ver la siguiente imagen)


Este es un video del motor en movimiento. Lamentablemente en mi motor no se puede apreciar un cambio de velocidad.


martes, 17 de octubre de 2017

Servomotor + Teclado

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
INDIVIDUAL - Servomotor + Teclado
Nombre: Christopher Acosta                               Fecha: 1710/17

Elaborar la bitácora en su blog. Recuerde incluir todo lo que se explicó en clase así como fotografías o videos. En caso de utilizar imágenes de Internet, recuerde poner la referencia (link).

Hoy realizamos una práctica que consistía en hacer que el Servo Motor gire su mariposa si es que hemos pulsado la tecla en el Teclado Arduino para hacer que la gire 90º,180º, etc. Además, la tecla que se haya pulsado se registrará en la pantalla del Display LCD.

Se usaron un motón de cables en la conexión y muchos pines del Arduino. Incluso fue necesario emplear algunos de los pines análogos de éste micro controlador. Por otro lado, se tuvo que fusionar programas Arduino para manejar todos estos elementos electrónicos.


Materiales que usé en ésta práctica:
  • 1 protoboard
  • 1 Servo motor
  • 1 Display LCD
  • 1 Teclado Arduino (con botones)
  • 1 potenciómetro
  • 1 placa Arduino UNO con su cable USB
  • 13 cables macho-macho
  • 12 cables macho-hembra
Pasos para la conexión física:
  1. Poner el protoboard.
  2. Poner el potenciómetro en el protoboard.
  3. Conectar la pata izquierda del potenciómetro a un positivo del protoboard y la derecha a un negativo del protoboard.
  4. Poner la placa Arduino UNO.
  5. Conectar el Teclado Arduino a los pines del 5 al 12 del Arduino.(de derecha a izquierda)
  6. Colocar un cable desde un pin 5V del Arduino a un pin positivo del protoboard.
  7. Unir con un cable los pines GND del Arduino y un negativo del protoboard.
  8. Poner el Display LCD.
  9. Conectar los cables de poder del LCD al protoboard (pin 16 a negativo y pin 15 a positivo)
  10. Colocar un cable entre los pines D7 del LCD y 4 del Arduino.
  11. Conectar un cable a los pines D6 del LCD y 3 del Arduino.
  12. Colocar un cable entre los pines D5 del LCD y 2 del Arduino.
  13. Unir con un cable los pines D4 del LCD con el pin A2 (16) del Arduino.
  14. Conectar un cable a los pines E del LCD con el pin A1 (15) del Arduino.
  15. Colocar un cable entre los pines RW del LCD y un negativo del protoboard.
  16. Unir con un cable los pines RS del LCD con el pin A0 (14) del Arduino.
  17. Conectar un cable a los pines VC del LCD con el pata media del potenciómetro.
  18. Colocar un cable entre los pines VDD del LCD y un positivo del protoboard.
  19. Unir con un cable los pines VSS del LCD con un negativo del protoboard.
  20. Poner el Servo Motor.
  21. Conectar los cables de poder del Servo al protoboard en sus correspondientes pines y el de señal al pin A3 (17) del Arduino.

Pasos para la programación en el software Arduino:
  1. Descargar los archivos PRUEBAlcd.ino y PruebaTeclado.ino del moodle y abrirlos.
  2. En un solo archivo incluir las librerias Keypad (Teclado), LiquidCrystal (Display LCD) y Servo (Servo Motor)
  3. Modificar la línea LiquidCrystal lcd(14, 15, 16, 2, 3, 4); //    ( RS, EN, d4, d5, d6, d7) a los pines que esté conectado el Display LCD al Arduino.
  4. Modificar las líneas a los pines que esté conectado el Teclado al Arduino:                                    byte Pins_Filas[] = {12, 11, 10, 9}; //Pines Arduino a los que contamos las filas.              byte Pins_Cols[] = { 8, 7, 6, 5}; // Pines Arduino a los que contamos las columnas.
  5. Agregar las siguientes líneas antes del void setup:                                                              Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);      Servo myservo;  // create servo object to control a servo                                                              // twelve servo objects can be created on most boards                                                                    int pos = 0;    // variable to store the servo position
  6. La siguiente línea debe indicar en que pin está conectado el cable de señal del Servo Motor al Arduino: myservo.attach(17)
  7. Estas líneas harán rotar la mariposa del Servo Motor si se presiona cierto botón del Teclado Arduino:                                                                                                               if(pulsacion=='A')                                                                                                            {pos=90;}                                                                                                            if(pulsacion=='B')                                                                          {pos=180;}myservo.write(pos);              // tell servo to go to position in variable 'pos'      delay(2000);                                                 // waits 2s for the servo to reach the position            pos=0;




Resultado: Cuando pulsemos el botón A, el Servo giraré en 90º y el Display LCD mostrará en su pantalla esa letra. Por otro lado si se pulsa el botón B, éste girará en 90º y se graficará esa letra en el LCD. Cabe recalcar que cada pulsación se la debe hacer cada 2 segundos para que el Arduino la reconozca. Por último, si se pulsa otro botón que no sea A o B, él Servo Motor se regresará a su posición inicial.

martes, 3 de octubre de 2017

TECLADO + Arduino

UNIDAD EDUCATIVA PARTICULAR "POLITÉCNICO"
4° AÑO PAI - 10° AÑO DE BÁSICA "A"
INDIVIDUAL #1 - Teclado + Arduino
Nombre: Christopher Acosta                               Fecha: 03/10/17

Elaborar la bitácora en su blog. Recuerde incluir todo lo que se explicó en clase así como fotografías o videos. En caso de utilizar imágenes de Internet, recuerde poner la referencia (link).

Hoy utilizamos el Teclado Arduino 4x4. En la clase de hoy pude observar que existen dos tipos de teclado para Arduino. Uno de ellos es con botones (imagen) y el otro es táctil. Es importante reconocerlos ya que su conexión es un poco diferente.

Pasos de conexión
  1. Poner un cable desde el pin 2 del Arduino hasta el hueco más a la derecha de los cables del Teclado.
  2. Colocar un cable desde el pin 3 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  3. Unir con un cable desde el pin 4 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  4. Poner un cable desde el pin 5 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  5. Colocar un cable desde el pin 6 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  6. Unir con un cable desde el pin 7 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  7. Poner un cable desde el pin 8 del Arduino hasta el hueco de la izquierda del anterior del Teclado.
  8. Colocar un cable desde el pin 9 del Arduino hasta el hueco de la izquierda del anterior del Teclado.

Como se puede apreciar, la conexión es muy fácil. Ahora viene la programación, la cual es la siguiente:

     #include <Keypad.h>            // Prog_19_1
     const byte Filas = 4;          //Cuatro filas
     const byte Cols = 4;           //Cuatro columnas

     byte Pins_Filas[] = {9, 8, 7, 6};     //Pines Arduino para las filas
     byte Pins_Cols[] = { 5, 4, 3, 2};     // Pines Arduinopara las columnas
     char Teclas [ Filas ][ Cols ] =
          {
              {'1','2','3','A'},
              {'4','5','6','B'},
              {'7','8','9','C'},
              {'*','0','#','D'}
          };
     Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);
 
     void setup()
        {             Serial.begin(9600) ; }

     void loop()
        {       char pulsacion = Teclado1.getKey() ;
                if (pulsacion != 0)              // Si el valor es 0 es que no se
                    Serial.println(pulsacion);   // se ha pulsado ninguna tecla
        }
En este código es necesario usar la librería ""Keypad" para no tener problemas al momento de compilarlo. Este código define las columnas y filas del Teclado, los pines que leerán estas columnas y filas, los caracteres en cada columna y fila y que registre las pulsaciones que hagamos con caracteres en la pantalla de Monitor Serie.

Por otro lado, también se puede hacer que los caracteres se agrupen formando una cadena. Para hacer este efecto es necesario escribir String cadena=""; antes de void setup y cadena=cadena+pulsación; entre llaves del void loop (abriendo unas nuevas incluyendo esta línea y Serial.prinln(cadena); y ya no pulsación)


Ahora presento un breve video del funcionamiento del Teclado con el programa Arduino:


Por último, también se pueden crear contraseñas usando el Teclado. Para ello debemos de editar las siguientes líneas:
  1. Debajo de Serial.prinln(cadena); hay que escribir if(pulsacion=='#')
  2. Debajo de esa línea creada el paso 1 se abre llave y dentro de ella se digita if(cadena=='"1234#") y debajo Serial,println("Bienvenido!"); De esta forma definimos la contraseña y el mensaje que aparecerá si la escribimos correctamente en el Teclado. Ojo, es necesario poner el numeral al final de la contraseña para que funcione. Además las "" se usan para cadenas de caracteres y las '' para 1 solo caracter.
  3. Y si queremos que diga algo cuando la contraseña no esté bien escrita, hacemos lo siguiente: Debajo de las lineas creadas en el paso 2 se pone else y debajo Serial.println("Intruso!!!");
  4. Después de realizar los pasos 2 y 3 se cierra llave y se sube el programa al Arduino.
Como se ve en la imagen, apareció el mensaje de "Bienvenido!" porque escribí correctamente la contraseña, pero si me hubiera equivocado, hubiera aparecido el mensaje de "Intruso!!!".