viernes, 30 de marzo de 2018

Motor a Pasos para control de Chapas


//Declaramos las bobinas del motor a pasos.
const int bobina1 = 8;    // 28BYJ48 In1
const int bobina2 = 9;    // 28BYJ48 In2
const int bobina3 = 10;   // 28BYJ48 In3
const int bobina4 = 11;   // 28BYJ48 In4
                   
//definicion variables
int velocidad_Motor = 2500;   //variable para fijar la velocidad
int contador_Pasos = 0;     // contador para los pasos
int pasos_Por_Vuelta = 2050;  // pasos para una vuelta completa


//tablas con la secuencia de encendido (descomentar la que necesiteis)
//secuencia 1-fase 
const int num_Pasos = 4;
const int pasos_Salida[4] = { B1000, B0100, B0010, B0001 };
 
//secuencia 2-fases //Mayor torque, pero más potencia requerida.
//const int num_Pasos = 4;
//const int pasos_Salida[4] = { B1001, B1100, B0110, B0011 };



void sentido_Horario()
{
  contador_Pasos++;
  if (contador_Pasos >= num_Pasos){
    contador_Pasos = 0;
  }
  digitalWrite(bobina1, bitRead(pasos_Salida[contador_Pasos], 0));
  digitalWrite(bobina2, bitRead(pasos_Salida[contador_Pasos], 1));
  digitalWrite(bobina3, bitRead(pasos_Salida[contador_Pasos], 2));
  digitalWrite(bobina4, bitRead(pasos_Salida[contador_Pasos], 3));
}
 
/* 
 void sentido_AntiHorario()
{
  contador_Pasos--;
  if (contador_Pasos < 0) {
    contador_Pasos = num_Pasos - 1;
  }
  digitalWrite(bobina1, bitRead(pasos_Salida[contador_Pasos], 0));
  digitalWrite(bobina2, bitRead(pasos_Salida[contador_Pasos], 1));
  digitalWrite(bobina3, bitRead(pasos_Salida[contador_Pasos], 2));
  digitalWrite(bobina4, bitRead(pasos_Salida[contador_Pasos], 3));
}
*/
 
 
 
void setup()
{
  //declarar pines como salida
  pinMode(bobina1, OUTPUT);
  pinMode(bobina2, OUTPUT);
  pinMode(bobina3, OUTPUT);
  pinMode(bobina4, OUTPUT);
}
 
void loop()
{
  for (int i = 0; i < pasos_Por_Vuelta; i++)
  {
    sentido_Horario();
    delayMicroseconds(velocidad_Motor);
  }
  
  delay(1000);
}
 

martes, 9 de enero de 2018

Alarma control de Apnea

//  Curso Arduino - Asociación de Robótica Aplicada y Ciencias de la Tecnología.
//  Programa:  Alarma para el control de la Apnea  
//  El objetivo de este programa es realizar una alarma para que aquellas personas que padecen
            // apnea puedan saber en qué momento han dejado de respirar mientras duermen.
            
//  Created by ARACT UNAM on 9/Enero/2018
//  Copyright (c) 2015 Claudio Ibáñez Garduño. All rights reserved.
//  Proyectos, Cursos, Asesorias: 6643-6200 ó 55-6255-7612
//  robotica.unam@gmail.com

const int led=8, buzzer=9, sensor=A0; // Asignamos nombres a nuestros pines
int resp=0, cont=0; // declaramos variables:
                      //resp almacenará la respuesta del sensor y
                      // cont almacenará los mili segundos que deja de respirar.

void setup() {
Serial.begin(9600);
pinMode(sensor,INPUT);  //Declaramos pines (entrada y salida).
pinMode(led,OUTPUT);
pinMode(buzzer,OUTPUT);
}

void loop() {
  resp=digitalRead(sensor); //Leemos la respuesta del sensor
  Serial.println(resp); //Imprimimos la respuesta -> esto para poder graficar.
  delay(10); // Pausa de 10 milisegundos 
  
  while(resp==0){     //Mientras no haya respiración empezamos a contar.
      cont=cont+1;
      while (cont>=350){ //Si el contador llega a 3.5 segundos, hacemos sonar la alarma.
          digitalWrite(buzzer,HIGH);
          digitalWrite(led,HIGH);
          delay(400);
          digitalWrite(buzzer,LOW);
          digitalWrite(led,LOW);
          delay(120);
        }
       resp=digitalRead(sensor); //Volvemos a leer el sensor
       Serial.println(resp); //Imprimimos
       delay(10);
    }
     cont=0; //Dado que ya respiró, volvemos a iniciar la cuenta.
     
}



domingo, 31 de diciembre de 2017

Sensor DHT11 Con Ventilador

Sensor DHT11 Con Ventilador


//  Curso Arduino - Asociación de Robótica Aplicada y Ciencias de la Tecnología.
//  Programa:  Sensor DHT11 Sensor de Temperatura y humedad.
//  El objetivo de este programa es obtener la temperatura y humedad del medio ambiente,
//        mediante el sensor DHT11.

//  Created by ARACT UNAM on 20/08/15.
//  Copyright (c) 2015 Claudio Ibáñez Garduño. All rights reserved.
//  Proyectos, Cursos, Asesorias: 6643-6200 ó 55-6255-7612
//  robotica.unam@gmail.com


//Incluimos biblioteca para poder utilizar el DHT11
#include <DHT.h>

//Asignamos nombre de nuestros pines de Arduino a utilizar
const int ventilador=3;
const int sensorDHT=A2;

//Declaramos 2 variables tipo entero para almacenar los datos leidos del sensor
int temp, humedad;

//Le asignamos un nombre a nuestro objeto
DHT dht (sensorDHT,DHT11);

//Configuaraciòn inicial de la Tarjeta Arduino
void setup(){
  Serial.begin(9600); //Iniciamos comunicaciòn con la PC a 9600 Batios
  pinMode(ventilador,OUTPUT); //Le indicamos que el ventilador (pin 8) serà de salida
  dht.begin(); //Iniciamos nuestro sensor DHT11
  }

void loop(){
      humedad= dht.readHumidity(); //Funcion incluida en la libreria. Permite leer la humedad.
      temp= dht.readTemperature(); //Permite leer la temperatura.


      //Se imprime en pantalla los datos leìdos.
      Serial.print("Temperatura: ");
      Serial.print(temp);
      Serial.println("ºC"); //Tempertura: 29ºC
      Serial.print("Humedad: ");
      Serial.print(humedad);
      Serial.print("%");
      Serial.println(" ");
      Serial.println(" ");

      //Pausa de 1 Segundo para poder apreciar los datos.
      delay(1000);

      while (temp>=24){ //Condición para mantener el ambiente fresco.
        Serial.println("Ventiladores Encendidos");
        digitalWrite(ventilador,HIGH); //Encendemos el ventilador
        temp= dht.readTemperature(); //Volvemos a leer la temperatura
        delay(2000);
        }

        digitalWrite(ventilador,LOW);
 
  }


sábado, 10 de junio de 2017

RFID - RC522 Lector de Tarjetas RF con Arduino.

/* Programa para leer Tarjetas RFID y verificar si es un usuario Valido.
  Hecho por Claudio Alberto Ibañez Garduño en colaboración con
  La Asociación de Robótica Aplicada y Ciencias de la Tecnología.
  Ocupando la biblioteca elaborada por Miguel BaǨlboa.
*/


//Incluimos bibliotecas para utilizar el RC522
#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN  9    //Pin 9 para el reset del RC522
#define SS_PIN  10   //Pin 10 para el SS (SDA) del RC522
MFRC522 Lector1(SS_PIN, RST_PIN); ///Creamos el objeto para el RC522 al cual llamamos Lector1



void setup() {
  Serial.begin(9600); //Iniciamos La comunicacion serial
  SPI.begin();        //Iniciamos el Bus SPI
  Lector1.PCD_Init(); // Iniciamos el MFRC522
  Serial.println("Bienvenido al Sistema Lector de Tarjetas RFID\n    Por Favor Acerca tu Tarjeta al Lector\n");
}


void loop() {
 
  if ( Lector1.PICC_IsNewCardPresent())   // Revisamos si hay nuevas tarjetas  presentes.

        {
            if ( Lector1.PICC_ReadCardSerial())  //Leemos la tarjeta presente.

            {
                 
                  Serial.print("El ID de tu tarjeta es: "); // Imprimimos el ID de la tarjeta
                  for (byte i = 0; i < Lector1.uid.size; i++) {
                          Serial.print(Lector1.uid.uidByte[i] < 0x10 ? " 0" : " ");
                          Serial.print(Lector1.uid.uidByte[i], DEC);          
                  }
                  Serial.println(" ");                

           
                  Lector1.PICC_HaltA(); // Terminamos la lectura de la tarjeta tarjeta para ahorrar energía.
                  Lector1.PCD_StopCrypto1(); //Detenemos la encriptacion.
                 
         
            }
     
  }
 
}



martes, 14 de febrero de 2017

Control de 5 LED's


const int led1=5; //Declaramos las constantes que ocuparemos para identificar nuestros pines.
const int led2=6;
const int led3=7;
const int led4=8;
const int led5=11;
int x=0;

void funcionVibora(){
 
   while(x!=10){
      digitalWrite(led1,HIGH);
      digitalWrite(led2,LOW);
      digitalWrite(led3,LOW);
      digitalWrite(led4,LOW);
      digitalWrite(led5,LOW);
      delay(150);
   //--------------------------------  
      digitalWrite(led1,LOW);
      digitalWrite(led2,HIGH);
      digitalWrite(led3,LOW);
      digitalWrite(led4,LOW);
      digitalWrite(led5,LOW);
      delay(150);
  //--------------------------------
      digitalWrite(led1,LOW);
      digitalWrite(led2,LOW);
      digitalWrite(led3,HIGH);
      digitalWrite(led4,LOW);
      digitalWrite(led5,LOW);
      delay(150);
  //--------------------------------
      digitalWrite(led1,LOW);
      digitalWrite(led2,LOW);
      digitalWrite(led3,LOW);
      digitalWrite(led4,HIGH);
      digitalWrite(led5,LOW);
      delay(150);
  //--------------------------------
      digitalWrite(led1,LOW);
      digitalWrite(led2,LOW);
      digitalWrite(led3,LOW);
      digitalWrite(led4,LOW);
      digitalWrite(led5,HIGH);
      delay(150);
  //--------------------------------
      digitalWrite(led1,LOW);
      digitalWrite(led2,LOW);
      digitalWrite(led3,LOW);
      digitalWrite(led4,HIGH);
      digitalWrite(led5,LOW);
      delay(150);
  //--------------------------------
      digitalWrite(led1,LOW);
      digitalWrite(led2,LOW);
      digitalWrite(led3,HIGH);
      digitalWrite(led4,LOW);
      digitalWrite(led5,LOW);
      delay(150);
  //--------------------------------
      digitalWrite(led1,LOW);
      digitalWrite(led2,HIGH);
      digitalWrite(led3,LOW);
      digitalWrite(led4,LOW);
      digitalWrite(led5,LOW);
      delay(150);
   //--------------------------------    
      digitalWrite(led2,LOW);
      x++;
    }
  }

void setup() {
 Serial.begin(9600); //Iniciamos comunicación con la computadora.
 pinMode(led1,OUTPUT); //Indicamos que los pines son de salida.
 pinMode(led2,OUTPUT);
 pinMode(led3,OUTPUT);
 pinMode(led4,OUTPUT);
 pinMode(led5,OUTPUT);
}

void loop() {
 funcionVibora();
}






domingo, 8 de enero de 2017

Sensor de Pulsos Cardiacos

int pulso=0;

void setup() {
Serial.begin(9600);
pinMode(A5,INPUT);
pinMode(11,OUTPUT);
}

void loop() {
  pulso=analogRead(A5);
  if(pulso>=513){
    digitalWrite(11,HIGH);
    delay(30);
    digitalWrite(11,LOW);
  }
  delay(50);
  Serial.println(pulso );
}



martes, 27 de diciembre de 2016

Código y Conexiones Sensor Reversa con Arduino y HC-RS04

long distancia=0, tiempo=0;

void setup()
{
  Serial.begin(9600);
  pinMode(9, OUTPUT); //trig -> bocina ultrasónica
  pinMode(8, INPUT); //echo -> microfono
  pinMode(11,OUTPUT); //buzzer
}

void loop()
{
digitalWrite(9,LOW);
delayMicroseconds(5);
digitalWrite(9,HIGH);
delayMicroseconds(10);
tiempo=pulseIn(8,HIGH);
distancia=(0.017*tiempo);
//Serial.print(distancia);
//Serial.print("cm");

if(distancia<=100){  
    digitalWrite(11,HIGH);
    delay(distancia*7);
    digitalWrite(11,LOW);
    delay(distancia*7);
  } else      //Si la distancia es mayor a 100cm la bocina queda apagada.
    digitalWrite(11,LOW);

}