Arduino - Unir codigos de arduino

   
Vista:

Unir codigos de arduino

Publicado por Bruno (1 intervención) el 28/04/2017 00:59:25
Hola soy nuevo con el arduino, lo que necesito es unir dos codigos, el primero es para encender leds uno por uno (12 en total) via Bluetooth con una app del movil, + sesor ldr para apagar los ultimos 4, este primero lo e armado yo con ayuda de tutoriales y otros foros.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
int led1 = 40;      //Luz 1 Comedor
int led2 = 41;      //Luz_2_Comedor
int led3 = 42;      //Luz_Cocina
int led4 = 43;      //Luz_1_Pasillo 
int led5 = 44;      //Luz_1_Pasillo 
int led6 = 45;      //Luz_Hab 1
int led7 = 46;      //Luz_Hab 1
int led8 = 47;      //Luz_Baño
int led9 = 48;      //Luz_Garaje
int led10 = 49;     //Luz_1_Jardin
int led11 = 50;     //Luz_2_Jardin
int led12 = 51;     //Luz_3_Jardin
int led13 = 52;     //Luz_4_Jardin
 
int estado = 0;
 
int LDRpin=A1;
int LDRabc=0;
float LDRvoltaje=0;
 
 
void setup(){
 
  Serial.begin(9600);
  pinMode(LDRpin, INPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
  pinMode(led10, OUTPUT);
  pinMode(led11, OUTPUT);
  pinMode(led12, OUTPUT);
  pinMode(led13, OUTPUT);
 
 
void loop()
{
 
     else
     {
       digitalWrite(ledPin, LOW);
       digitalWrite(buzzerPin, LOW);
     }
 
 if( Serial.available()>0)
  {
    estado = Serial.read();
  }
  switch( estado)
  {
    case 'a':
    digitalWrite(led1, HIGH);
    break;
    case 'b':
    digitalWrite(led1, LOW);
    break;
 
    case 'c':
    digitalWrite(led2, HIGH);
    break;
    case 'd':
    digitalWrite(led2, LOW);
    break;
 
    case 'e':
    digitalWrite(led3, HIGH);
    break;
    case 'f':
    digitalWrite(led3, LOW);
    break;
 
    case 'g':
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
 
    break;
    case 'h':
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    break;
 
    case 'i':
    digitalWrite(led6, HIGH);
    break;
    case 'j':
    digitalWrite(led6, LOW);
    break;
 
    case 'k':
    digitalWrite(led7, HIGH);
    break;
    case 'l':
    digitalWrite(led7, LOW);
    break;
 
    case 'm':
    digitalWrite(led8, HIGH);
    break;
    case 'n':
    digitalWrite(led8, LOW);
    break;
 
    case 'o':
    digitalWrite(led9, HIGH);
    break;
    case 'p':
    digitalWrite(led9, LOW);
    break;
 
    case 'q':
    digitalWrite(led10, HIGH);
    digitalWrite(led11, HIGH);
    digitalWrite(led12, HIGH);
    digitalWrite(led13, HIGH);
 
    break;
    case 'r':
    digitalWrite(led10, LOW);
    digitalWrite(led11, LOW);
    digitalWrite(led12, LOW);
    digitalWrite(led13, LOW);
    break;
 
  }
 
  {
    LDRabc=analogRead(LDRpin);
    LDRvoltaje=LDRabc*(5.0/1023.0);
    Serial.print("voltaje LDR: ");
    delay(200);
    Serial.println(LDRvoltaje);
 
    if(LDRvoltaje<=1.20){
      digitalWrite(led10, HIGH);
      delay(500);
      digitalWrite(led11, HIGH);
      delay(600);
      digitalWrite(led12, HIGH);
      delay(700);
      digitalWrite(led13, HIGH);
      delay(800);
 
      }
 
     else {
 
          digitalWrite(led10, LOW);
          digitalWrite(led11, LOW);
          digitalWrite(led12, LOW);
          digitalWrite(led13, LOW);
 
          }
  }
 
}

Ahora necesito juntarlo con este , es para un sensor de movimiento PIR + buzzer activo(simulando una alarma ), llego hacer que funcione por separado , pero necesito tener todo en un solo sketch y aparte quiero que con una letra por ejemplo la "A" se active el sensor y con la "B" se desactive, asi hacer que el blothooth interprete esas variables y ejecutarlo desde el movil, este es el segundo codigo que encontre en internet.

:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
int pinSpeaker = 10;           //Set up a speaker on a PWM pin (digital 9, 10, or 11)
 
void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
  pinMode(pinSpeaker, OUTPUT);
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // read input value
  if (val == HIGH) {            // check if the input is HIGH
    digitalWrite(ledPin, HIGH);  // turn LED ON
    playTone(300, 160);
    delay(150);
 
 
    if (pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected!");
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  } else {
      digitalWrite(ledPin, LOW); // turn LED OFF
      playTone(0, 0);
      delay(300);
      if (pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}
// duration in mSecs, frequency in hertz
void playTone(long duration, int freq) {
    duration *= 1000;
    int period = (1.0 / freq) * 1000000;
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(pinSpeaker,HIGH);
        delayMicroseconds(period / 2);
        digitalWrite(pinSpeaker, LOW);
        delayMicroseconds(period / 2);
        elapsed_time += (period);
    }
}

Nose como unirlos sin que me de error, gracias de antemano .
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder