ROBOTICA

Ultrasonido

int trig=2;

int echo=3;
int tiempo;
int distancia;

void setup()
{

Serial.begin(9600);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
}

void loop()
{
digitalWrite(trig,HIGH);
delay(1);
digitalWrite(trig,LOW);
tiempo=pulseIn(echo,HIGH);
distancia=tiempo/58.2;
Serial.println(distancia);
delay(500);

}

___________________________________________________

/*

  Creado: Luis del Valle (ldelvalleh@programarfacil.com)

  https://programarfacil.com

*/


// Incluímos la librería para poder controlar el servo

#include <Servo.h>


// Declaramos la variable para controlar el servo

Servo servoMotor;


void setup() {

  // Iniciamos el monitor serie para mostrar el resultado

  Serial.begin(9600);


  // Iniciamos el servo para que empiece a trabajar con el pin 9

  servoMotor.attach(9);

}


void loop() {

  

  // Desplazamos a la posición 0º

  servoMotor.write(0);

  // Esperamos 1 segundo

  delay(1000);

  

  // Desplazamos a la posición 90º

  servoMotor.write(90);

  // Esperamos 1 segundo

  delay(1000);

  

  // Desplazamos a la posición 180º

  servoMotor.write(180);

  // Esperamos 1 segundo

  delay(1000);

}



CÓDIGO RADAR ARDUINO


DAR CLIC código PROCESSING

__________________________________________________________________________________

CÓDIGO 8 PWM BLYNK

//Include the library files
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

// Enter your Auth token
char auth[] = "";

//Enter your WIFI SSID and password
char ssid[] = "";
char pass[] = "";

void setup(){
  // Debug console
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
}

void loop(){
  Blynk.run();
}
______________________________________________________________




IMAGEN SCRATCH 4



link proyecto: https://scratch.mit.edu/projects/851929671/












CIRCUITO 1.

CIRCUITO 2


CIRCUITO 3

CIRCUITO 4


________________________________________________________________

BLYNK

#define BLYNK_TEMPLATE_ID "TMPL2a-0jvyzF"

#define BLYNK_TEMPLATE_NAME "Led Test"

#define BLYNK_AUTH_TOKEN "XLZAQWuYvH8vJXuNbJjFWW1VnKjeVXlG"


#include <ESP32Servo.h>


int posicion = 0 ;

Servo miServo;


#define BLYNK_PRINT Serial

//#define BLYNK_DEBUG


#include <WiFi.h>

#include <WiFiClient.h>

#include <BlynkSimpleEsp32.h>


char auth[] = BLYNK_AUTH_TOKEN;


char ssid[] = "Siglo XXI_2.4G";

char pass[] = "SigloxxiA.";


int led1 =18;

int  led2 = 25;

int led3 = 16;

int led4 = 14;

int led5 = 15;

int servoPin = 13;

int sensor = 12;


BlynkTimer timer;


void setup()

{

  Serial.begin(115200);

  delay(100);

pinMode(led1,OUTPUT);

pinMode(led2,OUTPUT);

pinMode(led3,OUTPUT);

pinMode(led4,OUTPUT);

pinMode(led5,OUTPUT);

pinMode(27, INPUT);

pinMode(26, OUTPUT);

pinMode(32, OUTPUT);

  pinMode(33, OUTPUT);

  pinMode(servoPin, OUTPUT);

  pinMode(sensor, OUTPUT);


  Blynk.begin(auth, ssid, pass);


  miServo.attach(servoPin);

 miServo.write(0);

 pinMode(sensor, INPUT);


  }


  void loop() 

  {


  if (digitalRead(sensor) == HIGH) {

   miServo.write(90);

   delay (100);

  } else {

    miServo.write(0);

   delay (100);

  }


  Blynk.run();

  yield();


  if ((digitalRead(27) == true)) {

  digitalWrite(26, HIGH);

      digitalWrite(32, HIGH);

      digitalWrite(33, HIGH);

 

  delay(5000);

  }

  else {

  digitalWrite(26, LOW);

  digitalWrite(32, LOW);

      digitalWrite(33, LOW);

  delay(500);

  }

  }

BLYNK_WRITE(V0){

  int state = param.asInt();

  digitalWrite(led1,state);

}


BLYNK_WRITE(V1){

  int state = param.asInt();

  digitalWrite(led2,state);

}


BLYNK_WRITE(V2){

  int state = param.asInt();

  digitalWrite(led3,state);

}


BLYNK_WRITE(V3){

  int state = param.asInt();

  digitalWrite(led4,state);

}



BLYNK_WRITE(V4){

  int state = param.asInt();

  digitalWrite(led5,state);

}

____________________________________________________________________

CONTROL JOYSTICK 2 SERVOS 

#include <Servo.h>

//Definicion de los servos

Servo servo1;

Servo servo2;

int eje1=90;

int eje2=90;

void setup(){  

  servo1.attach(7);

  servo2.attach(6);

  servo1.write(90);

  servo2.write(90);

}

void loop(){

  //SERVO 1

  if (analogRead(0)<200 && eje1<180){

    eje1++;

    servo1.write(eje1);

  }

  if (analogRead(0)>700 && eje1>0){

    eje1--;

    servo1.write(eje1);

  }

  //SERVO 2

  if (analogRead(1)<200 && eje2<180){

    eje2++;

    servo2.write(eje2);

  }

  if (analogRead(1)>700 && eje2>0){

    eje2--;

    servo2.write(eje2);

  }

  delay(15);

}


__________________________________________________________

SERVO-PIR 8

#include <Servo.h> 
Servo puerta; // Nombre asignado al servo

int LED = 5; 
int PIR = 4; 
 
void setup()
{
  pinMode(LED, OUTPUT); 
  pinMode(PIR, INPUT); 
  
  puerta.attach(7); 
  
}
 
void loop()
{
  int valorpir = digitalRead(PIR); 
  if (valorpir == 1) { 
digitalWrite(LED, HIGH); 
       puerta.write(180); 
  }
  else
  {
    digitalWrite(LED, LOW); 
     puerta.write(0);
    
  }
  delay(300); 

}


_____________________________________________

Funcionamiento final pinza robótica 5 grado.



// Constantes


const int anguloCerrado = 40;      // Ángulo de la pinza cerrada

const int anguloAbierto = 60;    // Ángulo de la pinza abierta




const int buttonPin2 = 2;         // Pin del pulsador 1

const int buttonPin3 = 3;         // Pin del pulsador 2


// Variables

int buttonState2 = 0;             // Variable de lectura del pulsador 1

int buttonState3 = 0;             // Variable de lectura del pulsador 2


#include <Servo.h>

Servo myservo;


// Variable para guardar la posición del motor servo

int pos = 80;        



void setup() {


  // Configuración de inicio

  pinMode(buttonPin2, INPUT);

  pinMode(buttonPin3, INPUT);

  myservo.attach(9);  

  // Establene la posición inicial de la pinza

  myservo.write(68);

  delay(1500);


}


void loop() {

  pos = constrain(myservo.read(), -anguloAbierto/2 + 90, -anguloCerrado/2 + 90);


  // Lee el estado de los pulsadores

  buttonState2 = digitalRead(buttonPin2);

  buttonState3 = digitalRead(buttonPin3);


  // Lee si el pulsador del pin 2 está oprimido

  if (buttonState2 == HIGH) {

      pos -= 1;

      myservo.write(pos);

      delay(15);

  }

  // Lee si el pulsador del pin 3 está oprimido

  if (buttonState3 == HIGH) {

      pos += 1;

      myservo.write(pos);

      delay(15);

  }    

}


___________________________________________________________________________________

CALIBRACION INICIAL SERVO 5

#include <Servo.h>


Servo myservo;  


void setup() {

  myservo.attach(9);  


  Serial.begin(9600); // inicia la comunicación con el servo motor

  myservo.write(80);  // le indica al servo motor que vaya a la posición 80 grados

}


void loop() {


}



_____________________

DHT 11 + OLED PROYECTO FINAL 10


#include "Adafruit_SSD1306.h"    //Incluye la librería Adafruit_SSD1306.h

#define OLED_Address 0x3C        // Define una constante llamada OLED_Address y le da el valor de 0x3C (el cual es una dirección estandar)

Adafruit_SSD1306 oled(128, 64);  // Crea un objeto de pantalla llamado: oled, con una resolución de 128 x 64 pixeles (la misma que tiene nuestra pantalla)


#include "DHTesp.h"


const int DHT_PIN = 15;


DHTesp dhtSensor;


void setup() { 

  oled.begin(SSD1306_SWITCHCAPVCC, OLED_Address); //inicia el objeto oled y le asigna la dirección contenida en las constante OLED_Address

  oled.clearDisplay(); //limpia la pantalla con la funcion .clearDisplay()

  oled.setTextSize(2); //función que asigna un tamaño de texto con el valor de 2

  dhtSensor.setup(DHT_PIN, DHTesp::DHT11);

}


void loop() 

{

  TempAndHumidity  data = dhtSensor.getTempAndHumidity();

  oled.setTextColor(WHITE); //El color del texto será blanco

  oled.setCursor(0,0); //Empezaremos a escribir en coordenadas (0,0)

  oled.println("T: " + String(data.temperature, 2)+"C");

  oled.println("H: " + String(data.humidity, 1)+"%");

  oled.writeLine(0,35,128,35,WHITE); //Imprimimos una linea desde el punto (0,32) hasta el punto (128,32)

  oled.display();

  oled.clearDisplay();

  delay(1000);

}

_______________________________________________________

PANTALLA OLED 10

#include <Adafruit_SSD1306.h>    //Incluye la librería Adafruit_SSD1306.h
#define OLED_Address 0x3C        // Define una constante llamada OLED_Address y le da el valor de 0x3C (el cual es una dirección estandar)
Adafruit_SSD1306 oled(128, 64);  // Crea un objeto de pantalla llamado: oled, con una resolución de 128 x 64 pixeles (la misma que tiene nuestra pantalla)

//Inicia la configuración
void setup() {
  oled.begin(SSD1306_SWITCHCAPVCC, OLED_Address); //inicia el objeto oled y le asigna la dirección contenida en las constante OLED_Address
  oled.clearDisplay(); //limpia la pantalla con la funcion .clearDisplay()
  oled.setTextSize(2); //función que asigna un tamaño de texto con el valor de 2
}

//Inicia loop principal
void loop()
{
  // Texto en la pantalla oled
  oled.setTextColor(WHITE); //El color del texto será blanco
  oled.setCursor(0,0); //Empezaremos a escribir en coordenadas (0,0)
  oled.print("Hola Mundo"); // Imprimimos en la pantalla la frase "Hola Mundo"
  oled.writeLine(0,32,128,32,WHITE); //Imprimimos una linea desde el punto (0,32) hasta el punto (128,32)
  oled.writeFillRect(0,50,50,16,WHITE);   //Hacemos un rectangulo blanco desde el punto (0,50) hasta el punto (50,16)
  oled.display();
}

________________________________________________________________

CODIGO DTH 11



_________________________________________________

OPERACIÓN SCRATCH

LINK: https://scratch.mit.edu/projects/851929671/


________________________________________

PRUEBA BOMBA DE AGUA 

int ence = 3;

void setup()

{

  pinMode(LED, OUTPUT);

}


void loop()

{

  digitalWrite(LED, HIGH);

  delay(3000); // Wait for 1000 millisecond(s)

  digitalWrite(LED, LOW);

  delay(2000); // Wait for 1000 millisecond(s)

}


CALIBRACION SERVO


#include <Servo.h>


Servo myservo;  


void setup() {

  myservo.attach(9);  


  Serial.begin(9600); // inicia la comunicación con el servo motor

  myservo.write(80);  // le indica al servo motor que vaya a la posición 80 grados

}


void loop() {


}


__________________________________________________________



VELOCIMETRO MOTO

int pulsador = 2;                                              //etiqueta para DI2
int estado;                                                         //etiqueta para registro
void setup() {
pinMode(pulsador, INPUT_PULLUP);                   //pin 2 como entrada pull up
Serial.begin(115200);                                         //iniciación de comunicación serial a 9600 baudios
}
void loop() {
estado=digitalRead(pulsador);                 //guardar estado de DI2 en “estado”
Serial.println(estado);                                  //escritura serial
delay(250);                                                        //delay para evitar lecturas erróneas

} 


_____________________





codigo blynk esp32

/************************************************************* Blynk is a platform with iOS and Android apps to control ESP32, Arduino, Raspberry Pi and the likes over the Internet. You can easily build mobile and web interfaces for any projects by simply dragging and dropping widgets. Downloads, docs, tutorials: https://www.blynk.io Sketch generator: https://examples.blynk.cc Blynk community: https://community.blynk.cc Follow us: https://www.fb.com/blynkapp https://twitter.com/blynk_app Blynk library is licensed under MIT license ************************************************************* Blynk.Edgent implements: - Blynk.Inject - Dynamic WiFi credentials provisioning - Blynk.Air - Over The Air firmware updates - Device state indication using a physical LED - Credentials reset using a physical Button *************************************************************/ /* Fill in information from your Blynk Template here */ /* Read more: https://bit.ly/BlynkInject */ #define BLYNK_TEMPLATE_ID "TMPL2em0EpptD" #define BLYNK_TEMPLATE_NAME "Prueba" #define BLYNK_FIRMWARE_VERSION "0.1.0" #define BLYNK_PRINT Serial //#define BLYNK_DEBUG #define APP_DEBUG // Uncomment your board, or configure a custom board in Settings.h //#define USE_ESP32_DEV_MODULE //#define USE_ESP32C3_DEV_MODULE //#define USE_ESP32S2_DEV_KIT //#define USE_WROVER_BOARD //#define USE_TTGO_T7 //#define USE_TTGO_T_OI #include "BlynkEdgent.h" int led =8; void setup() { Serial.begin(115200); delay(100); pinMode(led,OUTPUT); BlynkEdgent.begin(); } void loop() { BlynkEdgent.run(); } BLYNK_WRITE(V0) { int state = param.asInt(); digitalWrite(led,state); } }


_____________________________________________________________________
ARAÑA 9 CONTROL MOTORES

const int AIA = 6;  // (pwm) pin 6 conectado a pin A-IA 
const int AIB = 5;  // (pwm) pin 5 conectado a pin A-IB 
const int BIA = 10; // (pwm) pin 10 conectado a pin B-IA  
const int BIB = 9;  // (pwm) pin 9 conectado a pin B-IB 
 
byte velocidad = 160;  
// cambie este valor (100 a 255) para controlar 
// la velocidad de los motores 
 
void setup() {
  pinMode(AIA, OUTPUT); // fijar los pines como salidas
  pinMode(AIB, OUTPUT);
  pinMode(BIA, OUTPUT);
  pinMode(BIB, OUTPUT);
}
 
void loop() {
  izquierda();
  delay(2000);
  derecha();
  delay(2000);
  avanzar();
  delay(500);
  retroceder();
  delay(1000);
  avanzar();
  delay(500);
}
 
void avanzar()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, velocidad);
  analogWrite(BIA, 0);
  analogWrite(BIB, velocidad);
}
 
void retroceder()
{
  analogWrite(AIA, velocidad);
  analogWrite(AIB, 0);
  analogWrite(BIA, velocidad);
  analogWrite(BIB, 0);
}
 
void izquierda()
{
  analogWrite(AIA, velocidad);
  analogWrite(AIB, 0);
  analogWrite(BIA, 0);
  analogWrite(BIB, velocidad);
}
 
void derecha()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, velocidad);
  analogWrite(BIA, velocidad);
  analogWrite(BIB, 0);
}









control motores 6 variando velocidad

const int AIA = 3; // pin 3 conectado a pin A-IA const int AIB = 2; // pin 2 conectado a pin A-IB const int BIA = 4; // pin 4 conectado a pin B-IA const int BIB = 5; // pin 5 conectado a pin B-IB byte velocidad = 255; // cambie este valor (100 a 255) para controlar // la velocidad de los motores void setup() { pinMode(AIA, OUTPUT); // fijar los pines como salidas pinMode(AIB, OUTPUT); pinMode(BIA, OUTPUT); pinMode(BIB, OUTPUT); } // Escriba la función que desee void loop() { avanzar(); delay(5000); } void avanzar() { analogWrite(AIA, 0); analogWrite(AIB, velocidad); analogWrite(BIA, 0); analogWrite(BIB, velocidad); } void retroceder() { analogWrite(AIA, velocidad); analogWrite(AIB, 0); analogWrite(BIA, velocidad); analogWrite(BIB, 0); } void izquierda() { analogWrite(AIA, velocidad); analogWrite(AIB, 0); analogWrite(BIA, 0); analogWrite(BIB, velocidad); } void derecha() { analogWrite(AIA, 0); analogWrite(AIB, velocidad); analogWrite(BIA, velocidad); analogWrite(BIB, 0); }



CÓDIGO 7 ULTRASONIDO CON TRANSISTOR
int base=3;
int trig=5; int echo=6; int tiempo; int distancia; void setup() { Serial.begin(9600); pinMode(trig,OUTPUT); pinMode(echo,INPUT);
pinMode(base, OUTPUT); } void loop() { digitalWrite(trig,HIGH); delay(1); digitalWrite(trig,LOW); tiempo=pulseIn(echo,HIGH); distancia=tiempo/58.2; Serial.println(distancia); delay(500);
if (distancia <= 5) { digitalWrite(3, HIGH);
} else { digitalWrite(3, LOW); } }


CODIGO SENSOR PULSIMETRO 10

/* Codigo para Calibración de sensor de pulso * SET21 Proyecto 2 - Décimo * * Para más información sobre el sensor: * https://pulsesensor.com/pages/code-and-guide * https://www.youtube.com/watch?v=RbB8NSRa5X4 -----------------------------------------------------


-------- 1) Este código muestra la lectura directa del sensor para calibrar la señal. 2) La lectura se puede observar en el "Serial Plotter". 3) Parpadeo de LED con cada latido. */ // Variables int LED2 = 2; // El LED integrado de la ESP32 que corresponde al pin 2 int Signal; // En esta variable guardaremos el valor de la señal del sensor int UmbralArriba = 2750; // Determinaremos cual es el umbral superior para detectar los latidos y cuales ignorar int UmbralAbajo = 2710; // Determinamos cual es el umbral inferior para determinar si un latido ha sido detectado // Funcion Setup o configuración void setup() { pinMode(LED2,OUTPUT); // configuramos el pin 2 como Salida Serial.begin(115200); // Iniciamos la comunicacion serial con el computador y su velocidad. } // La funcion Loop principal void loop() { Signal = analogRead(33); // Leemos el valor del pin 33 y le asignamos el valor a la variable Signal Serial.print(Signal); // imprimimos el valor de Signal en el serial plotter Serial.print(" "); // Imprimimos un espacio en el Serial para separar el valor anterior del siguiente valor. Serial.print(UmbralArriba); // Imprimimos el valor de la variable "UmbralArriba" en el serial Plotter Serial.print(" "); Serial.println(UmbralAbajo); // Imprimimos el valor de la variable "UmbralAbajo" en el serial Plotter /*Diferencia entre Serial.print y Serial.println: * Serial.print imprime en el serial todo de corrido * Serial.println imprime un salto de linea al finalizar la impresión, esto para que sea más fácil de leer para los humanos * En este caso lo usamos para que el Serial Plotter nos muestre la gráfica de los 3 datos en colores diferentes */ if(Signal > UmbralArriba){ //Si la señal es mayor al UmbralArriba se enciende el LED integrado de la ESP32 digitalWrite(LED2,HIGH); } else { digitalWrite(LED2,LOW); // si no, la señal esta por debajo del umbral, entonces no se enciende el LED. } delay(10); // Delay de 10 milisegundos para darle una pausa a la ESP32 }





_____________________________________________________________________
codigo transistor 7

void setup() { pinMode(3, OUTPUT); }
void loop() { digitalWrite(3, HIGH);
delay (3000);
digitalWrite(3, LOW);
delay (3000);
}
________________________________________________

CÓDIGO 8 SENSOR PIR ESP32

void setup() { pinMode(27, INPUT); pinMode(26, OUTPUT); pinMode(14, OUTPUT); }
void loop() { yield(); if ((digitalRead(27) == true)) { digitalWrite(26, HIGH); digitalWrite(14, HIGH); delay(5000); } else { digitalWrite(26, LOW); digitalWrite(14, LOW); delay(500); } }
________________________________________________
CONTROL HUMEDAD

void setup() { // put your setup code here, to run once: Serial.begin(115200); } void loop() { // put your main code here, to run repeatedly: int lectura =analogRead(A0); Serial.print("La lectura es: "); Serial.println(lectura); // lecturas entre 1000-1023 if (lectura >= 1000) { Serial.println(">>EL SENSOR ESTA DESCONECTADO O FUERA DEL SUELO <<"); } else if (lectura <1000 && lectura>=600) { Serial.println(">>EL SUELO ESTA SECO<<"); } else if (lectura < 600 && lectura >=370){ Serial.println(">>EL SUELO ESTA HUMEDO<<"); } else if(lectura < 370){ Serial.println(">>EL SENSOR ESTA PRACTICAMENTE EN AGUA<<"); } delay(1000); //convirtiendo a porcentaje int lecturaporcentaje = map(lectura, 1023, 0, 0, 100); Serial.print("La Humedad es del : "); Serial.print(lecturaporcentaje); Serial.print("%"); }


__________________________________

control Puente H ROVER 6

void setup() { pinMode(3, OUTPUT); pinMode(2, OUTPUT); } void loop() { analogWrite(2,255); analogWrite(3,0); delay(1500); analogWrite(3,200); analogWrite(2,200); delay(1500); analogWrite(3,150); analogWrite(2,150); delay(1500); analogWrite(3,100); analogWrite(2,100); delay(1500); analogWrite(3,50); analogWrite(2,50); delay(1500); analogWrite(3,0); analogWrite(2,0); delay(1500); }








_____________________________________________________________________________

CODIGO SERVO ARDUINO



/* Creado: Luis del Valle (ldelvalleh@programarfacil.com) https://programarfacil.com */ // Incluímos la librería para poder controlar el servo #include <Servo.h> // Declaramos la variable para controlar el servo Servo servoMotor; void setup() { // Iniciamos el monitor serie para mostrar el resultado Serial.begin(9600); // Iniciamos el servo para que empiece a trabajar con el pin 9 servoMotor.attach(9); // Inicializamos al ángulo 0 el servomotor servoMotor.write(0); } void loop() { // Vamos a tener dos bucles uno para mover en sentido positivo y otro en sentido negativo // Para el sentido positivo for (int i = 0; i <= 180; i++) { // Desplazamos al ángulo correspondiente servoMotor.write(i); // Hacemos una pausa de 25ms delay(25); } // Para el sentido negativo for (int i = 179; i > 0; i--) { // Desplazamos al ángulo correspondiente servoMotor.write(i); // Hacemos una pausa de 25ms delay(25); } }


______________________________________________________

codigo control motores 2

void Avanzar() {
  digitalWrite(13, HIGH);
  digitalWrite(11, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(9, LOW);
}
void Izquierda() {
  digitalWrite(13, HIGH);
  digitalWrite(11, LOW);
  digitalWrite(10, LOW);
  digitalWrite(9, LOW);
}
void Baile() {
  digitalWrite(13, LOW);
  digitalWrite(11, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(9, LOW);
}
void Retroceder() {
  digitalWrite(13, LOW);
  digitalWrite(11, HIGH);
  digitalWrite(10, LOW);
  digitalWrite(9, HIGH);
}
void Derecha() {
  digitalWrite(13, LOW);
  digitalWrite(11, LOW);
  digitalWrite(10, HIGH);
  digitalWrite(9, LOW);
}

void setup()
{
    pinMode(13, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
}


void loop()
{

    Avanzar();
    delay(2000);
    Retroceder();
    delay(2000);
    Derecha();
    delay(1000);
    Izquierda();
    delay(1000);
    Baile();
    delay(3000);

}
_________________________________________________________________
CODIGO CONTROL MOTORES

void setup() { pinMode(3, OUTPUT); pinMode(2, OUTPUT); } void loop() { analogWrite(2,255); analogWrite(3,0); delay(1500); analogWrite(3,200); analogWrite(2,200); delay(1500); analogWrite(3,150); analogWrite(2,150); delay(1500); analogWrite(3,100); analogWrite(2,100); delay(1500); analogWrite(3,50); analogWrite(2,50); delay(1500); analogWrite(3,0); analogWrite(2,0); delay(1500); }



___________________________________________________________














CODIGO ULTRASONIDO

int trig=3;
int echo=4;
int tiempo;
int distancia;

void setup()
{

Serial.begin(9600);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
}

void loop()
{
digitalWrite(trig,HIGH);
delay(1);
digitalWrite(trig,LOW);
tiempo=pulseIn(echo,HIGH);
distancia=tiempo/58.2;
Serial.println(distancia);
delay(500);
}
____________________________________________________________________________
PRUEBA BLUETOOTH


#include "BluetoothSerial.h"


String s_Comando;
BluetoothSerial bt_serial;


void setup()
{
    
  pinMode(5, INPUT);
  pinMode(7, INPUT);

bt_serial.begin(String("PINA").c_str());

  
}


void loop()
{
  yield();

    if ((bt_serial.available()>0)) {
      s_Comando = bt_serial.readStringUntil('\n');
      if (String(s_Comando).equals(String("1"))) {
        digitalWrite(5, HIGH);
        
      }

      if (String(s_Comando).equals(String("2"))) {
        digitalWrite(7, HIGH);
      }

    }

}


_____________________________________________________
SERVO FUNCION



#include <ESP32Servo.h>


int posicion = 0;
Servo miServo;

#define servoPin 26
int  sensor = 27;

void setup() {
 miServo.attach(servoPin);
 miServo.write(0);
 pinMode(sensor, INPUT);
 
}

void loop() {
  if (digitalRead(sensor) == HIGH) {
   miServo.write(90);
   delay (100);
  //  for (posicion =180; posicion >=0; posicion -=30)
  //   {miServo.write(posicion);
  //    delay (100);}
  //  for (posicion =0; posicion <=90; posicion +=30)
  //  {miServo.write(posicion);
  //  delay (100);}

   }
else
miServo.write(0);
   delay (100);
}


__________________________________________________________

CODIGO DISPENSADOR 


#include <ESP32Servo.h>
int posicion = 0;
Servo miServo;

#define servoPin 26

void setup() {
 miServo.attach(servoPin);
 miServo.write(0);
}

void loop() {
  for (posicion =0; posicion <=180; posicion +=30)
  {miServo.write(posicion);
  delay (1000);}
  for (posicion =180; posicion >=0; posicion -=30)
  {miServo.write(posicion);
  delay (1000);}
  

}