Mini proyecto con (sin) arduino

635 visualizaciones

Publicado el

Un proyecto realizado sin Arduino UNO

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
635
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
7
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Mini proyecto con (sin) arduino

  1. 1. Colegio de EstudiosCientíficosy TecnológicosPlantel Tecámac Asignatura: Instala y Configura AplicacionesMóviles Alumno:Noe AldairFrancisco Cruz Profesor: René DomínguezEscalona Mini Proyecto con (sin) Arduino
  2. 2. Introducción. Realizareste tipo de trabajo suele ser un poco complicado al no poseer el tipo de material suficiente como para presentarlo al profesor, entonces al no poseer el Arduino Uno ya que en mi equipoestá utilizándolootra persona decidí crear este documento con lo necesario para yo poder realizar mi proyecto según como lo haría y en que beneficiaríao que resultaría afectado. Espero al no tener el material ni la documentación suficiente que este trabajo vaya a valer menos de lo indicadopero la verdad es que no quiero reprobar la materia por eso es que lo hago además de conocer otras formas de cómo utilizarel Arduino UNO. Este documentoNO posee ningún video tutorial ya que, como mencioné anteriormente no cuento con Arduino UNO para realizarlo y en su lugar he reemplazadolo que sería la evidenciapor imágenes y diagramas del cómo debería ser armado y realizadoel proyecto. Sin nadamás que decir y esperando acepte el trabajo comienzo.
  3. 3. Objetivo. El objetivode este proyecto con (sin) Arduino es el de crear un elevadorcomo se ha intentadoanteriormente pero ésta vez controladopor un control remoto y sensible a la humedad. Como dije anteriormente en este proyecto intento hacer lo que de verdad haría y para ser sincero no voy a intentarnadaque no pueda hacer y al creer que este proyecto es sencillopor eso es por lo que me arriesgo a intentarloy antesde una calificaciónde cero esperar alguna décima extra o alguna calificaciónpara el proyecto y no dejarlo como no entregado. A pesar de haberloentregado fuera de tiempo me dispongo a realizarlo para que si es que tengo una calificación aprobatoriaen el examen sea posteriormente revisado en slideshare.net y pueda ser contado para evaluación. Ahora que he tratado de realizar este proyecto pienso yo que es posible y el realizarlo posiblementeno cueste mucho trabajo;incluyendolos cinco componentes como es debido hacer el mejor esfuerzo porque salga todo bien y sin nada más que agregar doy paso a el proyecto.
  4. 4. Componentesy lista del material. Para empezar con éste proyecto es necesario agregar que necesitaremos los siguientes componentes, daré la lista de todo el material que será ocupado: - Placa ArduinoUNO - Cable USB - Un Protoboard y en caso de ser pequeña:dos. - Motor a pasos bipolar - Potenciómetro - 4 Resistenciasde 10k - 5 Resistenciasde 2k - 1 Resistencia de 50k - 2 Botones - Luces LED - LED Negro - LED RGB - Sensor de humedad DHT22 - PantallaLCD 1602ª - Hilo resistente - Poleas realizadasmanualmente Al no poseer el material adecuadohe optadopor buscar en internet el material específico para poder realizar lo que sería el proyecto entonces solo se requiere lo anterior para poder comenzar con ello.
  5. 5. Motor a pasos. El motor a pasos es ocupado para, como su nombre lo dice, ser usado como un motor que será el que eleve el ascensor o lo haga descender. Al estar enlazado con las poleas realizadas a mano o reutilizando un cartucho de tinta para impresora puede ser de utilidad para que el motor no se atore en donde no debe y siga su camino, sumado al hilo o cable que le hemos puesto no debe ser difícil la ejecución. El diagrama de cómo debe ir cableado será el siguiente:
  6. 6. Debo aclarar que no vamos a utilizar todos los pines y si en los demás diagramas vemos enchufados pines que ya hemos ocupado hay que recorrerlo y el código será modificado. Una vez comentado aquello mostraré el código: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 /* Mover motores paso a paso con Arduino Tutorial en: http://diymakers.es/mover-motores-paso-paso-con-arduino/ */ #include <Stepper.h> //Importamos la librería para controlar motores paso a paso #define STEPS 200 //Ponemos el número de pasos que necesita para dar una vuelta. 20 // Ponemos nombre al motor, el número de pasos y los pins de control Stepper stepper(STEPS, 8, 9, 10, 11); //Stepper nombre motor (número de pasos por v void setup() { // Velocidad del motor en RPM stepper.setSpeed(100); } void loop() { //Girar una vuelta entera en un sentido stepper.step(200); delay(500); //Pequeña pausa //Girar una vuelta entera en sentido contrario stepper.step(-200); delay(500); //Pequeña pausa } Lo que el código logrará será hacer que el motor se mueva en una dirección dando una vuelta completa para así el ascensor ser elevado y al llegar ahí dar la misma vuelta en sentido contrario.
  7. 7. Control Remoto. Lo que logrará el control remoto será en caso de que nuestros botones se vean afectados pueda ser utilizado el control remoto o viceversa. El control podrá lograr hacer al motor a pasos dar la vuelta en el sentido en que la hemos guiado, detenerlo o hacer que haga su recorrido en sentido contrario. El diagrama de armado es el siguiente: En donde usaremos la luz led para indicar que el control está funcionando y a que componente está siendo utilizado, aunque para ello el código tiene que ser modificado.
  8. 8. Una vez realizado lo anterior paso a mostrar el código: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 // Cantidad de pulsos #define TRAIN_LENGTH 32 // En microsegundos #define LOW_LIMIT 600 #define HIGH_LIMIT 1800 #define INIT_LIMIT 4000 #define IN 2 #define LED 13 long start, delta = 0; uint32_t value; int pos = 0; boolean has_value = false; unsigned int key[10]; void inputPin() { noInterrupts(); if (has_value) return; if (digitalRead(IN) == HIGH) { start = micros(); } else { delta = micros() - start; if (delta < LOW_LIMIT) { value <<= 1; value |= 1; ++pos; } else if (delta < HIGH_LIMIT) { value <<= 1; value |= 0; ++pos; } else if (delta > INIT_LIMIT) { value = 0; pos = 0; } if (pos == TRAIN_LENGTH) { has_value = true; } } interrupts(); } void setup() { key[0] = 0x9768; key[1] = 0xCF30; key[2] = 0xE718; key[3] = 0x857A; key[4] = 0xEF10; key[5] = 0xC738;
  9. 9. 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 key[6] = 0xA55A; key[7] = 0xBD42; key[8] = 0xB54A; key[9] = 0xAD52; Serial.begin(115200); pinMode(IN, INPUT); pinMode(LED, OUTPUT); digitalWrite(LED, LOW); attachInterrupt(0, inputPin, CHANGE); } void loop() { int i; if (has_value) { Serial.print("V: "); Serial.println(value & 0x0000FFFF, HEX); i = 0; while(i<10 && (key[i] != (value & 0x0000FFFF))) ++i; Serial.println(i); while(i--) { digitalWrite(LED, HIGH); delay(400); digitalWrite(LED, LOW); delay(200); } has_value = false; pos = 0; } } En donde nuestro control remoto estará funcionando como esperamos y después sea dirigida la señal al componente adecuado.
  10. 10. Led RGB. El objetivo de incluir este Led es, creo yo mero adorno y también un indicador que señalará si el ascensor está subiendo o bajando pintándose de un color al subir y otro al bajar. El diagrama de ensamblado sería el siguiente: En donde incluiremos resistencias y el Led para nuestro propósito, así al subir el ascensor siendo controlado por nuestro control o botones se iluminará de un color y al bajar cambiará. Una vez realizado lo anterior procedo a mostrar el código del componente: /*-----Declaracion de variables para cada color R G B-----*/ int rled = 11; // Pin PWN 11 paraled rojo int bled = 10; // Pin PWM 10 para led azul int gled = 9; // Pin PWM 9 para led verde /*----Declaracion de variables auxiliares-----*/ int i; // Variable para ciclos repetitivos int repeat = 5; // Variables paracantidad limite de repeticiones void setup() { /*----- Se inicializan pines PWM como salida*/ pinMode(rled, OUTPUT);
  11. 11. pinMode(bled, OUTPUT); pinMode(gled, OUTPUT); } void loop() { for(i=0; i<repeat; i++) //Se repitela ejecución de la funcion rgbon() "repeat" veces rgbon(); delay(1000); //Se espera 1 segundo colors('y'); //Se enciende el LED en color amarillo (y de yellow) delay(1000); colors('o'); //Se enciende el LED en color naranko (o de orange) delay(1000); } /*-----Funcion paramostrar colores principales cada 500 ms-----*/ void rgbon(){ analogWrite(rled,255); // Se enciende color rojo delay(500); // Se esperan 500 ms analogWrite(rled,0); // Se apaga color rojo analogWrite(bled,255); // Se enciende color azul delay(500); // Se esperan 500 ms analogWrite(bled,0); // Se apaga color azul analogWrite(gled,255); // Se enciende color verde delay(500); // Se esperan 500 ms analogWrite(gled,0); // Se apaga colo verde } /*-----Funcion que permite escoger entre color amarillo, naranjo o rosado-----*/ void colors(char color){ //La funcion recibe un parametro que se guarda en variable color switch(color){ //Se compara variable color con dato guardado case 'y':analogWrite(rled,255); // Si color == 'y' se enciende color amarillo analogWrite(gled,255); // Mezclando r = 255 / g = 255 / b = 0 analogWrite(bled,0); break; case 'o': analogWrite(rled,255); // Si color == 'o' se enciende color naranjo analogWrite(gled,180); // Mezclando r = 255 / g = 180 / b = 0 analogWrite(bled,0); break; case 'p':analogWrite(rled,255); // Si color == 'p' se enciende color rosado analogWrite(gled,0); // Mezclando r = 255 / g = 0 / b = 255 analogWrite(bled,255); break; } } El objetivo del código es que el Led va a iluminarse al detectar al elevador en movimiento así de un color el cual sería el rojo y para el retroceso sería el color naranja así como hemos podido ver en el código.
  12. 12. Sensor de humedad DHT22. El objetivo de este sensor no es más que como he incluido en el anterior componente, será precisamente de adorno ya que la verdad no funcionaba como yo esperaba para que detectara la humedad y si el ascensor sea donde sea que se encontrara bajara o subiera. Aun así dejo el código a realizar y el diagrama de ensamblaje. En donde incluimos nuestro sensor de humedad DHT22. Una vez realizado lo anterior pasaremos a mostrar el código: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include "DHT.h" //cargamos la librería DHT #define DHTPIN 2 //Seleccionamos el pin en el que se conectará el sensor #define DHTTYPEDHT22 //Se selecciona el DHT22(hay otros DHT) DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por Arduino para comunicarse con el sensor void setup() { Serial.begin(9600); //Se inicia la comunicación serial dht.begin(); //Se inicia el sensor } void loop() { float h = dht.readHumidity(); //Se lee la humedad float t = dht.readTemperature(); //Se lee la temperatura //Se imprimen las variables Serial.println("Humedad: "); Serial.println(h); Serial.println("Temperatura: "); Serial.println(t); delay(2000); //Se espera 2 segundos para seguir leyendo //datos }
  13. 13. Pantalla LCD. El objetivo de nuestra pantalla LCD será el indicar cuando nuestro ascensor sube o baja mostrando un mensaje en pantalla de “Suben” o “Bajan” según sea el caso indicado como anteriormente se ha intentado realizar. El diagrama de ensamblaje sería el siguiente: En donde incluimos un pequeño capacitor para nuestra pantalla y resistencias. Una vez realizado lo anterior procedo al código: #include <LiquidCrystal.h> LiquidCrystal lcd(7, 8, 9, 10, 11 , 12); void setup() { lcd.begin(16, 2); lcd.setCursor(0,1); lcd.write("Suben "); } lcd.begin(16, 2); lcd.setCursor(0,1); lcd.write("Bajan"); void loop() { }
  14. 14. Evidencia. Al carecer del material suficiente como he indicadoal principiodel documento me veo en la necesidad de omitir este punto ya que no cuento con la herramienta necesaria para poder mostrarle imágenes de como hubiese quedado el proyecto una vez terminadoy ensambladocomo le señalé anteriormente. Conclusión. El proyecto ha quedado“terminado” y al “realizarlo” pude ir imaginandoel como quería, que agregaría o que quitaría ya que como puede notarse no todoslos componentes son necesarios dentro de este proyecto con (sin) Arduino y también el cómo debería presentar mejor mis trabajos. Pero al no poseer ninguna de esas cualidadeses el motivo por el que escribo un poco entendiblementepara poder ser evaluadoel día 9 de enero del 2015 si es que consigo una calificaciónaprobatoria. Sin nadamás que decir me despido con un cordial saludo.

×