martes, 10 de enero de 2017

Control DHT11 20°- 90°

// ARDUINO UNO

#include <LiquidCrystal.h>
#include <DHT.h>

#define DHTpin 7
#define DHTtype DHT11

DHT dht11 (DHTpin, DHTtype);

LiquidCrystal lcd(13,12,11,10,9,8);

void setup() {
 // Serial.begin(9600);
  dht11.begin();
  lcd.begin(16,2);
  lcd.clear();

  pinMode(2,OUTPUT);//ejemplo q sea un motor

}

void loop() {
  int temp,hume;
  temp = dht11.readTemperature();
  hume = dht11.readHumidity();

if(temp>=20){
  digitalWrite(2,HIGH);
}

else {
  digitalWrite(2,LOW);
}
if(temp<=90)
{
  digitalWrite(2,HIGH);
}

else {
  digitalWrite(2,LOW);
}
 
lcd.setCursor(0,0);
  lcd.print("Temperatura ");
  lcd.print(temp);
  lcd.print("C");
  delay(2000);


}

PCB Wizard - Placa Inversión de Giro



Placa de Control de Inversion de Giro de un Motor Trifásico





Ejemplo la Conexión es similar para un Motor Trifásico







Cuenta de Display del 20 hasta 60 Exms.



//PROGRAMACIÓN  PIC 18F4550
//Conteo desde el numero 20 hasta solo 60

unsigned short NUMERO[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67};

void main() {
 int k=2;  //decenas
 int j=0;  //unidades
 int n=20;  //cantidades de veces q se repiten

 trisd=0x00;    //apagado los display

 trisb=0x00;    //apagados  el pulso para los display

 portd=0;
 portb=0;

 while(1){

 portd=NUMERO[k];
 portb.f0=1;
 delay_ms(200);
 portb=0;
 j++;

 if(j==10){
    j=0;
    k++;
    if(k==6)
    k=2;
    if(j==0)
    j=0;
    }

 portd=NUMERO[j];
 portb.f1=1;
 delay_ms(200);
 portb=0;

   n++;
 }

}

lunes, 9 de enero de 2017

Control de Servo BLUETOOTH


// ARDUINO UNO

#include <SoftwareSerial.h>   //Incluimos libreria para crear nuestro propio RX-TX

SoftwareSerial NZV (2,3);    //2 es igual a RX
                            //3 es igual a TX

#include <Servo.h>                //Incluimos La libreria del MicroServo

Servo servo;                    //Creo el primer objeto cone el nombre "servo"

int puls_rest =0;        //Estas tres variables son creadas para almacenar en los pines A0,A1,A2
int puls_der =0;         //Configuramos que esten los tres para inicializar a los pulsadores en 0
int puls_izq =0;         //que se encuentre en un estado cero
void setup()
{ Serial.begin(9600);
  NZV.begin(9600);

  servo.attach(5,500,2400); // Asocia el servo al pin 3, define el min y max del ancho del pulso
                              // eso depende del fabricante del servo
  pinMode(A0,INPUT); //Para los 3 pulsadores
  pinMode(A1,INPUT);
  pinMode(A2,INPUT);
}

void loop()
{    int a;
//-------------------------Funcion de Recepcion
  if(Serial.available() > 0){
     a = Serial.read();
  }
//-------------------------Funcion de Transmision
  if(a == '1'){
  servo.write(0);
  }
  if(a == '2'){
  servo.write(90);
  }
  if(a == '3'){
  servo.write(180);
  }
    puls_rest = digitalRead(A0);     //Lee el valor del pin si esta en HIGH-LOW
    puls_der = digitalRead(A1);     //Lee el valor del pin si esta en HIGH-LOW
    puls_izq = digitalRead(A2);     //Lee el valor del pin si esta en HIGH-LOW
                   
    if(puls_rest==HIGH){
    servo.write(0);               //el servo Gira  a 0 grados
    delay(25);                     //Espera 25 mili segundos a que el servo llegue a la posicion
    }

    if(puls_der==HIGH){
    servo.write(90);              //el servo Gira a 90 grados
    delay(25);
    }

    if(puls_izq==HIGH){                
    servo.write(180);             //el servo Gira a 180 grados
    delay(25);
    }                    
  }


Control de Servomotor con un Pulsador

//PROGRAMACIÓN ARDUINO-UNO

#include <Servo.h>                //Incluimos La libreria del MicroServo

Servo servo;                    //Creo el primer objeto cone el nombre "servo"

void setup()
{ Serial.begin(9600);
 
  servo.attach(9,500,2400); // Asocia el servo al pin 9
, define el min y max del ancho del pulso
                              // eso depende del fabricante del servo
  pinMode(A0,INPUT);    //Configuramos INPUT para Pulsador
}
 
void loop()
{  
  int pulsador;
 
    pulsador = digitalRead(A0);     //Almacenamos en la variable pulsador digitalRead(A0);
                                    //Lee el valor del pin si esta en HIGH-LOW
                   
    if(pulsador==HIGH){   //Si el pulsador es pulsado se activa el servomotor
    servo.write(0);               //el servo Gira  a 0 grados
    delay(25);                    //Espera 25 mili segundos a que el servo llegue a la posicion

    servo.write(90);              //el servo Gira a 90 grados
    delay(25);
                   
    servo.write(180);             //el servo Gira a 180 grados
    delay(25);
    }                    
  }



DISPLAY 7 SEGMENTOS PIC18F4550


//DISPLAY 7 SEGMENTOS PIC18F4550

void main() {
unsigned short NUMERO[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x67};

trisc.f0=1;

trisd=0;
portd=0;

while(1){
int k=0;

for(k=0; k<=9; k++){
  portd=NUMERO[k];
  delay_ms(200);


}
for(k=8; k>=0; k--){
  portd=NUMERO[k];
  delay_ms(200);

}
}


}

Encender y Apagar un led con un button-PIC18f4550

//MODULO FULL-DOWN PIC 18F4550

void main() {

trisc.f0=1;

trisd=0;
portd=0;

while(1){

int estado;
int estadoAnterior;
int salida;

estado=portc.f0;

if((estado==1)&&(estadoAnterior==0)){

salida=1-salida;
delay_ms(20);
}

estadoAnterior=estado;

if(salida==1){
portd=1;
}

 else{
 portd=0;
 }
}
}