Integración o unión de códigos?

Podría ayudarme para decirme como puedo integrar códigos?
Me pueden ayudar, como integrar 10 codes. les explico mas a detalle, estoy tratando de realizar una configuración para un proyecto SMART HOME, tengo realizado y probado con éxito cada uno de los códigos individualmente y funcionan perfecto, solo que no puedo mandaros a un solo Arduino para que me controle todos los sensores. estos son los códigos que realice.

//fan fuego
int flame;
void fan_motor_pwm(int speedpin, int speed)
{
if (speed <= 0)
{
analogWrite(speedpin, 0);
}
else if (speed > 255)
{
analogWrite(speedpin, 255);
}
else
{
analogWrite(speedpin,speed);
}
}
void setup(){
flame = 0;
pinMode(8, INPUT);
pinMode(6, OUTPUT);
digitalWrite(6, LOW);
}
void loop()
{
flame = digitalRead(8);
if (1 == flame)
{
fan_motor_pwm(6, 120);
}
else
{
fan_motor_pwm(6, 0);
}
}

//acceso puerta con code
#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include <Servo.h>

int Button_Red;

int Button_Green;

int Red_num_time;

String password;

int door_flag;

boolean key_door_flag;

LiquidCrystal_I2C mylcd(0x27,16,2);

Servo servo_9;

void key_voice() {

tone(3,349);

delay(125);

delay(100);

noTone(3);

delay(100);

}

void Password_Confirmation() {

if (0 == Button_Green && 0 != Button_Red) {

delay(100);

Button_Red = digitalRead(5);

if (0 == Button_Green && 0 != Button_Red) {

if (false == key_door_flag) {

if (password == ".--.") {

mylcd.clear();

mylcd.setCursor(1-1, 1-1);

mylcd.print(" CASA DE ELIU");

mylcd.setCursor(1-1, 2-1);

mylcd.print("clabe:");

mylcd.setCursor(11-1, 2-1);

mylcd.print("pase");

servo_9.write(180);

delay(0);

door_flag = 0;

key_door_flag = true;

}else{

mylcd.clear();

mylcd.setCursor(1-1, 1-1);

mylcd.print("CASA DE ELIU");

mylcd.setCursor(1-1, 2-1);

mylcd.print("clabe:");

mylcd.setCursor(11-1, 2-1);

mylcd.print("NOP");

tone(3,165);

delay(125);

delay(500);

noTone(3);

delay(200);

mylcd.clear();

mylcd.setCursor(1-1, 1-1);

mylcd.print(" CASA DE ELIU");

mylcd.setCursor(11-1, 2-1);

mylcd.print("otra");

mylcd.setCursor(1-1, 2-1);

mylcd.print("clabe:");

key_voice();

}

} else if (true == key_door_flag) {

key_door_flag = false;

mylcd.clear();

mylcd.setCursor(1-1, 1-1);

mylcd.print(" CASA DE ELIU");

servo_9.write(90);

delay(0);

}

password = "";

}

}

}

void setup(){

pinMode(3, OUTPUT);

Button_Red = 1;

Button_Green = 1;

Red_num_time = 0;

password = "";

door_flag = 0;

key_door_flag = false;

mylcd.init();

mylcd.backlight();

servo_9.attach(9);

mylcd.setCursor(1-1, 1-1);

mylcd.print("CASA DE ELIU");

servo_9.write(90);

delay(0);

pinMode(5, INPUT);

pinMode(4, INPUT);

}

void loop(){

Button_Green = digitalRead(4);

Button_Red = digitalRead(5);

if (0 != Button_Green && 0 == Button_Red) {

delay(100);

Button_Green = digitalRead(4);

while (0 != Button_Green && 0 == Button_Red) {

Button_Red = digitalRead(5);

Red_num_time = Red_num_time + 1;

delay(100);

}

}

if (1 < Red_num_time && 5 > Red_num_time) {

key_voice();

password = String(password) + String(".");

mylcd.clear();

mylcd.setCursor(1-1, 1-1);

mylcd.print(" CASA DE ELIU");

mylcd.setCursor(1-1, 2-1);

mylcd.print("clabe:");

mylcd.setCursor(11-1, 2-1);

mylcd.print(password);

}

if (5 < Red_num_time) {

key_voice();

password = String(password) + String("-");

mylcd.clear();

mylcd.setCursor(1-1, 1-1);

mylcd.print(" CASA DE ELIU");

mylcd.setCursor(1-1, 2-1);

mylcd.print("Password:");

mylcd.setCursor(11-1, 2-1);

mylcd.print(password);

}

Password_Confirmation();

Red_num_time = 0;

}

//DETECTOR DE LLUVIA CON VENTANA
#include <Servo.h>

int water_level;

Servo servo_10;

void setup()

{

water_level = 0;

pinMode(A2, INPUT);

servo_10.attach(10);

}

void loop()

{

water_level = analogRead(A2);

if (100 < water_level)

{

servo_10.write(90);

}

else

{

servo_10.write(0);

}

}

// FOTOCELDA LUZ CON DETECCION DE RUIDO
volatile int Brightness;

volatile int Environmental_sound;

void setup(){

Brightness = 0;

Environmental_sound = 0;

Serial.begin(9600);

pinMode(A1, INPUT);

pinMode(2, INPUT);

pinMode(7, OUTPUT);

}

void loop()

{

Brightness = analogRead(A1);

Environmental_sound = digitalRead(2);

Serial.println(Brightness);

if (Brightness > 500)

{

if (Environmental_sound == 1)

{

digitalWrite(7,HIGH);

delay(4000);

digitalWrite(7,LOW);

}

}

else

{

digitalWrite(7,LOW);

}

}

//ESTACIONAMIENTO CON SENSOR INTERRUP
#include <Servo.h>

int pass;

Servo servo_11;

void setup()

{

pass = 0;

pinMode(A0, INPUT);

servo_11.attach(11);

}

void loop()

{

pass = digitalRead(A0);

if (pass == 0)

{

servo_11.write(180);

delay(0);

}

else if (pass == 1)

{

servo_11.write(90);

delay(0);

}

}

//RIEGO DE PLANTAS SENSOR
int Soil_moisture;

void Watering_warning()

{

digitalWrite(13,HIGH);

tone(3,532);

delay(125);

delay(200);

digitalWrite(13,LOW);

noTone(3);

delay(200);

}

void setup(){

Soil_moisture = 0;

pinMode(13, OUTPUT);

pinMode(3, OUTPUT);

pinMode(A3, INPUT);

}

void loop()

{

Soil_moisture = analogRead(A3);

if (50 > Soil_moisture) {

Watering_warning();

}

else

{

digitalWrite(13,LOW);

noTone(3);

}

}

//AC CON VENTILADOR Y SWITCH
#include <Servo.h>

int pass;

Servo servo_11;

void setup()

{

pass = 0;

pinMode(A4, INPUT);

servo_11.attach(6);

}

void loop()

{

pass = digitalRead(A4);

if (pass == 0)

{

servo_11.write(180);

delay(0);

}

else if (pass == 1)

{

servo_11.write(90);

delay(0);

}

}

Tu tema ha sido movido a la sección en español del foro. Utiliza el inglés en las secciones en inglés del foro.

Moderador:
Por favor, lee las Normas del foro y publica/edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado/editado, lo cortas y click en (<CODE/>)


1 Like

Con mucho gusto.

Primero, debes publicar tu código conforme a las normas como lo indica @surbyte. Eso nos hace la vida más fácil a todos.

1 Like

¡No pides nada!

Para integrar esos 10 códigos hay que reescribir todo de nuevo porque hay que reasignar pines y demás cuestiones en códigos escritos de la manera menos amigable posible.

Supongo que piensas que es una tontería y que el tiempo de los demás es menos valioso que el tuyo.

1 Like

Entiendo, déjame estudio los requisitos, gracias

gracias por el comentario, para nada entiendo que el tiempo genera un costo, solo pedía una opinión si existe algún generador de ayuda para orientarme. por algo este foro, nunca para que me lo desarrollen. gracias por tomarte el tiempo en contestar.

muchas gracias, analizo esta herramienta de solución!, gracias por su apoyo

Opciones tienes varias.
Podrías intentar hacerlo tu mismo ya que desarrollaste 10 códigos de distinta complejidad (y no entiendo como no puedes integrarlos).

Es relativamente "sencillo" (con comillas bien grandes) tomando las debidas precauciones.
Primero las inclusiones y definiciones.
Luego las declaraciones globales sin repetir y reasignando pines de ser necesario.
Luego las funciones individuales.
Juntas las intrucciones dentro de los diferentes setup() en uno solo, controlando que no se repitan configuraciones ni nada parecido.
Lo mismo para los diferentes loop().

Incluso, tal vez, podrías ayudarte con alguna IA.

Saludos

gracias, si ando intentado eso en estos momentos, soy nuevo en el tema de la programación individual, y ya logre 3 codes o circuitos integrarlos. gracias y en un futuro comparto mis experiencias y apoyo. saludos

Un consejo.
Códigos individuales funcionan siempre, pero si éstos tienen delay() dejarán de hacerlo en un código que contemple varios sensores.
Asi que no arrastres delay(), usa y aprende antes como reemplazarlo por millis(). Ve a documentación y estudia los tutoriales que hay ahi.

Moderador
Sigues respondiendo si editar tus códigos en el post#1.