Nuchas gracias por leer mi post,
Y si, tienes mucha razón me falto documentar...
Voy a poner primero aquí mis cinco códigos que quiero unir o pegar oooo que se ejecuten en un solo código.
De hecho ya los uní... utilicé la función switch case y mediante un switch poder ir seleccionando la función que quiero que haga.
Realmente no se programación pero o me parece fascinante esto..
Lo que hice fue copiar códigos de internet, que hacían x función y yo los modifiqué y adapté a mi necesidad.
Tenia que hacer una casa domótica en maqueta con 5 funciones...
Cuidadosamente use pines de entrada y salida para cada proyecto, para no tener conflicto al unir.
Nota 1: todos los proyectos individualmente funcionan correctamente.
Nota 2: Al unirlos se compilan bien pero no me funciona ninguno.
Dejo los códigos por sepaado. Los 5 y dejo el último pegados, todos que no me funcionan, gracias anticipadas a quien pueda ayudarme.
Ammmm si alguien necesita ayuda con algun circuito electrónico que quiera adaptarlo al arduino, con gusto esta mi ayuda.
Voy a enumerar los cincro proyectos...ssssssssssss se me fue y escribir con mayúsculas sorry.
1.- ALARMA
int switchAlarma = 4;
int outAlarma = 7;
int estado = 0;
int previo = 0;
int reading;
long time = 0;
long debounce = 500;
void setup()
{
pinMode(switchAlarma, INPUT);
digitalWrite(switchAlarma, HIGH);
pinMode(outAlarma, OUTPUT);
Serial.begin(9600);
}
void loop()
{
reading = digitalRead(switchAlarma);
if (reading == HIGH && previo == LOW && millis()+100 - time > debounce) {
if (estado == HIGH) {
estado = LOW;
time = millis();
}
else {
estado = HIGH;
time = millis();
}
}
digitalWrite(outAlarma, estado);
previo = reading;
}
****************************************************************************************************************************
DOS
LUZ TEMPORIZA
int relayluzout = 6;
void setup(){
pinMode(relayluzout, OUTPUT);
}
void loop() {
digitalWrite(relayluzout, HIGH);
delay(12000);//43200
digitalWrite(relayluzout, LOW);
delay(12000);//43200
}
*************************************************************************************************************************
TRES
ENCIENDE Y APAGA LUZ
int switchluzin = 3;
int outluzin = 8;
int estado = 0;
int previo = 0;
int reading;
long time = 0;
long debounce = 500;
void setup()
{
pinMode(switchluzin, INPUT);
digitalWrite(switchluzin, HIGH);
pinMode(outluzin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
reading = digitalRead(switchluzin);
if (reading == HIGH && previo == LOW && millis()+100 - time > debounce) {
if (estado == HIGH) {
estado = LOW;
time = millis();
}
else {
estado = HIGH;
time = millis();
}
}
digitalWrite(outluzin, estado);
previo = reading;
}
***************************************************************************************************************************
CUATRO
SISTEMA DE RIEGO
int valvulariego = 2;
void setup(){
pinMode(valvulariego, OUTPUT);
}
void loop() {
digitalWrite(valvulariego, HIGH);
delay(3000);
digitalWrite(valvulariego, LOW);
delay(12000);//43200
}
**********************************************************************************************************************
CINCO
PUERTA ELECTRICA
const int botonup =13 ;
const int botondw =12 ;
const int abre = 5;
const int cierra = 4;
void setup() {
pinMode(abre, OUTPUT);
pinMode(cierra, OUTPUT);
pinMode(botonup, INPUT);
pinMode(botondw, INPUT);
}
void loop(){
if (digitalRead(botonup)) {
digitalWrite(abre, HIGH);
}
else {
digitalWrite(abre, LOW);
}
if (digitalRead(botondw)) {
digitalWrite(cierra, HIGH);
}
else {
digitalWrite(cierra, LOW);
}
}
**********************************************************************************************************************************
**********************************************************************************************************************************
YYYYYYYYYYYYYYYY AQUI UNIDOS TODOS
SE COMPILA SIN ERROR PERO NO FUNCIONAN LOS CODIGOS
TAL VEZ ALGO ESTA MAL EN EL SWITCH SELECTOR
OOOOOOOOOOOOOOOOOO SI ALGUIEN CONOCE OTRA FORMA DE UNIR LOS CODIGO SE LO VOY AGRADECER MUCHO ME URGE ES UNA MAQUETA DE UNA TAREA ESCOLAR DE MI HIJA,,,,Y EL PROFE NO VALE UN CACAHUTE PARA ENSEñARLES O LO HACE O REPRUEBAN Y YA SE LA SABEN A PAGAR EXAMENES...
MUCHAS GRACIAS POR LA ATENCION Y AYUDA
EL CODIGO FINA UNIDO
//casa domotica controlada por pulsador
// cada vez que se pulsa hace una funcion diferente
const int swselector = 10; // PULSADOR
int ledPin1 = 13; //LED VERDE quitar
int ledPin2 = 9; //LED AMBAR quitar
//int ledPin3 = 10; //LED ROJO quitar
int contador =0;
long tpo = millis();
//inici alarma
int switchAlarma = 4;
int outAlarma = 7;
int estado = 0;
int previo = 0;
int reading;
long time = 0;
long debounce = 500;
//fin alarma
// inicio concontrol puerta
const int botonup =13 ;
const int botondw =12 ;
const int abre = 5;
const int cierra = 4;
// fin control puerta
//inicia luz externa
int relayluzout = 6;
// fin luz externa
// luz interna inicio
int switchluzin = 3;
int outluzin = 8;
// estado = 0;
//int previo = 0;
//int reading;
//long time = 0;
//long debounce = 500;
//fin luz interna fin
//INICIO SISTEMA DE RIEGO
int valvulariego = 2;
// FIN SISTEMA RIEGO
void setup()
{
Serial.begin(9600);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
attachInterrupt(0, Fon_Contar, RISING);
// inicio alarma
pinMode(switchAlarma, INPUT);
digitalWrite(switchAlarma, HIGH);
pinMode(outAlarma, OUTPUT);
Serial.begin(9600);
//fin alarma
//inicio control puerta
pinMode(abre, OUTPUT);
pinMode(cierra, OUTPUT);
pinMode(botonup, INPUT);
pinMode(botondw, INPUT);
// fin control puerta
// apaga luz interna inicio
pinMode(switchluzin, INPUT);
digitalWrite(switchluzin, HIGH);
pinMode(outluzin, OUTPUT);
Serial.begin(9600);
// apaga luz interna fin
//inicio luz externa
pinMode(relayluzout, OUTPUT);
// fin luz externa
// INICIO SISTEMA DE RIEGO
pinMode(valvulariego, OUTPUT);
//FIN SISTEMA DE RIEGO
}
void loop ()
{
switch (contador)
{
case 0: // APAGA TODOS LOS procesos
digitalWrite(outAlarma,LOW); // apaga alarma
digitalWrite(abre,LOW); // apaga puerta
digitalWrite(cierra,LOW); // apaga puerta
digitalWrite(relayluzout,LOW); // apaga luz externa
digitalWrite(outluzin,LOW); // apaga luz interna
digitalWrite(valvulariego,LOW); // apaga sistema de riego
break;
case 1: // alarma
{
reading = digitalRead(switchAlarma);
if (reading == HIGH && previo == LOW && millis()+100 - time > debounce) {
if (estado == HIGH) {
estado = LOW;
time = millis();
}
else {
estado = HIGH;
time = millis();
}
}
digitalWrite(outAlarma, estado);
previo = reading;
}
break;
case 2: // control puerta
{
if (digitalRead(botonup)) {
digitalWrite(abre, HIGH);
}
else {
digitalWrite(abre, LOW);
}
if (digitalRead(botondw)) {
digitalWrite(cierra, HIGH);
}
else {
digitalWrite(cierra, LOW);
}
}
break;
case 3: // luz externa
digitalWrite(relayluzout, HIGH);
delay(12000);//43200
digitalWrite(relayluzout, LOW);
delay(12000);//4320
break;
case 4: // luz interna
{
reading = digitalRead(switchluzin);
if (reading == HIGH && previo == LOW && millis()+100 - time > debounce) {
if (estado == HIGH) {
estado = LOW;
time = millis();
}
else {
estado = HIGH;
time = millis();
}
}
digitalWrite(outluzin, estado);
previo = reading;
}
break;
case 5: // sistema de riego
{
digitalWrite(valvulariego, HIGH);
delay(3000);
digitalWrite(valvulariego, LOW);
delay(12000);//43200
}
break;
case 6: // REINICIA EL CONTADOR
contador=0;
break;
}
}
void Fon_Contar() // Este contador cuenda cada vez que el pulsador pasa de estado LOW a HIGH
{
contador++;
Serial.println(contador);
if (contador > 5) contador = 0;
}
void delayx(int valor)
{
long tpo = millis();
while ((( millis() - tpo) < valor) && (contador == 1))
;
}