lunes, 13 de mayo de 2019

SENSOR DE ULTRASONIDO

long distancia;//Creamos la variable de la distancia
long tiempo;//Creamos la variable del tiempo
int pinTrig=9;//Declaramos la variable Trig, que es el que envía el ultrasonido en el pin 9.
int pinEcho=8; //Declaramos la varibale Echo, que es la que recoge el rebote del ultrasonido, en el pin8.
int verde=13;//Declaramos el led verde en el pin 13.
int amarillo=2;//Declaramos el led amarillo en el pin 2;
int rojo=4;//Declaramos el led rojo en el pin 4;
int sonido=6;//Declaramos el zumbador en el pin 6;
int tonoa=2000;//Declaramos el tono a en 2000hz.
int tonob=5000;//Declaramos el tono b en 5000Hz.
int tonoc=1000;//Declaramos el tono c en 1000Hz.
void setup(){
  Serial.begin(9600);// El ordenador se conectar con la placa a 9600 bytes por segundo.
  pinMode(pinTrig, OUTPUT); //PIN9 como salida/TRIG para enviar el ultrasonido
  pinMode(pinEcho, INPUT);//PIN8 entrada,recoge el rebote del ultrasonido
  pinMode(verde,OUTPUT);// led verde como salida.
  pinMode(rojo,OUTPUT);//led rojo como salida
  pinMode(amarillo,OUTPUT);//led amarillo como salida.
  pinMode(sonido,OUTPUT);//el zumbador como salida.
}
void loop(){
  digitalWrite(pinTrig,LOW); /* Por cuestión de estabilización del sensor*/
  delayMicroseconds(5);//esperamos 5 microsegundos.
  digitalWrite(pinTrig, HIGH); /* envío del pulso ultrasónico*/
  delayMicroseconds(10);//esperamos 10 microsegundos.
  tiempo=pulseIn(pinEcho, HIGH);//
  distancia= int(0.017*tiempo); //distancia medida en cm
  Serial.println("Distancia ");//En la consula aparece la palabra distancia.
  Serial.println(distancia);
  Serial.println(" cm");//En la consula aparece la palabra cm
  delay(1000);//esperamos 1000ms
    if(distancia>30){//creamos una condicional
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,LOW);
  digitalWrite(verde,LOW);
  noTone(sonido);
    delay(10);//si la distancia es mayor que 30 cm todos los led estan apagados y esperamos 10 ms.

    }else
    {
      if(distancia>20d&&distancia<30){
 
    digitalWrite(rojo,LOW);
    digitalWrite(verde,HIGH);
    digitalWrite(amarillo,LOW);
    tone(sonido,tonoc,1000);
    delay(10);//si la distancia es mayor de 20 cm y menor que 30 cm solo se encience el led verde y espera 10 ms.
      }
      else{
        if(10<=distancia&&distancia<20){
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,HIGH);
  digitalWrite(verde,LOW);
  tone(sonido,tonob,100);
  delay(10);//si la distancia es mayor o igual que 10 cm y menos que 20 cm ,solo  se enciende el del amarillo.
  }
      else{
 
  if(distancia<10){
  digitalWrite(rojo,HIGH);
  digitalWrite(amarillo,LOW);
  digitalWrite(verde,LOW);
  tone(sonido,tonoc,10);
    delay(10);si la distancia  es manor que 10 cm, solo se enciende el led rojo y esperamos 10 ms.
  }
   
  }
      }
}

jueves, 28 de marzo de 2019

SERVOMOTOR CONTROLADO CON TECLADO

#include <Servo.h>
Servo miservo;
int pos=0;
int TECLA=0;
void setup() {
  Serial.begin(9600);
  miservo.attach(9);
  pos=0;
}
void loop() {
    miservo.write(pos);
    delay(50);
    Serial.println(pos);
    if (Serial.available() > 0) {  //esto da algo de error
       delay(100);
       TECLA=Serial.read();
       switch (TECLA) {
        case 49:
             pos=45;
        break;
        case 50:
            pos=90;
        break;
        case 51:
            pos=135;
        break;
        defautl:
            pos=0;
       }
       }
}



Primero incluimos un servomotor y le llamamos miservo,creamos una variable de posición y la igualamos a la posición 0 y creamos  otra variable de tecla y la igualamos a 0 . Con el void setup le decimos que conecte con el ordenador a una velocidad de 9600 bytes por segundo, que el servomotor está conectado en la posición 9 y que se vaya a la posición 0. Con el void loop le decimos que escriba la posición del miservo, que espere 50 ms y que después imprima la posición. Después con el if le decimos que si el numero de bytes es mayor que cero que espere 100ms. Si el valor de la tecla es 49, que se vaya a la posición 45 y que pare(break) y después que vuelva a la posición 0. Si el valor de la tecla es 50, que se vaya a la posición 90 y que pare y vuelva a la posición 0 y si el valor de la tecla es 51, que vaya a la posición 135 , que pare y que vuelva a la posición 0.

SERVOMOTOR CONTROLADO CON UN POTENCIOMETRO

#include <Servo.h>
int val;
Servo servo;
int pot = 3;  //entrada analógica del potenciometro
void setup() {
  Serial.begin(9600);
  servo.attach(9);
}
void loop() {
  int valorpot= analogRead(pot);
  val=map(valorpot,0,1023,0,180);
  Serial.print(val);
  servo.write(val);
  delay(100);
}


Primero incluimos un servomotor y creamos una variable que se llame val. Creamos otra variable para el potenciometro cuya entrada analógica es el pin 3. Después, con el void setup le decimos que comience la comunicación con el ordenador  a 9600 bytes por segundo y que el servomotor está conectado al pin 9. Con el void loop, le decimos que lea el valor del potenciometro,después le decimos que relacione el valor del potenciometro como una regla de tres, si 0 es 0, 1023 es 180. Después con Serial print va a escribir la posición donde esté y también lo escribirá en el servomotor. Finalmemte le decimos que se espere 100ms.

viernes, 22 de marzo de 2019

BARRA DE APARCAMIENTO

#include <Servo.h>
Servo miservo;   
int pos = 0; 
void setup(){
  miservo.attach(9);
}
void loop() {

for (pos=0; pos<=90; pos+=90)  {
  miservo.write(pos);
  delay(3000);   
}
pos=0;
}


Primero indicamos que hay un Servomotor,después llamamos al servomotor "miservo" y le indicamos que está en la posición 0. Con void setup le decimos que miservo está conectado en el pin 9. Con el void loop le decimos que vaya desde la posición 0 hasta la 90 aumentando de 90 en 90. Cuando esté en la posición 90, le decimos que espere 3 segundos y después vuelva a la posición 0.

viernes, 15 de marzo de 2019

LIMPIAPARABRISAS

#include <Servo.h>   
#define pinServo 9   //
Servo miservo;       
int pos=0;                 
void setup() {
    miservo.attach(pinServo);     
}
void loop() {
    for (pos=0; pos<=170; pos=pos+130); {
       miservo.write(pos);                   
       delay(800);
    }
    for (pos=170; pos>=10; pos=pos-0.01); {
       miservo.write(pos);                 
       delay(500);
    }
}



Primero indicamos que hay un servomotor,después le indicamos que está conectado en el pin9 y le ponemos el nombre de "miservo". A continuación, le indicamos que siempre lea el pinServo. Con el void loop le decimos que primero empieze desde la posición 0 y llegue desde hasta la posición del ángulo menor o igual que 170 aumentando  la posición de 130 en 130 ,después de llegar a 170 le indicamos que espere 0,8 segundos.Después, con el siguiente for indicamos  que cuanto este situado en la posición170 vaya hasta una posición mayor o igual que 10 bajando de 0,01 en 0,01 y finalmente cuando llegue a esa posición espere 0,5 segundos y vuelva a empezar

calendario