martes, 5 de agosto de 2025

CARPETA COMPARTIDA

 Ingresa a este link y solicita acceso, tu acceso sera aprobado en las proximas horas:

 OPERADOR EN SISTEMAS 2025

EXCEL AVANZADO 2025

EXCEL AVANZADO 2026

OPERADOR EN SISTEMAS 2026

CODIGOS PARA EL CARRO ROBOT, ROBOT OTTO, PING PONG, SIMON DICE

 Descarga el siguiente codigo para programar tu carro:

- Evasor de obstaculos

- Control remoto

- seguidor de Linea


Si las ruedas te giran en direcciones contrarias recuerda modificar en lo codigo los pines correspondientes a avanzar, retroceder y girar.

Codigos Carro

Codigos Robot Otto

Ping Pong

Simon Dice






jueves, 1 de agosto de 2024

CODIGO DE PROGRAMACION SIMON DICE

COPIA Y PEGA EL SIGUIENTE CODIGO:


//Canal de YouTube -> CONEXION TECNOLOGICA - CENTRO DE FORMACION

//Juego Simon dice

#define   BUZZER   7

#define   ENTRADA_A  13

#define   ENTRADA_B  12

#define   ENTRADA_C  11

#define   ENTRADA_D  10

#define   SALIDA_A   2

#define   SALIDA_B   3

#define   SALIDA_C   4

#define   SALIDA_D   5

int melodia[ ] = {262, 196, 196, 220, 196, 0, 247, 262};

int duracionNotas[] = {4, 8, 8, 4, 4, 4, 4, 4};

int nivelActual = 1;

int velocidad = 500;

const int NIVEL_MAX = 100;

int secuencia[NIVEL_MAX];

int secuenciaUsuario[NIVEL_MAX];


void setup(){

   pinMode(ENTRADA_D, INPUT);

   pinMode(ENTRADA_C, INPUT);

   pinMode(ENTRADA_B, INPUT);

   pinMode(ENTRADA_A, INPUT);

   pinMode(SALIDA_A, OUTPUT);

   pinMode(SALIDA_B, OUTPUT);

   pinMode(SALIDA_C, OUTPUT);

   pinMode(SALIDA_D, OUTPUT);

   digitalWrite(SALIDA_A, LOW);

   digitalWrite(SALIDA_B, LOW);

   digitalWrite(SALIDA_C, LOW);

   digitalWrite(SALIDA_D, LOW);

}


void loop(){

   if(nivelActual == 1){

      generaSecuencia();

      muestraSecuencia();

      leeSecuencia();

   }

   if(nivelActual != 1){

      muestraSecuencia();

      leeSecuencia();

   }

}


void muestraSecuencia(){

   digitalWrite(SALIDA_A, LOW);

   digitalWrite(SALIDA_B, LOW);

   digitalWrite(SALIDA_C, LOW);

   digitalWrite(SALIDA_D, LOW);

   for(int i = 0; i < nivelActual; i++){

      if( secuencia[i] == SALIDA_A ){

         tone(BUZZER, 200);

         delay(200);

         noTone(BUZZER);

      }

      if( secuencia[i] == SALIDA_B ){

         tone(BUZZER, 300);

         delay(200);

         noTone(BUZZER);

      }

      if( secuencia[i] == SALIDA_C ){

         tone(BUZZER, 400);

         delay(200);

         noTone(BUZZER);

      }

      if( secuencia[i] == SALIDA_D ){

         tone(BUZZER, 500);

         delay(200);

         noTone(BUZZER);

      }

      digitalWrite(secuencia[i], HIGH);

      delay(velocidad);

      digitalWrite(secuencia[i], LOW);

      delay(200);

   }

}


void leeSecuencia(){

   int flag = 0;

   for(int i = 0; i < nivelActual; i++){

      flag = 0;

      while(flag == 0){

         if(digitalRead(ENTRADA_D) == LOW){

            digitalWrite(SALIDA_D, HIGH);

            tone(BUZZER, 500);

            delay(300);

            noTone(BUZZER);

            secuenciaUsuario[i] = SALIDA_D;

            flag = 1;

            delay(200);

            if(secuenciaUsuario[i] != secuencia[i]){

               secuenciaError();

               return;

            }

            digitalWrite(SALIDA_D, LOW);

         }

         if(digitalRead(ENTRADA_C) == LOW){

            digitalWrite(SALIDA_C, HIGH);

            tone(BUZZER, 400);

            delay(300);

            noTone(BUZZER);

            secuenciaUsuario[i] = SALIDA_C;

            flag = 1;

            delay(200);

            if(secuenciaUsuario[i] != secuencia[i]){

               secuenciaError();

               return;

            }

            digitalWrite(SALIDA_C, LOW);

         }

         if(digitalRead(ENTRADA_B) == LOW){

            digitalWrite(SALIDA_B, HIGH);

            tone(BUZZER, 300);

            delay(300);

            noTone(BUZZER);

            secuenciaUsuario[i] = SALIDA_B;

            flag = 1;

            delay(200);

            if(secuenciaUsuario[i] != secuencia[i]){

               secuenciaError();

               return;

            }

            digitalWrite(SALIDA_B, LOW);

         }

         if(digitalRead(ENTRADA_A) == LOW){

            digitalWrite(SALIDA_A, HIGH);

            tone(BUZZER, 200);

            delay(300);

            noTone(BUZZER);

            secuenciaUsuario[i] = SALIDA_A;

            flag = 1;

            delay(200);

            if(secuenciaUsuario[i] != secuencia[i]){

               secuenciaError();

               return;

            }

            digitalWrite(SALIDA_A, LOW);

         }

      }

   }

   secuenciaCorrecta();

}


void generaSecuencia(){

   randomSeed(millis());

   for(int i = 0; i < NIVEL_MAX; i++){

      secuencia[i] = random(2,6);

   }

}


void melodiaError(){

   for(int i = 0; i < 8; i++){

      int duracionNota = 1000/duracionNotas[i];

      tone(BUZZER, melodia[i], duracionNota); // Corrección aquí

      int pausaEntreNotas = duracionNota * 1.30;

      delay(pausaEntreNotas);

      noTone(BUZZER);

   }

}


void secuenciaError(){

   digitalWrite(SALIDA_A, HIGH);

   digitalWrite(SALIDA_B, HIGH);

   digitalWrite(SALIDA_C, HIGH);

   digitalWrite(SALIDA_D, HIGH);

   delay(250);

   digitalWrite(SALIDA_A, LOW);

   digitalWrite(SALIDA_B, LOW);

   digitalWrite(SALIDA_C, LOW);

   digitalWrite(SALIDA_D, LOW);

   delay(250);

   melodiaError();

   nivelActual = 1;

   velocidad = 500;

}


void secuenciaCorrecta(){

   if(nivelActual < NIVEL_MAX)

      nivelActual++;

   velocidad -= 50;

   delay(200);

}