miércoles, 25 de octubre de 2017

Servo (parte 2)

La segunda parte del proyecto consiste en implementar un sketch de arduino que logre leer datos analógicos provenientes del voltaje en el fotorresistor y transformarlos en datos digitales que se utilizarán para controlar una salida que se conecte al servo.

int val;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(10,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

  val = analogRead(A0);
  Serial.println(val);
  delay(500);
 
}

En este sketch hace falta programar el mapeo de la variable VAL, con la funcion map(), para que los datos de entrada en el A0 se correspondan a un rango de valores entre 0 y 90 (para controlar el ángulo de movimiento del servo) y además programar el envío de dicho valor a un pin que controle el servo (con la funcion analogWrite).

De aqui en más no procedimos con la implementación del proyecto, por lo que este quedó en la teoría, pero creemos que agregando estas lineas al código ya se está bastante cerca de lograr el cometido de controlar el servo de la forma deseada. El agregado de la cortina y la implementación total del proyecto es algo que queda en el debe, para retomar en algun otro momento









lunes, 2 de octubre de 2017

Servo

Un servo motor es un motor que tiene la capacidad de moverse dentro de un rango permitido y mantener una posición determinada. Se puede controlar digitalmente con la placa Arduino UNO y es por eso que hago esta entrada.

Además del servo pudimos experimentar con diferentes sensores como los de proximidad (infrarrojo, ultra sonido) o fotorresistores (resistencias que varían dependiendo de la luz que reciban).


LA IDEA
La consigna era idear un sistema que implementara ambos elementos y la idea de mi grupo fue la de controlar cortinas automaticamente dependiendo de la luz solar.

La idea es simple y se puede llevar a cabo en Arduino de la siguiente manera: un fotorresistor se conecta a un pin analogico (A0-A5) y luego, utilizando el valor leido en esa entrada, se indica al servo en qué posición debe estar.


REALIZACIÓN
La realización del proyecto (como el 99% de los proyectos con Arduino) se puede dividir en 2 grandes partes y ambas presentan algun obstáculo que hay que superar. Una parte es el dispositivo físico y la otra es la programación del sketch.

1)
Para la primera parte no se pueden pasar por alto dos aspectos fundamentales. El primero es saber con qué tipo de cortina podríamos trabjar. Sabiendo que contamos con un servo con un rango de 180 grados, lo mas conveniente son las cortinas verticales ("tiras" o "barras", generalmente de tela) que rotan sobre un eje longitudinal y que quedan, o bien completamente perpendiculares a la dirección de la luz (cortina cerrada) o paralelas (cortina abierta). Este tipo de cortinas permite que con un rango de 90 grados se pueda cubrir desde la cortina cerrada a la cortina abierta, pasando por diferentes niveles de luz en la habitación.

Lo otro que se debe tener en cuenta es el lugar en donde va a colocarse el fotorresistor. Si se colocara en el interior de la habitación no se tendria una referencia clara de cuanta luz esta llegando, por lo que colocarlo en exteriores seria mucho mas conveniente. Para esto se debe tener algun recaudo en cuanto a las inclemencias del tiempo y/o colocación segura del elemento (pegado o atornillado a la pared, con algun tipo de carcaza protectora, etc).

La siguiente entrada contiene la segunda parte de la idea y el código implementado (con los problemas que se presentaron)