lunes, 29 de abril de 2019

SENSOR APARCACOCHES

long distancia;
long tiempo;
int sonidoPin=12;
int pinTrig=9;
int pinEcho=8;
int pinZumbador=12;            //Declaramos las entradas y los tonos.
int ledr=3;
int leda=5;
int ledv=6;
int tonoa=200;
int tonob=500;
int tonoc=700;
void setup(){
Serial.begin(9600);
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
pinMode(ledr, OUTPUT);            //Indicamos que los leds están apagados.
pinMode(leda, OUTPUT);
pinMode(ledv, OUTPUT);
pinMode(sonidoPin, OUTPUT);
}
void loop(){
digitalWrite(pinTrig,LOW);
delayMicroseconds(6);                //Indicamos la función de pinTrig y pinEcho y el tiempo.
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);          
tiempo=pulseIn(pinEcho, HIGH);
distancia= int(0.017*tiempo);
Serial.println("Distancia ");
Serial.println(distancia);
Serial.println(" cm");
delay(1000);
if (distancia<10){              
digitalWrite(ledr, HIGH);  //Si la distancia es menor que 10,luce el led rojo y suena el tono C.
tone(sonidoPin,tonoc);
delay(120);}
else {
noTone (sonidoPin);
digitalWrite(ledr, LOW);

if (distancia>10 && distancia<20){
digitalWrite(leda, HIGH);       //Si la distancia es mayor que 10  y menor que 20
 tone(sonidoPin,tonob);                              luce el led amaillo y suena el tono B.   
delay(120);}
else {
noTone (sonidoPin);
digitalWrite(leda, LOW);

if (distancia>20 && distancia<30){
digitalWrite(ledv, HIGH);     //Si la distancia es mayor que 20 y menor que 30,luce el led rojo y           tone(sonidoPin,tonoa);                                                    suena el tono A.
delay(120);}
else {
noTone (sonidoPin);
digitalWrite(ledv, LOW);}
}
}

}


EXPLICACIÓN:Si la distancia es menor que 20, se enciende el led verde y suena con un tono; si la distancia está entre 10 y 20 se enciende el amarillo y el pulsador suena a un tono distinto al verde; y si la distancia es menor de 10, se enciende el rojo y el pulsador suena de otro tono.

martes, 9 de abril de 2019

Brazo Robótico.

#include <Servo.h>
  Servo mi_servo;
  int posicion_mi_servo;
  const int pulsador_izquierda = 2;
  const int pulsador_derecha   = 4;
  int estado_pulsador_izquierda = 0;   // Declaramos los elementos, como se encuentran y el ángulo                                                                                                     que queremos.
  int estado_pulsador_derecha   = 0;
  int incremento_de_angulo      = 10;
  void setup()
{
mi_servo.attach(9) ;

  pinMode(pulsador_izquierda, INPUT);      // Decimos que los interruptores están apagados.
  pinMode(pulsador_derecha,   INPUT);
 }
void loop() {
  estado_pulsador_izquierda = digitalRead(pulsador_izquierda);
  estado_pulsador_derecha   = digitalRead(pulsador_derecha)  ; 
  if (estado_pulsador_izquierda == HIGH)
  {
  posicion_mi_servo = posicion_mi_servo+ incremento_de_angulo;    // Si pulsamos el pulsador izquierdo, el servo se mueve un ángulo de 10º hacia un lado, esperando cierto tiempo.
mi_servo.write(posicion_mi_servo);                           
  delay(500);                                                             
   }
  else {if (estado_pulsador_derecha == HIGH)
{
  posicion_mi_servo = posicion_mi_servo - incremento_de_angulo;   // Si pulsamos el pulsador izquierdo, el servo se mueve un ángulo de 10º hacia el otro lado, esperando el tiempo indicado.
mi_servo.write(posicion_mi_servo);
  delay(500);
  }
    else {         
    delay(500);
  }
}
}

martes, 2 de abril de 2019

4.- Servo controlado por teclado,

5º CÓDIGO CON LA FUNCIÓN "IF":


#include <Servo.h>
Servo miservo;
int pos=0;
int TECLA=0;     // Declaramos los pines y posiciones.
void setup()
 {
  Serial.begin(9600);
  miservo.attach(9);   // Señalamos la velocidad por bits a la que se moverá.
  pos=0; 
}
void loop()
 {
    miservo.write(pos);
    delay(60);
    Serial.println(pos);                 
    if (Serial.available() > 0)
{  
       delay(10);
       TECLA=Serial.read();     // Si pulsamos la tecla 5 el servo está en posición 0.
       if (TECLA==50){ (5)  
          pos=0;
          }                                  
       if (TECLA==51){ (6) 
          pos=90;                            // Si pulsamos la tecla 6 el servo está en posición 90.
          }
       if (TECLA==52){ (7) 
          pos=180;                           // Si pulsamos la tecla 7 el servo está en posición 180.
          }
       }
}


3.- Servo controlado por un potenciómetro.




#include <Servo.h>
Servo servo;
int pot = 3;                     // Declaramos las entradas.
void setup() {
  Serial.begin(9600);      // Decimos como es el comienzo.
  servo.attach(9); 
}
void loop() {
  int valorpot= analogRead(pot);
  val=map(valorpot,0,1023.0.150;   // El servo se mueve los valores indicados con el tiempo                                                                                         justo.
  Serial.print(val);
  servo.write(val);
  delay(200);
}



2.- Limpiaparabrisas de un coche.




#include <Servo.h>      
#define pinServo 9                // Declaramos las entadas.
Servo miservo;          
int pos=0;                   
void setup()
 {
miservo.attach(pinServo);        
}
void loop() {
 for (pos=0; pos<=150; pos=pos+1);
{
 miservo.write(pos);                     // Indicamos que el servo se mueva a un ángulo de 150º a una velocidad y                                                                     que retroceda a 0º más rápido.
 delay(1300); 
    }
  for (pos=150; pos>=0; pos=pos-1);
 {
  miservo.write(pos);                  
   delay(900); 
    }
}


1-Movimiento de un servo. Ejercicio 3.

3º Barrera de aparcamientos de coche.


#include <Servo.h>
Servo miservo;    
int pos = 0;                  // Declaramos las entradas.
void setup()
{
  miservo.attach(9);      // Indicamos lugar donde está conectado el servo.
}
void loop()
 {
 pos=0;
 miservo.write(pos);
 delay(1200);                 // El servo se mueve un ángulo de 90º, espera un tiempo y vuelve a                                                             0º
 pos=90;
 miservo.write(pos);
 delay(1200);       
}
}



1-Movimiento simple de un servo. Ejercicio 2.

2º Giros marcados por mi.


#include <Servo.h>
Servo miservo;             // Declaramos las entradas.
int pos = 0;
void setup()
{
 miservo.attach(9);            //Decimos donde tenemos el servo conectado.
}
void loop() 
{
pos=0;
miservo.write(pos);
delay(700);     
pos=180;
miservo.write(pos);
delay(700);                     //Hemos indicado que el servo se mueva a cierto ángulo cada                                                               X tiempo.
pos=30;
miservo.write(pos);
delay(700);
pos=90
miservo.write(pos);
delay(700);
    }


1-Movimiento simple de un servo. Ejercicio 1.




#include <Servo.h>
Servo miservo;                // Declaramos las entradas.
int pos = 0;   
void setup()
{
  miservo.attach(9);        // Indicamos posición del servo en nuestra placa.
}
void loop() {
for (pos=0; pos<=180; pos+=20) 
{                                     // Indicamos que el servo se mueva a cierta posición y que                                                  cuando llegue vuelva al inicio y lo haga constantemente.
  miservo.write(pos);
  delay(800);     
}
}