Computo integrado. Proyecto arduino.Que tal gente, esta semana esta relacionada con la clase de computo integrado, aqui se hablara sobre el proyecto arduino. Que es el proyecto? Bien, el proyecto consiste en un conjunto de microsistemas que se pudiesen implementar en una casa inteligente, la idea surge desde el semestre pasado, ya que se venia trabajando con eso, a traves de un simulador y una aplicacion android. En este caso el proyecto muestra en una maqueta, como se podrian implementar las siguientes funcionalidades: una cerradura electronica. una alarma a partir de un sensor de temperatura. una alarma para ventanas. cortinas electronicas. sensores de luminosidad externa. Cabe mencionar que como es una maqueta, lo mencionado arriba se elaboro con los componentes mas simples, para hacer una implementacion real, se puede partir de estos conceptos pero el material de elaboración variara, ya que se tratara entonces de una implementacion real. A continuación se muestra una lista de los materiales utilizados. arduino uno. pic16f628a 2 motores dc 1k. cable para conectar. Se elaboraron dos puentes. Los puentes H son un circuito para poder hacer que un motor de corriente directa funcione en ambas direcciones.7k. este se elaboro con los transistores. Esquema del diagrama: Esquema desde Fritzing: Se eliminaron los diodos porque no pasaba nada si no los ponía. Existe este circuito en microcontrolador. Puentes H. . push buttons y leds. el L293B. uno por motor. Esquema del proyecto. 2k y 4. pero al ver que se pueden construir facilmente se hicieron a mano. protoboard. los diodos y resistencias de 1k.8 transistores BC548B 8 diodos 1n4007 1 reed switch (relevador magnetico) 1 sensor de temperatura MT05 1 fotoresistencia resistencias de 220. mas adelante en el codigo se explica.Conexion del LM35. la conexión del sensor es como se muestra a continuación: Conexión Fotocelda. El sensor LM35 te permite capturar la temperatura promedio que se presenta alrededor del sensor. La fotocelda es una resistencia que trabaja con la incidencia de la luz y envía constantemente un valor análogo con la cantidad de luz que recibe en ese . esta se calcula en base al voltaje de referencia con el que se trabaja en el circuito. Imágenes de todo armado: La primera versión. imagen de conexion. ya con ese parámetro. este se activa con la presencia de un campo magnetico. basta con mapear ese valor para generar una una salida pwm para que los leds compensen la falta o exceso de luz. encendiéndose o apagándose. El Reed Switch es un relevador magnetico. La conexión de la fotocelda. esto fue lo que se implemento para la alarma de la ventana. abriendo o cerrando un circuito. Reed Switch. .momento. Final. . //declaro llave como entrada pinMode(abierto. delay(100). a<2. 15. El codigo del programa es bastante sencillo. 19. view plainprint? 1. OUTPUT). //declaro led2 como salida } void loop(){ //Ciclo principal del sistema //lee el valor recibido por el puerto analogo 0 y con la formula // calcula el valor de temperatura con una referencia de 5V. int led2 = 8.OUTPUT). int led1 = 7. void setup(){ Serial. 3. 16. 14. 32. 11. 12. 7. // escribe en el puerto serial la temper if(temperatura >=26){ // si la temperatura >30. 28. salida puerto9.250).INPUT). int temperatura = (5. // espera 100 ms tone(9. 17. abajo todo el codigo comenzarizado. 5. int abierto = 12. 8. //declaro cerrado como salida pinMode(led1.HIGH). para la definicion del tipo de puerto. int cerrado = 13. 24. 27. tone(9. a++){ //ciclo para generar sonidos //genera tono. 18. 25.0)/1023. 23. 26.600. . 30.400.OUTPUT). 10. int llave = 4. 21. //declaro abierto como salida pinMode(cerrado. pwm 400 y frecuencia de 250.println(temperatura). 2. 6. enciende alarma digitalWrite(led1. // otro tono diferente. atura 22. delay(100). 13.begin(9600). 9.0 * analogRead(0)*100.Codigo arduino. 4. 29. //inicializacion de la comunicacion serial pinMode(llave. // espera 100 ms } }if(temperatura <=20){ //si la temperatura es menor que 21 grados. 20. //declaro led1 como salida pinMode(led2.OUTPUT). no es mas que un loop que verifica todas las entradas y en base a eso hace salidas digitales o analogas. //prende led calor for(int a=0.0. //funcion setup. Serial.250). 31. //variables de los puertos de arduino. if(digitalRead(llave)==HIGH){ 62.1023.LOW). digitalWrite(led2. delay(200). 70. //leds para simular sir ena.200. digitalWrite(abierto. tone(9. //sonido 63. //espera 52.255). } . tone(9.0.250).LOW). //espera 56. tone(9. //lee el valor del sensor ldr 73. 66. //cambio de leds 54.0. delay(100). 36. 39.33. } 42.LOW).//sube la salida de cerrado del puente H 68. digitalWrite(abierto. 44. 76. tone(9. //llave es el puerto que escucha al pic. //espera 100 ms 38. 35. //apaga el led1 43. } 71. int valorldr = analogRead(2). for(int a=0. salida puerto9. a<2. 37. // restamos al total. delay(100). } 41. //mapea los valores para obtener una salida 75. 45. //baja la salida de cerrado del puente H 64. }else{ 67.600. 72. la salida de alta del pic solo dura 3 segundos . //la entrada 2 es la que escucha al Reed Switch. //cuando ya no es uno. digitalWrite(cerrado.250).HIGH).salida).250). 55. 58. //baja la salida de abierto del puente H 69. //genera sonido 49. 34. pwm 400 y frecuencia de 250. //se activa cuando se abre la ventana 46.250). a++){ 48. analogWrite(led3. a<2.LOW). if(digitalRead(2)==HIGH){ //si la entrada 2 esta activada? 47.HIGH). digitalWrite(led2. delay(200). digitalWrite(led1. digitalWrite(cerrado. a++){ //genera tono. //enciende led frio for(int a=0. digitalWrite(led2.200. digitalWrite(led1.250). 50. } 59.HIGH). 51.LOW). lo recibido por la fotocelda.800.400. tone(9. //pasword correcto 61.HIGH).HIGH). } 57. int vled = 1023 valorldr. 40. se eleva cuando la pone el 60.//sube la salida de abierto del puente H 65. int salida = map(vled. 74. digitalWrite(led1. //otro tono diferente 53.