#include <Wire.h>
void setup() {
// put your setup code here, to run once:
Wire.begin();
Serial.begin(9600);
}
void loop() {
Wire.beginTransmission(1);
Wire.write(2);
Wire.write(1);
Wire.endTransmission();
delay(1000);
Wire.beginTransmission(1);
Wire.write(2);
Wire.write(0);
Wire.endTransmission();
}
// Esclavo
#include <Wire.h>
void setup() {
for (i = 2; i < 7; i ++) {
pinMode(i, OUTPUT);
}
Wire.begin();
Wire.onReceive(llegaDato);
Serial.begin(9600);
}
void llegaDato(int num) {
int pinOut = 0;
int estado = 0;
if (Wire.available() == 2) {
pinOut = Wire.read();
Serial. print("Led ");
Serial.println(pinOut);
}
if (Wire.available() == 1) {
estado = Wire.read();
Serial. print("Estado ");
Serial.println(estado);
}
digitalWrite((pinOut), estado);
}
// Correccion
void loop() {
int pin_led[] = {2, 3, 4, 5, 6}; // Array con los números del 2 al 6
int longi = 5;
// Barajar la secuencia de números
for (int indice_actual = longi - 1; indice_actual > 0; indice_actual--) {
int aleatorio = random(0, indice_actual + 1);
Serial.println(aleatorio);
// Intercambiar elementos
int temporal = pin_led[indice_actual];
Serial.println(temporal);
Serial.println(pin_led[indice_actual]);
pin_led[indice_actual] = pin_led[aleatorio];
Serial.println(pin_led[indice_actual]);
Serial.println(pin_led[aleatorio]);
pin_led[aleatorio] = temporal;
Serial.println(pin_led[aleatorio]);
}
for (int estado = 1; estado >= 0; estado--) { // Alterna entre los estados del LED (1 y 0)
for (int i = 0; i < longi; i++) {
Wire.beginTransmission(1);
Wire.write(pin_led[i]); // Envía el número del pin
Wire.write(estado); // Envía el estado del LED
Wire.endTransmission();
delay(1000);
}
}
// ALEATORIOS
void setup() {
Serial.begin(9600); // Iniciar comunicación serial para imprimir resultados
randomSeed(analogRead(0)); // Inicializar la semilla aleatoria
int pin_led[5]; // Crear un arreglo de tamaño 5
bool numeros_usados[5] = {false}; // Un arreglo para rastrear qué números ya se han usado
// Llenar el arreglo con números aleatorios entre 2 y 6
for (int i = 0; i < 5; ) {
int aleatorio = random(0, 5); // Generar un índice aleatorio entre 0 y 4
if (!numeros_usados[aleatorio]) { // Verificar si el número ya se ha usado
pin_led[i] = aleatorio + 2; // Sumar 2 para obtener un número entre 2 y 6
numeros_usados[aleatorio] = true; // Marcar el número como usado
i++; // Incrementar el contador solo si se agrega un número nuevo
}
}
void loop() {
// Nada que hacer en el bucle principal
}