Motor de tiempo constante 2016 - jorgerivera/ULCR-BINGE61 GitHub Wiki

UNIVERSIDAD LATINA DE COSTA RICA - BACHILLERATO EN INGENIERÍA ELECTRÓNICA - MICROCONTROLADORES

Elizabeth Rodríguez Chacón

Motor DC de tiempo constante, Introducción a Arduino

Descripción del sistema

El sistema consiste en la elaboración de un programa capaz de hacer que un motor gire un determinado tiempo mediante la pulsación de un push botton. Para los fines de este curso se realizará mediante la utilización de la plataforma Arduino además de una etapa de amplificación, debido a que el Arduino no le proporciona al motor la corriente necesaria para poder funcionar de manera adecuada.

Listado de componentes requeridos

  1. Tarjeta Arduino UNO (o equivalente).
  2. Cable USB para Arduino.
  3. Software IDE de Arduino.
  4. Motor DC 5V
  5. Push Botton
  6. Resistencias de 1KOhm (2), 10kOhms
  7. Transistor 2N2222
  8. Relay de 5V
  9. Diodo de silicio

Diagrama del circuito

El diagrama de conexión utilizado fue el siguiente:

Código del programa

  void setup() {
  pinMode(8,INPUT);
  pinMode(12,OUTPUT);
  digitalWrite(12,LOW);
}
 
 void loop() {
 int M= digitalRead(8);
 if(M==LOW){
   digitalWrite(12,HIGH);
   delay(2000);
   digitalWrite(12,LOW);
 } 
}

Descripción del código

En el primer bloque de código donde se encuentra la línea de void setup se deben declarar los estados iniciales de algún pin en específico así como que pines serán asignados como entradas o salidas. En este caso se asignó el pin 8 como entrada haciendo uso del comando pinMode(8,INPUT) y el pin 12 como salida (pinMode(12,OUTPUT)). Se debe tomar en cuenta que en este bloque de código no se deberán declarar variables que se utilizarán en el bloque de código void loop ya que estas solo serán válidas en el bloque de void setup. En el segundo bloque de código (void loop) se deberá poner todo lo que deseamos se esté ejecutando constantemente. Se crea una variable de tipo int llamada M encargada de almacenar el dato de la lectura realizada en el pin 8 mediante el comando digitalRead(8). Seguidamente se procede a evaluar mediante la utilización de una estructura if la condición de la variable creada, con lo cual si tenemos un valor bajo se escribirá en el pin 12 un valor alto, haciendo uso del comando digitalWrite(12,HIGH),el cual permitirá que el motor gire, luego se hace uso de un delay para hacer que se mantenga en este estado por un tiempo determinado en milisegundos, en este caso 2000ms (2s). Finalizado este tiempo se escribe un valor bajo en el pin 12 haciendo uso del comando digitalWrite(12,LOW), lo cual apagará el motor.

Resultados Obtenidos

  • Si se desean declarar variables que sean válidad en todo el código, éstas deberán ser colocadas antes de la estructura void setup.
  • El utilizar delay si bien es cierto es útil en este caso, debe procurar no utilizarse cuando se necesita que durante ese tiempo se sigan obteniendo o generando datos, ya que un delay lo que hará es "congelar" el procesamiento de la información, lo que vendría siendo parecido a apagar el mismo.
  • Para utilizar los comandos digitalRead() y digitalWrite() se debe tener claro que estos son para pines digitales, si los pines a utilizar son analógicos los comandos a utilizar deben ser analogRead() y analogWrite().