Códigos para Arduino y ESP32

Código Arduino para manejo de brazo robótico

proyecto brazo robotico con arduino
//Canal de YouTube -> Robot UNO
//Proyecto -> Brazo robotico version1
#include <Servo.h>
#include <Stepper.h>
Servo servomotor3; //Servomotor pinza
Servo servomotor2; //Servomotor enmedio
Servo servomotor1; //Servomotor abajo
Stepper motor(2048, 4, 6, 5, 7);
void setup() {
  servomotor3.attach(11);
  servomotor2.attach(10);
  servomotor1.attach(9);
  motor.setSpeed(5);
}
void loop() {
  //Reinicio
  servomotor1.write(0);
  servomotor2.write(0);
  servomotor3.write(0);
  //motor.step(512);
  delay(3000);
  //COJE EL OBJETO
  for(int i=0; i<=45; i++){
    servomotor3.write(i);
    delay(25);
  }
  delay(1000); 
  for(int i=0; i<=90; i++){
    servomotor2.write(i);
    delay(25);
  }
  delay(1000);  
  for (int i=0; i<=90; i++){
    servomotor1.write(i);
    delay(25);
  }
  delay(1000);
  for(int i=45; i>=0; i--){
    servomotor3.write(i);
    delay(25);
  }
  delay(1000);
   for (int i = 90; i>=0; i--){
    servomotor1.write(i);
    delay(25);
  }
  delay(1000);
  for (int i = 90; i>=0; i--){
    servomotor2.write(i);
    delay(25);
  }
  delay(1000);
  //GIRA CON EL OBJETO
  motor.step(512);
  delay(1000);
  //DEJA EL OBJETO
  for(int i=0; i<=90; i++){
    servomotor2.write(i);
    delay(25);
  }
  delay(1000);
  for (int i=0; i<=90; i++){
    servomotor1.write(i);
    delay(25);
  }
  delay(1000);  
  for(int i=0; i<=45; i++){
    servomotor3.write(i);
    delay(25);
  }
  delay(1000);
  //VUELVE A LA POSICION INICIAL
  servomotor1.write(0);
  servomotor2.write(0);
  motor.step(-512);
  delay(3000);
}

Código Arduino para Grúa

proyecto grua con arduino
//Canal de YouTube -> RobotUNO
//Proyecto: Grua con servomotores
#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);
}

Código Arduino Juego de Snake en pantalla LCD

minijuego snake game
//Canal -> RobotUNO
//Minijuego con pantalla LCD
#include <LiquidCrystal.h>//libreria de la pantalla 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura los pines de salida para la lcd
byte letra1[8] = { B01110, B00100, B11111, B01110, B01010, B01010, B11111, B01010 };
byte letra2[8] = { B01110, B00100, B11111, B01110, B11011, B00000, B11111, B11111 };
byte letra6[8] = { B01110, B10101, B11111, B01110, B01010, B01010, B11111, B01010 };
byte letra0[8] = { B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00000 };
byte letra3[8] = { B00000, B00000, B00000, B11111, B11111, B11111, B11111, B11111 };
byte letra4[8] = { B00000, B11111, B11111, B11111, B11111, B11111, B11111, B11111 };
byte letra5[8] = { B01110, B11111, B11111, B11111, B11111, B11111, B11111, B11111 };
int x=15;
int y=1;
int obstaculos=0;
int vel=300;
int puntaje=0;
int GameOver=3;
void setup(){
  lcd.begin(16, 2);
  lcd.createChar(1, letra1);
  lcd.createChar(2, letra2);
  lcd.createChar(3, letra3);
  lcd.createChar(4, letra4);
  lcd.createChar(5, letra5);
  lcd.createChar(0, letra0);
  lcd.createChar(6, letra6);
}
void loop(){
  lcd.setCursor(7, 0); //Posición del nombre del canal 
  lcd.print("RobotUNO");
  lcd.setCursor(0, 0); //Coloca el numero 0 
  lcd.print(obstaculos);
  lcd.setCursor(x,y);
  lcd.write(byte(3));
  delay(vel);
  lcd.setCursor(x,y);
  lcd.write(byte(4));
  delay(vel);
  lcd.setCursor(x,y);
  lcd.write(byte(5));
  delay(vel);
  lcd.clear();
  lcd.setCursor(GameOver, 1); 
  lcd.setCursor(3, 1);  
  lcd.write(byte(1)); 
  if (digitalRead(7) == HIGH){ 
    lcd.setCursor(3, 1);
    lcd.write(byte(0));
    lcd.setCursor(3, 0);
    lcd.write(byte(2));
  }
     else if(3 == x){
      lcd.clear();
      lcd.setCursor(3, 0);
      lcd.print("Game Over");
      lcd.setCursor(7, 1);
      lcd.write(byte(6));
      delay(3000);
      puntaje=obstaculos;
      lcd.setCursor(3, 1);
      lcd.print("Puntaje:");
      lcd.setCursor(12, 1);
      lcd.print(puntaje);
      delay(6000);
      obstaculos=0;
     }
   x=x-1;              
  if (x<=0) {  
     x=15;                        
  }
 vel = random(1,200);
if(GameOver == x){ 
  lcd.clear();
  obstaculos++;
}
}

Código Arduino Sensor de Temperatura

termometro arduino en pantalla lcd tutorial
//Canal de YouTube -> RobotUNO
//Proyecto 3

#include <LiquidCrystal.h>

int tempPin = 0;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup(){
  lcd.begin(16, 2);
}

void loop(){
  int tempReading = analogRead(tempPin);
  double tempK = log(10000.0 * ((1024.0 / tempReading - 1)));
  tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK )) * tempK );
  float tempC = tempK - 273.15;
  lcd.setCursor(0, 0);
  lcd.print("Temp         C  ");
  lcd.setCursor(6, 0);
  lcd.print(tempC);
  delay(500);
}