Unir Codigos Arduino

Estimados,

Me pueden dar una mano uniendo Sketches!

Por un lado, tengo uno para manejar LED's y otro para sensar la temperatura. Como puedo hacer para tener 2 Whiles? Loops?

Realmente, no me hago una idea como hacerlo...Deberia probar y probar, pero si tienen algun consejo!

Saludos y muchas gracias!

Hola la verdad esta algo confusa tu explicación o yo no la entendí lo que tu quieres hacer es unir esos dos códigos? porque si es así solamente copias y pegas el segundo dentro del primero y ya. obviamente de forma ordenada con esto me refiero que todas las librerías juntas hasta arriba, lo que esta en el setup del segundo ponerlo en el setup del primero y lo mismo con el loop. OJO, fijate que no estes usando los mismos pines en ambos sketches o tendrás problemas, si eso pasa solo cambia el numero de pin que haya repetido. Saludos

ahh bueno ni siquiera pegaste los códigos.
Recuerda usar etiquetas.
Sigue los pasos de mike_117 y luego comienza a lidiar con lo que se presente.
1 solo setup
1 solo loop

Estimados, muchas gracias por los comentarios.

Pegue las imagenes, pero pondre los codigos. Como me recomiendan que lo haga? Por los Loops, mas que nada!

//   Tweetmotica Arduino @ Universidad de Palermo
//   Santiago Fernandez

int habitacion = 7;
int living = 6;
int pieza = 5;


void setup () {
 pinMode(habitacion, OUTPUT);
 pinMode(living, OUTPUT);
 pinMode(pieza, OUTPUT);
 Serial.begin(9600); //Inicializo el puerto serial a 9600 baudios
}

void loop () {
 if (Serial.available()) { //Si está disponible
   char c = Serial.read(); //Guardamos la lectura en una variable char
   if (c == 'q') { //enciendo el LED1
     digitalWrite(habitacion, HIGH);
   }
   if (c == 'a') { //apago el LED1
     digitalWrite(habitacion, LOW);
   }
       if (c == 'w') { //enciendo el LED2
     digitalWrite(living, HIGH);
   }
   if (c == 's') { //apago el LED2
     digitalWrite(living, LOW);
   }
       if (c == 'e') { //enciendo el LED3
     digitalWrite(pieza, HIGH);
   }
   if (c == 'd') { //apago el LED3
     digitalWrite(pieza, LOW);
   }
       if (c == 'r') { //Enciende Todos
     digitalWrite(habitacion, HIGH);
     digitalWrite(living, HIGH);
     digitalWrite(pieza, HIGH);
   }
   if (c == 'f') { //Apago Todos
     digitalWrite(habitacion, LOW);
     digitalWrite(living, LOW);
     digitalWrite(pieza, LOW);
   }
 }
 
}
</>

</>#include <OneWire.h>
#include <DallasTemperature.h>



#define ONE_WIRE_BUS 12

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup(void) {
Serial.begin(9600);
sensors.begin();
}

void loop(void) {
sensors.requestTemperatures();
float temperatura = sensors.getTempCByIndex(0);
Serial.print(temperatura);
Serial.println("  ");

delay(1000);

}

Es el paso cuasi final, Actualmente, junto con Python y Tweepy he creado una aplicacion manejable desde Twitter!

Esta quedando muy lindo! Si alguno esta interesado y necesita ayuda, gustoso! Les dejo una imagen!

Gracias a todos los que me puedan dar algun consejo!

¿Es esto lo que quieres? He copiado un programa dentro del otro, no sé si te refieres a esto, porque sencillamente me parece increible que llegues hasta ahí y no sepas hacer esto, por eso si te refieres a otra cosa avisa.

#include <OneWire.h>
#include <DallasTemperature.h>



#define ONE_WIRE_BUS 12

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

int habitacion = 7;
int living = 6;
int pieza = 5;

 
void setup () {
  pinMode(habitacion, OUTPUT);
  pinMode(living, OUTPUT);
  pinMode(pieza, OUTPUT);
  Serial.begin(9600); //Inicializo el puerto serial a 9600 baudios
  sensors.begin();
}
 
void loop () {

sensors.requestTemperatures();
float temperatura = sensors.getTempCByIndex(0);
Serial.print(temperatura);
Serial.println("  ");

  if (Serial.available()) { //Si está disponible
    char c = Serial.read(); //Guardamos la lectura en una variable char
    if (c == 'q') { //enciendo el LED1
      digitalWrite(habitacion, HIGH);
    }
    if (c == 'a') { //apago el LED1
      digitalWrite(habitacion, LOW);
    }
        if (c == 'w') { //enciendo el LED2
      digitalWrite(living, HIGH);
    }
    if (c == 's') { //apago el LED2
      digitalWrite(living, LOW);
    }
        if (c == 'e') { //enciendo el LED3
      digitalWrite(pieza, HIGH);
    }
    if (c == 'd') { //apago el LED3
      digitalWrite(pieza, LOW);
    }
        if (c == 'r') { //Enciende Todos
      digitalWrite(habitacion, HIGH);
      digitalWrite(living, HIGH);
      digitalWrite(pieza, HIGH);
    }
    if (c == 'f') { //Apago Todos
      digitalWrite(habitacion, LOW);
      digitalWrite(living, LOW);
      digitalWrite(pieza, LOW);
    }
  }
 
}

Un saludo.

No Xtreme!

La pregunta es como me aconsejan realizar 1 Sketch, uniendo esos dos! Como ubicar los While's.

A eso me referia!

Mi versión
De que while hablas?

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 12

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

const byte habitacion 			= 7;
const byte living 				= 6;
const byte pieza 				= 5;
unsigned long start_t;

 
void setup () {
  pinMode(habitacion, OUTPUT);
  pinMode(living, OUTPUT);
  pinMode(pieza, OUTPUT);
  Serial.begin(9600); //Inicializo el puerto serial a 9600 baudios
  sensors.begin();
  start_t = millis();
}

 
void loop () {
	
	sensors.requestTemperatures();
	
	float temperatura = sensors.getTempCByIndex(0);
	
	if (millis() - start_t > 1000UL) {
		Serial.prconst byte(temperatura);
		Serial.prconst byteln("  ");
		start_t = millis();
	}

	if (Serial.available()) { //Si está disponible
	    char c = Serial.read(); //Guardamos la lectura en una variable char
	
	    switch (c) {
	    	case 'q': //enciendo el LED1
	     			  digitalWrite(habitacion, HIGH);
	    			  break;

	    	case 'a': //apago el LED1
	      			  digitalWrite(habitacion, LOW);
	    			  break;

	    	case 'w': //enciendo el LED2
	      			  digitalWrite(living, HIGH);
	    		      break;

	    	case 's': //apago el LED2
	      			  digitalWrite(living, LOW);
	    			  break;

	    	case 'e': //enciendo el LED3
	      			  digitalWrite(pieza, HIGH);
	    			  break;

	    	case 'd': //apago el LED3
	      			  digitalWrite(pieza, LOW);
	    			  break;

	    	case 'r': //Enciende Todos
   	      			  digitalWrite(habitacion, HIGH);
	      			  digitalWrite(living, HIGH);
	      			  digitalWrite(pieza, HIGH);
	   		case 'f': //Apago Todos
	      			  digitalWrite(habitacion, LOW);
	      			  digitalWrite(living, LOW);
	      			  digitalWrite(pieza, LOW);
	    }
  	}
}

Lo siento, no entiendo de que hablas.
Un saludo.

Como puedo hacer para tener 2 Whiles? Loops?

No se pueden tener dos while loops.
Lo que puedes es si quieres suponer que los tienes.
Tanto Xtream3 como yo, hemos unido los códigos en diferentes visiones.

Xtream3 lo unió tal como lo tienes.

Yo modifiqué algunas cosas simples.

  1. puse un switch para que manejes mejor los comandos enviados por Android
  2. saque delay para que la reacción de lo que decidas sea inmediata. Prendes, apagas, cambias a izq o derecha con el toque del Android.

Para que quieres algo mas?

Surbyte!

Gracias por el tiempo que me dan.

While = Loop

Ahi junte los codigos! Y esta funcionando sin problemas! Por suerte!

//   Tweetmotica Arduino @ Universidad de Palermo
//   Santiago Fernandez
#include <OneWire.h>
#include <DallasTemperature.h>



#define ONE_WIRE_BUS 12

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

int habitacion = 7;
int living = 6;
int pieza = 5;


void setup () {
 pinMode(habitacion, OUTPUT);
 pinMode(living, OUTPUT);
 pinMode(pieza, OUTPUT);
 Serial.begin(9600); //Inicializo el puerto serial a 9600 baudios
 sensors.begin();
}

void loop () {
 
 // Leo Temperatura - Para Ingreso, por Python a Base de Datos

 sensors.requestTemperatures();
 float temperatura = sensors.getTempCByIndex(0);
 Serial.print(temperatura);
 Serial.println("  ");
 
 // Leo Ingreso para Generar Acciones
 
 if (Serial.available()) { //Si está disponible
   char c = Serial.read(); //Guardamos la lectura en una variable char
   if (c == 'q') { //enciendo el LED1
     digitalWrite(habitacion, HIGH);
   }
   if (c == 'a') { //apago el LED1
     digitalWrite(habitacion, LOW);
   }
       if (c == 'w') { //enciendo el LED2
     digitalWrite(living, HIGH);
   }
   if (c == 's') { //apago el LED2
     digitalWrite(living, LOW);
   }
       if (c == 'e') { //enciendo el LED3
     digitalWrite(pieza, HIGH);
   }
   if (c == 'd') { //apago el LED3
     digitalWrite(pieza, LOW);
   }
       if (c == 'r') { //Enciende Todos
     digitalWrite(habitacion, HIGH);
     digitalWrite(living, HIGH);
     digitalWrite(pieza, HIGH);
   }
   if (c == 'f') { //Apago Todos
     digitalWrite(habitacion, LOW);
     digitalWrite(living, LOW);
     digitalWrite(pieza, LOW);
   }
 }
 
}

No encuentro el boton, para insertar el codigo. Pongo como me dijiste surbyte! </>

Pero eso es exactamente lo que yo he hecho. :slight_smile:
Un saludo.

Gracias por la atencion!

Y esto que es?

me parece que no has leído las normas

Punto 7. Uso de etiqueta "code"

Perfecto! Surbyte!