Ultrasonido
int trig=2;
}
___________________________________________________
/*
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
//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();
}
link proyecto: https://scratch.mit.edu/projects/851929671/
________________________________________________________________
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
_____________________________________________
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
________________________________________________________________
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
}
_____________________
-------- 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 }