jueves, 7 de junio de 2018

REFRACCION DE LA LUZ

PROYECTO REFRACTANDO LA LUZ


Básicamente este proyecto se desarrollo para la materia de óptica en la cual se tomo un tema muy interesante donde se habla de la refracción de la luz en los diferentes medios ya sea cristal, agua o cualquier otro.

Este proyecto solo es una demostración de lo visto a dar a conocer los angulos de refracción de la luz en el agua


En el proyecto se utilizo un servomotor para ayuda de precisar los angulos, un led y impresiones 3d como cortes a laser.


PRIMERAS PIEZAS PARA MONTAJE DEL LED Y BRAZO DEL SERVO


LA PARTE NEGRA ES ACRILICO PARA QUE NO LE AFECTE EL AGUA


PRIMER PRUEBA DE BASE PARA HACER UNA HABITACION OSCURA





MONTAJE DEL SERVO Y FUNCIONAMIENTO DEL BRAZO DEL SERVO



VISTA PREVIA SIN MONTAJE DE LED




PRUEBAS DE FUNCIONAMIENTO DEL SERVO CON SU BRAZO Y BASE 


VAMOS A LA MITAD



PRUEBA DE FUNCION CON MONTAJE LED PUESTO


IMPRIMIENDO LA BASE DEL LED

POSIBLE VISTA



SE LE HIZO UN CONO PARA ENFOCAR MAS LOS RAYOS DE LUZ


PRIMER PRUEBA CON LED MONTADO





CAMBIO DE DISEÑO DE HABITACION OSCURA






SE LE IMPRIMIO UNA CALCAMONIA CON GRADOS 

SE LE AÑADIO UN CRISTAL PARA MANTENER EL AGUA


EL DISCO SE PEGO A LA BASE





PENULTIMA PRUEBA 



FUTBOLITO CON SERVOS

 FUTBOLITO     2 JUGARODES

Este proyecto fue para la materia de diseño de soft. en el cual se busco hacer un intento de futbolito como el típico futbolito del balin.

En el proyecto se utilizaron dos potenciómetros con los cuales se controla el servo.

                                     SE COMENZO POR IMPRIMIR LAS PIEZAS











lunes, 11 de diciembre de 2017

LECTOR DE GASES

  ONOSBY ARCAS
VISTA FINAL


1°DISEÑO y ENSAMBLE
Desarrollado en solidworks




BASE SENSOR

COMPUESTA POR:
-Sensor
-4 Imanes de 3mm de diámetro x 1mm de grosor
-Led smd blanco
-Resistencia * (en este video no aparece)
-PCB * (en este video no aparece)
-Base de madera de MDF de 2.6mm




























2° Selección de Gases y Sensores
      Se seleccionaron los siguientes sensores: MQ-2, MQ-135 , MQ - 5, DHT
HOJAS DE DATOS





3° PROGRAMAS

PROGRAMA | Detector de sensor
Básicamente lo que este programa hace es que por medio del pin A1 de arduino
entra una corriente que varia sengun el sensor conectado y asi es como detecta el sensor conectado

  5v-------Resistencia-------A1

#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
#define analogpila 1
#define PINTO 4
#define vent 13
#define pinled 9
float ass=0,voltaj=0,SENSOR=0;
int analogValor = 0,ledDelay=800;
float voltajeeeee = 0;


U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);


void setup(){u8g2.begin();
 pinMode(pinled,OUTPUT);
  pinMode(vent,OUTPUT);
  pinMode(PINTO,INPUT);
 
 }

void scan() {
   analogValor = analogRead(analogpila);
  voltajeeeee = 0.0048*analogValor;
  delay(500);
}


 
void loop(){

int cambio = digitalRead(PINTO);
  digitalWrite(vent,LOW);
  digitalWrite(pinled,LOW);
int swi =0;

if(cambio==1){
  digitalWrite(pinled,HIGH);
  int m;
    u8g2.clearBuffer();
u8g2.drawLine(35-m,34,35-m,37);
u8g2.drawLine(36-m,33,36-m,38);
u8g2.drawLine(37-m,34,37-m,41);
u8g2.drawLine(38-m,36,38-m,43);
u8g2.drawLine(39-m,38,39-m,45);
u8g2.drawLine(40-m,40,40-m,46);
u8g2.drawLine(41-m,43,41-m,46);

u8g2.drawLine(39-m,18,39-m,30);
u8g2.drawLine(40-m,16,40-m,34);
u8g2.drawLine(41-m,17,41-m,36);
u8g2.drawLine(42-m,18,42-m,40);
u8g2.drawLine(43-m,20,43-m,44);
u8g2.drawLine(44-m,25,44-m,46);
u8g2.drawLine(45-m,32,45-m,47);
u8g2.drawLine(46-m,38,46-m,50);
u8g2.drawLine(47-m,40,47-m,52);
u8g2.drawLine(48-m,46,48-m,54);
u8g2.drawLine(49-m,48,49-m,54);

u8g2.drawLine(47-m,8,47-m,28);
u8g2.drawLine(48-m,6,48-m,33);
u8g2.drawLine(49-m,5,49-m,37);
u8g2.drawLine(50-m,4,50-m,42);
u8g2.drawLine(51-m,4,51-m,46);
u8g2.drawLine(52-m,4,52-m,52);
u8g2.drawLine(53-m,4,53-m,54);
u8g2.drawLine(54-m,6,54-m,56);
u8g2.drawLine(55-m,20,55-m,57);
u8g2.drawLine(56-m,28,56-m,58);
u8g2.drawLine(57-m,36,57-m,58);
u8g2.drawLine(58-m,53,58-m,58);

u8g2.drawLine(59-m,6,59-m,22);
u8g2.drawLine(60-m,5,60-m,52);
u8g2.drawLine(61-m,3,61-m,55);
u8g2.drawLine(62-m,2,62-m,57);
u8g2.drawLine(63-m,2,63-m,58); //izquierda
u8g2.drawLine(64-m,2,64-m,58);//centro
u8g2.drawLine(65-m,2,65-m,57);// derecha
u8g2.drawLine(66-m,3,66-m,54);
u8g2.drawLine(67-m,4,67-m,50);
u8g2.drawLine(68-m,5,68-m,46);


u8g2.drawLine(80-m,8,80-m,28);
u8g2.drawLine(79-m,6,79-m,33);
u8g2.drawLine(78-m,5,78-m,37);
u8g2.drawLine(77-m,4,77-m,42);
u8g2.drawLine(76-m,4,76-m,46);
u8g2.drawLine(75-m,4,75-m,52);
u8g2.drawLine(74-m,4,74-m,54);
u8g2.drawLine(73-m,6,73-m,56);
u8g2.drawLine(72-m,20,72-m,57);
u8g2.drawLine(71-m,28,71-m,58);
u8g2.drawLine(70-m,36,70-m,58);
u8g2.drawLine(69-m,53,69-m,58);

u8g2.drawLine(88-m,18,88-m,30);
u8g2.drawLine(87-m,16,87-m,34);
u8g2.drawLine(86-m,17,86-m,36);
u8g2.drawLine(85-m,18,85-m,40);
u8g2.drawLine(84-m,20,84-m,44);
u8g2.drawLine(83-m,25,83-m,46);
u8g2.drawLine(82-m,32,82-m,47);
u8g2.drawLine(81-m,38,81-m,50);
u8g2.drawLine(80-m,40,80-m,52);
u8g2.drawLine(79-m,46,79-m,54);
u8g2.drawLine(78-m,48,78-m,54);

u8g2.drawLine(92-m,34,92-m,37);
u8g2.drawLine(91-m,33,91-m,38);
u8g2.drawLine(90-m,34,90-m,41);
u8g2.drawLine(89-m,36,89-m,43);
u8g2.drawLine(88-m,38,88-m,45);
u8g2.drawLine(87-m,40,87-m,46);
u8g2.drawLine(86-m,43,86-m,46);
u8g2.sendBuffer();
delay(2000);


m=62;
int n=6;

u8g2.clearBuffer();
 u8g2.drawLine(11,5+n,5,20+n);
 u8g2.drawLine(12,5+n,5,21+n);
 u8g2.drawLine(13,5+n,5,22+n);
 u8g2.drawLine(14,5+n,5,23+n);
 u8g2.drawLine(15,5+n,5,24+n);
 u8g2.drawLine(16,5+n,5,26+n);
 u8g2.drawLine(5,26+n,26,26+n);
 u8g2.drawLine(6,27+n,25,27+n);
 u8g2.drawLine(7,28+n,25,28+n);
 u8g2.drawLine(16,5+n,35,5+n);
 u8g2.drawLine(15,6+n,36,6+n);
 u8g2.drawLine(14,7+n,34,7+n);
 u8g2.drawLine(37,7+n,26,28+n);
 u8g2.drawLine(36,6+n,26,27+n);
 u8g2.drawLine(35,7+n,26,28+n);
 u8g2.drawLine(37,8+n,27,28+n);
 u8g2.drawLine(37,9+n,28,28+n);
 u8g2.drawLine(37,9+n,27,28+n);

 u8g2.drawLine(40,5+n,40,28+n);
 u8g2.drawLine(41,5+n,41,28+n);
 u8g2.drawLine(42,5+n,42,28+n);
  u8g2.drawLine(43,5+n,43,28+n);
 u8g2.drawLine(44,28+n,57,5+n);
 u8g2.drawLine(44,27+n,56,5+n);
 u8g2.drawLine(44,26+n,55,6+n);
 u8g2.drawLine(44,25+n,54,7+n);
 u8g2.drawLine(44,24+n,53,8+n);
 u8g2.drawLine(44,23+n,52,9+n);
 u8g2.drawLine(54,8+n,58,6+n);
 u8g2.drawLine(54,7+n,59,7+n);
 u8g2.drawLine(60,10+n,60,28+n);
 u8g2.drawLine(61,10+n,61,28+n);
 u8g2.drawLine(62,10+n,62,28+n);
 u8g2.drawLine(63,10+n,63,28+n);
 u8g2.drawLine(61,5+n,63,10+n);
 u8g2.drawLine(54,9+n,63,10+n);
 u8g2.drawLine(54,8+n,63,10+n);
 u8g2.drawLine(60,5+n,62,10+n);
 u8g2.drawLine(59,5+n,61,10+n);
 u8g2.drawLine(58,5+n,60,10+n);
 u8g2.drawLine(55,10+n,58,5+n);
 u8g2.drawLine(55,8+n,62,8+n);

  u8g2.drawLine(11+m,5+n,5+m,20+n);
 u8g2.drawLine(12+m,5+n,5+m,21+n);
 u8g2.drawLine(13+m,5+n,5+m,22+n);
 u8g2.drawLine(14+m,5+n,5+m,23+n);
 u8g2.drawLine(15+m,5+n,5+m,24+n);
 u8g2.drawLine(16+m,5+n,5+m,26+n);
 u8g2.drawLine(5+m,26+n,26+m,26+n);
 u8g2.drawLine(6+m,27+n,25+m,27+n);
 u8g2.drawLine(7+m,28+n,25+m,28+n);
 u8g2.drawLine(16+m,5+n,35+m,5+n);
 u8g2.drawLine(15+m,6+n,36+m,6+n);
 u8g2.drawLine(14+m,7+n,34+m,7+n);
 u8g2.drawLine(37+m,7+n,26+m,28+n);
 u8g2.drawLine(36+m,6+n,26+m,27+n);
 u8g2.drawLine(35+m,7+n,26+m,28+n);
 u8g2.drawLine(37+m,8+n,27+m,28+n);
 u8g2.drawLine(37+m,9+n,28+m,28+n);
 u8g2.drawLine(37+m,9+n,27+m,28+n);

 u8g2.drawLine(107,5+n,123,5+n);
 u8g2.drawLine(106,6+n,123,6+n);
 u8g2.drawLine(105,7+n,123,7+n);
 u8g2.drawLine(100,26+n,123,26+n);
 u8g2.drawLine(100,27+n,122,27+n);
 u8g2.drawLine(100,28+n,121,28+n);
 u8g2.drawLine(108,15+n,120,15+n);
 u8g2.drawLine(108,16+n,120,16+n);
 u8g2.drawLine(108,17+n,120,17+n);
 u8g2.drawLine(107,7+n,107,17+n);
 u8g2.drawLine(106,7+n,106,16+n);
 u8g2.drawLine(105,7+n,105,15+n);
 u8g2.drawLine(121,26+n,121,15+n);
 u8g2.drawLine(122,26+n,122,16+n);
 u8g2.drawLine(123,26+n,123,17+n);


u8g2.drawLine(5,34+n,123,34+n);
  u8g2.setFont(u8g2_font_crox1t_tf);
u8g2.setCursor(7,47+n); 
u8g2.print("ARCAS TECHNOLOGY'S");
u8g2.sendBuffer();
delay(1500);
  swi++;
 
u8g2.clearBuffer();
  u8g2.sendBuffer();
}


while(swi==1){
  for(int tiempo =0;tiempo!=1;tiempo++){
    SENSOR=0;
  ass=0;
  analogValor = analogRead(analogpila);
  voltajeeeee = 0.0048*analogValor;
   
 if (voltajeeeee>=.02){
   
for(int luna=0;luna!=6;luna++) {
  if(luna==0){
     Serial.println("DETECTANDO SENSOR");
  }
  analogValor = analogRead(analogpila);
float  voltaj = 0.0048*analogValor;
ass= ass+voltaj;
    
  delay(50);
if(luna==5){
  SENSOR=ass/5;
}
  }


//MQ135  

if (SENSOR>=.03 && SENSOR<.30){
   digitalWrite(vent,HIGH);
   u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(20,25); 
u8g2.print("SENSOR");
 u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(33,41); 
u8g2.print("MQ-135"); 
 u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.setCursor(25,55); 
u8g2.print("CAMBIE PIC");
u8g2.sendBuffer();
delay(1000);
}

//MQ2  
else if(SENSOR>=.60 && SENSOR<1.10){
      digitalWrite(vent,HIGH);
   u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(20,25); 
u8g2.print("SENSOR");
 u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(39,41); 
u8g2.print("MQ-2"); 
 u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.setCursor(25,55); 
u8g2.print("CAMBIE PIC");
u8g2.sendBuffer();
delay(1000);
}


//DHT
else if (SENSOR>=1.90 && SENSOR<8.90){
    u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(20,25); 
u8g2.print("SENSOR");
 u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(43,41); 
u8g2.print("DHT"); 
 u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.setCursor(25,55); 
u8g2.print("CAMBIE PIC");
u8g2.sendBuffer();
delay(1000);
}
 
}
else{
   u8g2.setFont(u8g2_font_ncenB12_tr);
u8g2.setCursor(0,25); 
u8g2.print("NO DETECTO");
 u8g2.setCursor(22,45); 
u8g2.print("SENSOR");
u8g2.sendBuffer();
delay (1000);
  }
  }
swi=2;
}
u8g2.clearBuffer(); 
u8g2.sendBuffer();
}



FUNCIONAMIENTO CON SENSOR CONECTADO


SENSOR CONECTADO MQ-2

SENSOR CONECTADO MQ-135

SENSOR CONECATDO DHT



FUNCIONAMIENTO SIN SENSOR CONECTADO








PROGRAMA | DHT SENSOR DE TEMPERATURA
Este programa solo se enfoca al sensor DHT

#include "DHT.h"
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
int DHTPIN= 12;    
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);
#define analogpila 1
#define PINTO 4
#define pinled 9

float ass=0,voltaj=0,SENSOR=0;
int analogValor = 0,ledDelay=800;
float voltajeeeee = 0;


U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);


void setup(){u8g2.begin();
dht.begin(); 
 pinMode(pinled,OUTPUT);
  pinMode(PINTO,INPUT);
 
 }

void scan() {
   analogValor = analogRead(analogpila); 
voltajeeeee = 0.0048*analogValor;
  Serial.print("Vol::");
 Serial.println(voltajeeeee);
  delay(500);
}


 
void loop(){

int cambio = digitalRead(PINTO);
  digitalWrite(pinled,LOW);
int swi =0;
if(cambio==1){
    digitalWrite(pinled,HIGH);
  int m;
    u8g2.clearBuffer();
u8g2.drawLine(35-m,34,35-m,37);
u8g2.drawLine(36-m,33,36-m,38);
u8g2.drawLine(37-m,34,37-m,41);
u8g2.drawLine(38-m,36,38-m,43);
u8g2.drawLine(39-m,38,39-m,45);
u8g2.drawLine(40-m,40,40-m,46);
u8g2.drawLine(41-m,43,41-m,46);

u8g2.drawLine(39-m,18,39-m,30);
u8g2.drawLine(40-m,16,40-m,34);
u8g2.drawLine(41-m,17,41-m,36);
u8g2.drawLine(42-m,18,42-m,40);
u8g2.drawLine(43-m,20,43-m,44);
u8g2.drawLine(44-m,25,44-m,46);
u8g2.drawLine(45-m,32,45-m,47);
u8g2.drawLine(46-m,38,46-m,50);
u8g2.drawLine(47-m,40,47-m,52);
u8g2.drawLine(48-m,46,48-m,54);
u8g2.drawLine(49-m,48,49-m,54);

u8g2.drawLine(47-m,8,47-m,28);
u8g2.drawLine(48-m,6,48-m,33);
u8g2.drawLine(49-m,5,49-m,37);
u8g2.drawLine(50-m,4,50-m,42);
u8g2.drawLine(51-m,4,51-m,46);
u8g2.drawLine(52-m,4,52-m,52);
u8g2.drawLine(53-m,4,53-m,54);
u8g2.drawLine(54-m,6,54-m,56);
u8g2.drawLine(55-m,20,55-m,57);
u8g2.drawLine(56-m,28,56-m,58);
u8g2.drawLine(57-m,36,57-m,58);
u8g2.drawLine(58-m,53,58-m,58);

u8g2.drawLine(59-m,6,59-m,22);
u8g2.drawLine(60-m,5,60-m,52);
u8g2.drawLine(61-m,3,61-m,55);
u8g2.drawLine(62-m,2,62-m,57);
u8g2.drawLine(63-m,2,63-m,58); //izquierda
u8g2.drawLine(64-m,2,64-m,58);//centro
u8g2.drawLine(65-m,2,65-m,57);// derecha
u8g2.drawLine(66-m,3,66-m,54);
u8g2.drawLine(67-m,4,67-m,50);
u8g2.drawLine(68-m,5,68-m,46);


u8g2.drawLine(80-m,8,80-m,28);
u8g2.drawLine(79-m,6,79-m,33);
u8g2.drawLine(78-m,5,78-m,37);
u8g2.drawLine(77-m,4,77-m,42);
u8g2.drawLine(76-m,4,76-m,46);
u8g2.drawLine(75-m,4,75-m,52);
u8g2.drawLine(74-m,4,74-m,54);
u8g2.drawLine(73-m,6,73-m,56);
u8g2.drawLine(72-m,20,72-m,57);
u8g2.drawLine(71-m,28,71-m,58);
u8g2.drawLine(70-m,36,70-m,58);
u8g2.drawLine(69-m,53,69-m,58);

u8g2.drawLine(88-m,18,88-m,30);
u8g2.drawLine(87-m,16,87-m,34);
u8g2.drawLine(86-m,17,86-m,36);
u8g2.drawLine(85-m,18,85-m,40);
u8g2.drawLine(84-m,20,84-m,44);
u8g2.drawLine(83-m,25,83-m,46);
u8g2.drawLine(82-m,32,82-m,47);
u8g2.drawLine(81-m,38,81-m,50);
u8g2.drawLine(80-m,40,80-m,52);
u8g2.drawLine(79-m,46,79-m,54);
u8g2.drawLine(78-m,48,78-m,54);

u8g2.drawLine(92-m,34,92-m,37);
u8g2.drawLine(91-m,33,91-m,38);
u8g2.drawLine(90-m,34,90-m,41);
u8g2.drawLine(89-m,36,89-m,43);
u8g2.drawLine(88-m,38,88-m,45);
u8g2.drawLine(87-m,40,87-m,46);
u8g2.drawLine(86-m,43,86-m,46);
u8g2.sendBuffer();
delay(2000);
m=62;
int n=6;

u8g2.clearBuffer();
 u8g2.drawLine(11,5+n,5,20+n);
 u8g2.drawLine(12,5+n,5,21+n);
 u8g2.drawLine(13,5+n,5,22+n);
 u8g2.drawLine(14,5+n,5,23+n);
 u8g2.drawLine(15,5+n,5,24+n);
 u8g2.drawLine(16,5+n,5,26+n);
 u8g2.drawLine(5,26+n,26,26+n);
 u8g2.drawLine(6,27+n,25,27+n);
 u8g2.drawLine(7,28+n,25,28+n);
 u8g2.drawLine(16,5+n,35,5+n);
 u8g2.drawLine(15,6+n,36,6+n);
 u8g2.drawLine(14,7+n,34,7+n);
 u8g2.drawLine(37,7+n,26,28+n);
 u8g2.drawLine(36,6+n,26,27+n);
 u8g2.drawLine(35,7+n,26,28+n);
 u8g2.drawLine(37,8+n,27,28+n);
 u8g2.drawLine(37,9+n,28,28+n);
 u8g2.drawLine(37,9+n,27,28+n);

 u8g2.drawLine(40,5+n,40,28+n);
 u8g2.drawLine(41,5+n,41,28+n);
 u8g2.drawLine(42,5+n,42,28+n);
  u8g2.drawLine(43,5+n,43,28+n);
 u8g2.drawLine(44,28+n,57,5+n);
 u8g2.drawLine(44,27+n,56,5+n);
 u8g2.drawLine(44,26+n,55,6+n);
 u8g2.drawLine(44,25+n,54,7+n);
 u8g2.drawLine(44,24+n,53,8+n);
 u8g2.drawLine(44,23+n,52,9+n);
 u8g2.drawLine(54,8+n,58,6+n);
 u8g2.drawLine(54,7+n,59,7+n);
 u8g2.drawLine(60,10+n,60,28+n);
 u8g2.drawLine(61,10+n,61,28+n);
 u8g2.drawLine(62,10+n,62,28+n);
 u8g2.drawLine(63,10+n,63,28+n);
 u8g2.drawLine(61,5+n,63,10+n);
 u8g2.drawLine(54,9+n,63,10+n);
 u8g2.drawLine(54,8+n,63,10+n);
 u8g2.drawLine(60,5+n,62,10+n);
 u8g2.drawLine(59,5+n,61,10+n);
 u8g2.drawLine(58,5+n,60,10+n);
 u8g2.drawLine(55,10+n,58,5+n);
 u8g2.drawLine(55,8+n,62,8+n);

  u8g2.drawLine(11+m,5+n,5+m,20+n);
 u8g2.drawLine(12+m,5+n,5+m,21+n);
 u8g2.drawLine(13+m,5+n,5+m,22+n);
 u8g2.drawLine(14+m,5+n,5+m,23+n);
 u8g2.drawLine(15+m,5+n,5+m,24+n);
 u8g2.drawLine(16+m,5+n,5+m,26+n);
 u8g2.drawLine(5+m,26+n,26+m,26+n);
 u8g2.drawLine(6+m,27+n,25+m,27+n);
 u8g2.drawLine(7+m,28+n,25+m,28+n);
 u8g2.drawLine(16+m,5+n,35+m,5+n);
 u8g2.drawLine(15+m,6+n,36+m,6+n);
 u8g2.drawLine(14+m,7+n,34+m,7+n);
 u8g2.drawLine(37+m,7+n,26+m,28+n);
 u8g2.drawLine(36+m,6+n,26+m,27+n);
 u8g2.drawLine(35+m,7+n,26+m,28+n);
 u8g2.drawLine(37+m,8+n,27+m,28+n);
 u8g2.drawLine(37+m,9+n,28+m,28+n);
 u8g2.drawLine(37+m,9+n,27+m,28+n);

 u8g2.drawLine(107,5+n,123,5+n);
 u8g2.drawLine(106,6+n,123,6+n);
 u8g2.drawLine(105,7+n,123,7+n);
 u8g2.drawLine(100,26+n,123,26+n);
 u8g2.drawLine(100,27+n,122,27+n);
 u8g2.drawLine(100,28+n,121,28+n);
 u8g2.drawLine(108,15+n,120,15+n);
 u8g2.drawLine(108,16+n,120,16+n);
 u8g2.drawLine(108,17+n,120,17+n);
 u8g2.drawLine(107,7+n,107,17+n);
 u8g2.drawLine(106,7+n,106,16+n);
 u8g2.drawLine(105,7+n,105,15+n);
 u8g2.drawLine(121,26+n,121,15+n);
 u8g2.drawLine(122,26+n,122,16+n);
 u8g2.drawLine(123,26+n,123,17+n);
u8g2.drawLine(5,34+n,123,34+n);
  u8g2.setFont(u8g2_font_crox1t_tf);
u8g2.setCursor(7,47+n); 
u8g2.print("ARCAS TECHNOLOGY'S");
u8g2.sendBuffer();
delay(1500);
  swi++;
u8g2.clearBuffer();
  u8g2.sendBuffer();
}
while(swi==1){
   for(int tiempo =0;tiempo!=1;tiempo++){
    SENSOR=0;
  ass=0;
  analogValor = analogRead(analogpila);
  voltajeeeee = 0.0048*analogValor;
   
   
for(int luna=0;luna!=6;luna++) {
  analogValor = analogRead(analogpila);
float  voltaj = 0.0048*analogValor;
ass= ass+voltaj;
if(luna==5){
  SENSOR=ass/5;
}
  }

  u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(25,30); 
u8g2.print("SENSOR");

  u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.setCursor(45,45); 
u8g2.print("DHT"); 
u8g2.sendBuffer();
delay(800);
 float h = dht.readHumidity();
  int t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    u8g2.clearBuffer();         
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(0,30); 
u8g2.print("CONECTE SENSOR"); 
u8g2.sendBuffer();
    return;
  }
  float hic = dht.computeHeatIndex(t, h, false);
u8g2.clearBuffer();  
u8g2.setFont(u8g2_font_helvB10_tf);
u8g2.setCursor(21,12); 
u8g2.print("Temperatura");
u8g2.setFont(u8g2_font_helvR10_tf);
u8g2.setCursor(50,28); 
u8g2.print(t);u8g2.print(" C");
u8g2.drawCircle(68,18,1.7);
      
u8g2.setFont(u8g2_font_helvB08_tf);
u8g2.setCursor(75,45); 
u8g2.print("Humedad");
u8g2.setFont(u8g2_font_helvR08_tf);
u8g2.setCursor(81,58); 
u8g2.print(h);u8g2.print("%");

u8g2.setFont(u8g2_font_helvB08_tf);
u8g2.setCursor(10,45); 
u8g2.print("S.Termica");
u8g2.setFont(u8g2_font_helvR08_tf);
u8g2.setCursor(16,58); 
u8g2.print(hic);u8g2.print(" C");
u8g2.drawCircle(44,50,1);
u8g2.sendBuffer();
delay(2500);
  }
swi=2;
}
u8g2.clearBuffer(); 
u8g2.sendBuffer();
}


FUNCIONAMIENTO



PROGRAMA | SENSOR MQ-2


float RL_VALOR=5,MQ1=0,RAL=9.83,GAS_LP=0;
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

String inputstring = ""; 
float LPCurve[3]={2.3,0.21,-0.47};
float Ro=10;
U8G2_SSD1306_128X32_UNIVISION_F_SW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);

void setup(){
  Serial.begin(9600);
u8g2.begin();
u8g2.clearBuffer();         
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(0,30); 
u8g2.print("Calibrando"); 
u8g2.sendBuffer();
Ro = Calibracion(MQ1);  
 }


 
void loop(){

  for(int bola=4,bota=4;bola!=46,bota!=11;bola++,bota++){
  u8g2.clearBuffer(); 
  u8g2.setFont(u8g2_font_courB08_tf);
  u8g2.setCursor(52,11); 
  u8g2.print("MQ-2");
  u8g2.drawCircle(bola,bota,2, U8G2_DRAW_ALL);
  u8g2.drawLine(0,15,128,15);
  u8g2.drawLine(0,13,128,13);
  u8g2.setFont(u8g2_font_helvR12_tf);
  u8g2.setCursor(0,30); 
  u8g2.print("LPG:");         
  u8g2.setFont(u8g2_font_timR12_tf);
  u8g2.setCursor(38,30); 
  u8g2.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP));
  u8g2.setFont(u8g2_font_helvR08_tf);
  u8g2.setCursor(100,30); 
  u8g2.print("PPM");
  u8g2.sendBuffer();         
  delay(1);
}

for(int bola=10,bota=10;bola!=46,bota!=4;bola++,bota--){
  u8g2.clearBuffer(); 
  u8g2.setFont(u8g2_font_courB08_tf);
  u8g2.setCursor(52,11); 
  u8g2.print("MQ-2");
  u8g2.drawCircle(bola,bota,2, U8G2_DRAW_ALL);
  u8g2.drawLine(0,15,128,15);
  u8g2.drawLine(0,13,128,13);
  u8g2.setFont(u8g2_font_helvR12_tf);
  u8g2.setCursor(0,30); 
  u8g2.print("LPG:");         
  u8g2.setFont(u8g2_font_timR12_tf);
  u8g2.setCursor(38,30); 
  u8g2.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP));
  u8g2.setFont(u8g2_font_helvR08_tf);
  u8g2.setCursor(100,30); 
  u8g2.print("PPM");
  u8g2.sendBuffer();         
  delay(1);
}for(int bola=16,bota=4;bola!=46,bota!=10;bola++,bota++){
  u8g2.clearBuffer(); 
  u8g2.setFont(u8g2_font_courB08_tf);
  u8g2.setCursor(52,11); 
  u8g2.print("MQ-2");
  u8g2.drawCircle(bola,bota,2, U8G2_DRAW_ALL);
  u8g2.drawLine(0,15,128,15);
  u8g2.drawLine(0,13,128,13);
  u8g2.setFont(u8g2_font_helvR12_tf);
  u8g2.setCursor(0,30); 
  u8g2.print("LPG:");         
  u8g2.setFont(u8g2_font_timR12_tf);
  u8g2.setCursor(38,30); 
  u8g2.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP));
  u8g2.setFont(u8g2_font_helvR08_tf);
  u8g2.setCursor(100,30); 
  u8g2.print("PPM");
  u8g2.sendBuffer();         
  delay(1);
}for(int bola=22,bota=10;bola!=46,bota!=4;bola++,bota--){
  u8g2.clearBuffer(); 
  u8g2.setFont(u8g2_font_courB08_tf);
  u8g2.setCursor(52,11); 
  u8g2.print("MQ-2");
  u8g2.drawCircle(bola,bota,2, U8G2_DRAW_ALL);
  u8g2.drawLine(0,15,128,15);
  u8g2.drawLine(0,13,128,13);
  u8g2.setFont(u8g2_font_helvR12_tf);
  u8g2.setCursor(0,30); 
  u8g2.print("LPG:");         
  u8g2.setFont(u8g2_font_timR12_tf);
  u8g2.setCursor(38,30); 
  u8g2.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP));
  u8g2.setFont(u8g2_font_helvR08_tf);
  u8g2.setCursor(100,30); 
  u8g2.print("PPM");
  u8g2.sendBuffer();         
  delay(1);
}



}

float calc_res(int raw_adc)
{return ( ((float)RL_VALOR*(1023-raw_adc)/raw_adc));}

float Calibracion(float mq_pin){
int i;
float val=0;
for (i=0;i<50;i++) {
val += calc_res(analogRead(mq_pin));
delay(50);}

val = val/50;                                                                                    
val = val/RAL;
return val;
}

float lecturaMQ(int mq_pin){
int i;
float rs=0;
for (i=0;i<5;i++) {
rs += calc_res(analogRead(mq_pin));
delay(50);
 }
rs = rs/5;
return rs;
}

 int porcentaje_gas(float rs_ro_ratio, int gas_id){
if ( gas_id == GAS_LP ) {
return porcentaje_gas(rs_ro_ratio,LPCurve);
   }
  return 0;
}
int porcentaje_gas(float rs_ro_ratio, float *pcurve){
return (pow(10, (((log(rs_ro_ratio)-pcurve[1])/pcurve[2]) + pcurve[0])));
}


FUNCIONAMIENTO






Gracias por ver proyecto si gustan una guia para desarrollarlo dejen un comentario